*{box-sizing:border-box}:root{--navy:#17324a;--teal:#218798;--bg:#f3f6f8;--line:#dce4e9;--muted:#758590;--left:145px}
html,body{margin:0;min-height:100%;font-family:Segoe UI,Arial,sans-serif;background:var(--bg);color:#20313f}button,input,select,textarea{font:inherit}button{cursor:pointer}
.side{position:fixed;inset:0 auto 0 0;width:235px;background:var(--navy);padding:17px 12px;color:#fff;z-index:50}.brand{display:flex;gap:10px;align-items:center;padding:3px 7px 22px}.brand>span{width:42px;height:42px;border-radius:12px;background:#2a91a2;display:flex;align-items:center;justify-content:center;font-weight:800}.brand b,.brand small{display:block}.brand small{color:#adc2cf;font-size:11px;margin-top:3px}.nav{width:100%;border:0;background:transparent;color:#d9e4eb;text-align:left;border-radius:9px;padding:11px;margin:2px 0}.nav.active,.nav:hover{background:#234a66;color:#fff}.nav em{float:right;background:#e5745e;border-radius:10px;padding:1px 7px;font-style:normal;font-size:10px}.sidefoot{position:absolute;bottom:18px;left:18px;right:18px;border-top:1px solid #345269;padding-top:12px;font-size:12px}.sidefoot small{color:#aec0cb}
main{margin-left:235px}header{height:72px;background:#fff;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:0 20px;position:sticky;top:0;z-index:40}header h1{margin:0;font-size:20px}header p{margin:3px 0 0;font-size:12px;color:var(--muted)}.accountbox{display:flex;align-items:center;gap:8px}.accountbox label{font-size:10px;text-transform:uppercase;font-weight:800;color:#73838e}.accountbox select{border:1px solid #d2dce3;border-radius:8px;padding:8px}.accountbox span{font-size:10px;font-weight:800;padding:5px 8px;border-radius:999px;background:#eaf3f6;color:#316577}
.page{display:none;padding:18px}.page.active{display:block}.toolbar{display:flex;gap:12px;align-items:end;background:#fff;border:1px solid var(--line);padding:12px;border-radius:12px 12px 0 0;flex-wrap:wrap}.toolbar label{display:block;font-size:9px;text-transform:uppercase;font-weight:800;color:#758590;margin-bottom:5px}.toolbar input,.toolbar select,.filters input,.filters select{border:1px solid #d2dce3;border-radius:8px;padding:8px;background:white}.grow{flex:1}.grow input{width:100%;min-width:180px}.segments{display:flex;background:#edf2f5;border-radius:8px;padding:3px}.segments button{border:0;background:transparent;padding:7px 10px;border-radius:6px;font-size:11px;font-weight:700;color:#637683}.segments button.active{background:#fff;color:#1f5d70;box-shadow:0 1px 4px #ccd7de}
.btn,.x{border:1px solid #d2dce3;background:#fff;color:#29465a;border-radius:8px;padding:8px 11px;font-weight:650}.btn.primary{background:var(--teal);border-color:var(--teal);color:#fff}.btn.danger{background:#fff2ef;border-color:#efc4bc;color:#ad3e30}.x{width:35px;height:35px;padding:0;font-size:20px}
.plannerbox{background:#fff;border:1px solid var(--line);border-top:0;border-radius:0 0 12px 12px;overflow:hidden}.plannerscroll{overflow:auto;max-height:calc(100vh - 165px)}.planner{position:relative;min-width:100%}.monthhead,.dayhead,.resrow{display:flex;position:relative;min-width:max-content}.corner,.reslabel{position:sticky;left:0;width:var(--left);min-width:var(--left);z-index:15;border-right:1px solid #ccd7de}.monthhead{height:32px;position:sticky;top:0;background:#f6f8fa;z-index:25}.monthhead .corner{z-index:30;background:#f6f8fa;padding:8px 12px;font-size:10px;font-weight:800;text-transform:uppercase}.monthcell{background:#f6f8fa;border-right:1px solid #d7e0e5;padding:7px 9px;font-size:11px;font-weight:800}.dayhead{height:42px;position:sticky;top:32px;z-index:24}.dayhead .corner{z-index:30;background:#fbfcfd;padding:13px 12px;font-size:10px;color:#667985}.daycell{display:flex;flex-direction:column;justify-content:center;align-items:center;background:#fbfcfd;border-right:1px solid #e4e9ed;font-size:9px}.daycell b{font-size:11px}.weekend{background:#f4f6f7!important}.today{background:#e8f6f7!important}.resrow{border-top:1px solid #e8edf0}.reslabel{background:#fff;padding:8px 11px;display:flex;gap:9px;align-items:center}.avatar{width:33px;height:33px;border-radius:50%;background:#dce9ef;color:#214a60;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:800}.reslabel b,.reslabel small{display:block}.reslabel b{font-size:11px}.reslabel small{font-size:9px;color:#7e8c96}.timeline{display:flex;position:relative}.tday{border-right:1px solid #edf0f2;background:#fff}.bar{position:absolute;height:23px;border:0;border-radius:6px;color:#fff;font-size:9px;font-weight:750;padding:4px 6px;text-align:left;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;z-index:5;box-shadow:0 2px 6px #b9c5cc}.planned{background:#397ca9}.activec{background:#25906e}.done{background:#85939d}.unassigned{background:#d58b35}
.pagetop{display:flex;justify-content:space-between;align-items:center;margin-bottom:13px}.pagetop h2{margin:0;font-size:19px}.pagetop p{margin:3px 0 0;color:var(--muted);font-size:11px}.filters{display:flex;gap:8px;margin-bottom:13px}.filters input{width:300px}.cards,.rightsinfo{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.card,.rightsinfo article{background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px}.card h3{font-size:14px;margin:8px 0 4px}.card p,.card small,.rightsinfo small{display:block;color:#74848f;font-size:10px;line-height:1.45}.card .actions{display:flex;justify-content:flex-end;gap:6px;margin-top:11px}.status{display:inline-block;padding:4px 7px;border-radius:999px;font-size:9px;font-weight:800;background:#edf2f4}.status.planned{background:#e5f0f7;color:#2f6992}.status.activec{background:#e2f4ec;color:#23785a}.status.unassigned{background:#fff0dc;color:#a76112}.status.done{color:#66747d}.rightsinfo{margin-bottom:14px}.rightsinfo b{font-size:12px}.tablewrap{background:#fff;border:1px solid var(--line);border-radius:12px;overflow:auto}table{width:100%;border-collapse:collapse}th,td{padding:11px;border-bottom:1px solid #edf1f3;text-align:left;font-size:11px}th{font-size:9px;text-transform:uppercase;color:#7b8993;background:#fafcfd}
.modalbg{display:none;position:fixed;inset:0;background:rgba(10,22,31,.58);z-index:100;align-items:center;justify-content:center;padding:16px}.modalbg.show{display:flex}.modal{width:760px;max-width:96vw;max-height:94vh;background:#fff;border-radius:14px;overflow:auto;box-shadow:0 25px 70px #17242e66}.modal.large{width:920px}.modal.small{width:480px}.modalhead,.modalfoot{position:sticky;background:#fff;z-index:4;display:flex;align-items:center;padding:15px 18px;border-bottom:1px solid #e4eaee}.modalhead{top:0;justify-content:space-between}.modalhead h3{margin:0}.modalhead p{margin:3px 0 0;color:#788893;font-size:10px}.modalbody{padding:18px}.modalfoot{bottom:0;border-top:1px solid #e4eaee;border-bottom:0;gap:7px}.spacer{flex:1}
fieldset{border:0;padding:0;margin:0}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.formgrid.one{grid-template-columns:1fr}.formgrid label>span{display:block;font-size:10px;font-weight:800;color:#607380;margin-bottom:4px}.formgrid input,.formgrid select,.formgrid textarea,.noteinput{width:100%;border:1px solid #d1dbe2;border-radius:8px;padding:9px;background:#fff}.formgrid textarea{min-height:70px}.full{grid-column:1/-1}.track{margin-top:13px;padding:10px 12px;border:1px solid #cce3e8;background:#eef8fa;border-radius:9px}.track span,.track b,.track small{display:block}.track span{font-size:9px;text-transform:uppercase;color:#6d8790;font-weight:800}.track b{margin-top:2px;color:#236976}.track small{margin-top:3px;color:#72838e;font-size:10px}
.sectiontitle{display:flex;justify-content:space-between;align-items:end;margin:18px 0 8px}.sectiontitle h4{margin:0;font-size:13px}.sectiontitle p{margin:3px 0 0;color:#82919a;font-size:9px}.phaseline{display:grid;grid-template-columns:1.3fr 1fr 1fr auto;gap:7px;background:#f7f9fa;border:1px solid #dce5ea;border-radius:9px;padding:8px;margin-bottom:6px}.phaseline input{width:100%;border:1px solid #d1dbe1;border-radius:7px;padding:7px}.phaseline label span{display:block;font-size:9px;font-weight:800;color:#687b87;margin-bottom:3px}
.picker{position:relative;max-width:580px}.picker>button{width:100%;display:flex;justify-content:space-between;border:1px solid #d0dbe2;background:white;border-radius:8px;padding:9px}.pickerpanel{display:none;position:absolute;top:calc(100% + 4px);left:0;right:0;background:#fff;border:1px solid #ccd9e1;border-radius:9px;box-shadow:0 10px 25px #20374733;padding:7px;z-index:20}.pickerpanel.open{display:block}.pickerpanel>input{width:100%;padding:7px;border:1px solid #d2dce3;border-radius:7px;margin-bottom:6px}.checklist{max-height:190px;overflow:auto}.wcheckrow{display:flex;gap:7px;padding:7px;border-radius:6px;font-size:10px}.wcheckrow:hover{background:#f2f6f8}
.photobar{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.filebutton input{display:none}.photogrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:8px}.photo{border:1px solid #dce4e9;border-radius:9px;overflow:hidden;background:#fafcfd}.photo img{width:100%;height:120px;object-fit:cover;display:block}.photo div{padding:6px;font-size:9px}.photo button{margin-top:4px;border:0;background:#fff0ed;color:#a74235;border-radius:5px;padding:4px 6px}.drop{border:1px dashed #aebcc5;border-radius:9px;padding:10px;background:#fafcfd}.chip{display:inline-block;background:#edf3f6;border-radius:6px;padding:4px 6px;margin:5px 4px 0 0;font-size:9px}.note{border-left:3px solid #2b8b99;background:#f6fafb;border-radius:5px;padding:8px 9px;margin-bottom:6px;font-size:10px}.note.auto{border-left-color:#647da5;background:#f6f7fb}.note time{display:block;color:#8a969e;font-size:8px;margin-top:3px}.noteinput{min-height:58px}.warning{display:none;margin-top:10px;background:#fff5e5;border:1px solid #efd2a3;border-radius:8px;padding:9px;font-size:10px;color:#79531e}.toast{display:none;position:fixed;right:18px;bottom:18px;background:#17364e;color:#fff;padding:9px 13px;border-radius:8px;font-size:11px;z-index:200}
body.perm-read_notes .edit-project-only,body.perm-read_notes .admin-only,body.perm-read_notes .hide-read{display:none!important}body.perm-read_notes fieldset#projectFields{opacity:.72}body.perm-read_notes fieldset#projectFields input,body.perm-read_notes fieldset#projectFields select,body.perm-read_notes fieldset#projectFields textarea,body.perm-read_notes #addPhaseBtn,body.perm-read_notes #pickerBtn{pointer-events:none}body.perm-edit_projects .admin-only{display:none!important}
@media(max-width:980px){.cards,.rightsinfo{grid-template-columns:repeat(2,1fr)}.photogrid{grid-template-columns:repeat(3,1fr)}}@media(max-width:720px){.side{transform:translateX(-100%)}main{margin-left:0}header{padding:0 10px}.accountbox label{display:none}.page{padding:10px}.cards,.rightsinfo,.formgrid{grid-template-columns:1fr}.full{grid-column:auto}.photogrid{grid-template-columns:repeat(2,1fr)}.phaseline{grid-template-columns:1fr 1fr}.phaseline label:first-child{grid-column:1/-1}:root{--left:185px}}
.document-list{display:grid;gap:7px;margin-top:8px}
.document-row{display:flex;align-items:center;gap:8px;border:1px solid #dce4e9;background:#fafcfd;border-radius:8px;padding:8px 9px}
.document-row .doc-icon{font-size:18px}
.document-row .doc-main{min-width:0;flex:1}
.document-row .doc-main b{display:block;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.document-row .doc-main small{display:block;color:#81909a;font-size:8px;margin-top:2px}
.document-row .doc-actions{display:flex;gap:5px}
.document-row .doc-actions button{padding:6px 8px;font-size:9px}
.locked-note{display:inline-block;margin-left:6px;color:#9b5f17;background:#fff2da;border-radius:999px;padding:3px 7px;font-size:9px;font-weight:800}
body.perm-read_notes #projectFields:disabled{opacity:.7}
body.perm-read_notes #projectFields:disabled input,
body.perm-read_notes #projectFields:disabled select,
body.perm-read_notes #projectFields:disabled textarea,
body.perm-read_notes #projectFields:disabled button{cursor:not-allowed}

.photo .photo-actions{display:flex;gap:5px;flex-wrap:wrap;margin-top:5px}
.photo .photo-actions button{margin-top:0}
.photo img{cursor:pointer}
\n.photo .photo-actions{display:flex;gap:5px;flex-wrap:wrap;margin-top:5px}\n.photo .photo-actions button{margin-top:0}\n.photo img{cursor:pointer}
.photo-open-link{display:block;text-decoration:none}
.photo-open-link img{cursor:pointer}
.photo-actions{display:flex;gap:5px;flex-wrap:wrap;margin-top:5px}
.photo-actions .open-photo-link{
  display:inline-block;
  text-decoration:none;
  border:1px solid #d2dce3;
  background:#fff;
  color:#29465a;
  border-radius:6px;
  padding:5px 8px;
  font-size:9px;
  font-weight:700;
}
.photo-actions .open-photo-link:hover{background:#eef4f6}

.note .note-author{display:inline-block;font-weight:800;color:#34576c;margin-right:7px}
.note.auto .note-author{color:#647da5}

.projects-tools{display:flex;align-items:end;gap:10px;flex-wrap:wrap;margin-bottom:13px}
.projects-tools .filters{margin-bottom:0;flex:1}
.quick-project{min-width:270px}
.quick-project label{display:block;font-size:9px;text-transform:uppercase;font-weight:800;color:#758590;margin-bottom:5px}
.quick-project select{width:100%;border:1px solid #d2dce3;border-radius:8px;padding:8px;background:#fff}
.view-toggle{display:flex;background:#edf2f5;border-radius:8px;padding:3px}
.view-toggle button{border:0;background:transparent;border-radius:6px;padding:7px 11px;font-size:10px;font-weight:800;color:#617482}
.view-toggle button.active{background:#fff;color:#205d70;box-shadow:0 1px 4px #ccd7de}
.account-toggle{display:flex;align-items:center;gap:7px;background:#f6f9fa;border:1px solid #dce4e9;border-radius:8px;padding:9px}
.account-toggle span{margin:0!important;flex:1}
.account-toggle input{width:auto!important}
#accountFields{display:grid;gap:10px}
.resource-type{display:inline-block;margin-left:5px;font-size:8px;font-weight:800;border-radius:999px;padding:3px 6px;background:#eef3f5;color:#627682}
.resource-type.company{background:#fff1dc;color:#9e6419}
.print-heading{display:none}
@media print{
  .side,header,.toolbar,.pagetop,.filters,.projects-tools,.planning-summary,.toast,.modalbg{display:none!important}
  main{margin-left:0!important}
  .page{display:none!important;padding:0!important}
  #page-planning{display:block!important}
  .print-heading{display:block!important;margin:0 0 7mm}
  .print-heading h2{font-size:18pt;margin:0}
  .print-heading p{font-size:9pt;margin:2mm 0 0}
  .plannerbox{border:0!important;overflow:visible!important}
  .plannerscroll{overflow:visible!important;max-height:none!important}
  .monthhead,.dayhead{position:relative!important;top:auto!important}
  .corner,.reslabel{position:relative!important;left:auto!important}
}

/* V0.5.0 — couleurs stables par ressource */
.reslabel.resource-colored{
  border-left:6px solid var(--resource-color);
}
.avatar.resource-colored{
  background:var(--resource-color)!important;
  color:#fff!important;
}
.bar.resource-colored{
  background:var(--resource-color)!important;
  color:#fff!important;
  border:1px solid rgba(0,0,0,.15);
}
.resource-color-dot{
  width:10px;
  height:10px;
  border-radius:50%;
  display:inline-block;
  margin-right:6px;
  vertical-align:-1px;
  background:var(--resource-color);
}

/* Chrome doit conserver les couleurs du planning sur papier/PDF */
@media print{
  *{
    -webkit-print-color-adjust:exact!important;
    print-color-adjust:exact!important;
  }
  .bar.resource-colored,
  .avatar.resource-colored,
  .reslabel.resource-colored{
    -webkit-print-color-adjust:exact!important;
    print-color-adjust:exact!important;
  }
  .bar.resource-colored{
    box-shadow:none!important;
    border:1px solid rgba(0,0,0,.22)!important;
  }
}

/* V0.6.0 — périodes individualisées */
.assignmentline{
  display:grid;
  grid-template-columns:1.25fr 1.15fr 1fr 1fr auto;
  gap:7px;
  background:#f7f9fa;
  border:1px solid #dce5ea;
  border-radius:9px;
  padding:8px;
  margin-bottom:6px;
}
.assignmentline select,.assignmentline input{
  width:100%;
  border:1px solid #d1dbe1;
  border-radius:7px;
  padding:7px;
  background:#fff;
}
.assignmentline label span,.superadmin-select span{
  display:block;
  font-size:9px;
  font-weight:800;
  color:#687b87;
  margin-bottom:3px;
}
.superadmin-select{display:block;max-width:580px}
.superadmin-select select{
  width:100%;
  border:1px solid #d1dbe1;
  border-radius:8px;
  padding:8px;
  background:#fff;
}
.assignment-resource-account{font-weight:700}

/* Historique Super Admin */
.history-panel{
  margin-top:20px;
  border:1px solid #d8e2e8;
  border-radius:10px;
  background:#fbfcfd;
  overflow:hidden;
}
.history-panel summary{
  cursor:pointer;
  padding:11px 13px;
  font-size:11px;
  font-weight:800;
  color:#294d61;
}
.history-help{margin:0;padding:0 13px 9px;color:#7b8d98;font-size:9px}
.history-list{border-top:1px solid #e3e9ed}
.history-entry{display:grid;grid-template-columns:145px 150px 1fr;gap:9px;padding:9px 12px;border-bottom:1px solid #e9eef1;font-size:9px}
.history-entry:last-child{border-bottom:0}
.history-entry time{color:#738792;font-weight:700}
.history-entry .actor{font-weight:800;color:#31576c}
.history-entry .event b{display:block;color:#233d4d;margin-bottom:2px}
.history-entry .event span{color:#657b88}

/* Modal édition d'une seule période */
.period-context{
  display:grid;
  gap:4px;
  margin-bottom:12px;
  background:#f4f8fa;
  border:1px solid #d9e4e9;
  border-radius:9px;
  padding:10px;
}
.period-context b{font-size:13px;color:#24485c}
.period-context span{font-size:11px;font-weight:800;color:#526f7f}
.period-context small{font-size:9px;color:#7d8f99}
body.perm-super_admin .bar{cursor:pointer}
body:not(.perm-super_admin) .bar{cursor:pointer}

@media(max-width:850px){
  .assignmentline{grid-template-columns:1fr 1fr}
  .assignmentline label:nth-child(1),
  .assignmentline label:nth-child(2){grid-column:auto}
}

/* V0.6.1 — périodes visibles mais verrouillées quand la fiche appartient à un autre Super Admin */
.bar.locked-project{
  opacity:.72;
  background-image:repeating-linear-gradient(
    135deg,
    rgba(255,255,255,.18) 0,
    rgba(255,255,255,.18) 6px,
    rgba(255,255,255,0) 6px,
    rgba(255,255,255,0) 12px
  )!important;
}

/* V0.6.2 — périodes non accessibles pour les niveaux 1/2 non affectés */
.bar.locked-for-user{
  opacity:.72;
  background-image:repeating-linear-gradient(
    135deg,
    rgba(255,255,255,.18) 0,
    rgba(255,255,255,.18) 6px,
    rgba(255,255,255,0) 6px,
    rgba(255,255,255,0) 12px
  )!important;
}

/* V0.6.3 — hiérarchie du planning */
.planning-section-head{
  display:flex;
  height:34px;
  min-height:34px;
  border-top:2px solid #b9cbd4;
  border-bottom:1px solid #d9e4e9;
  background:#eef4f6;
}
.planning-section-label{
  width:var(--left);
  min-width:var(--left);
  box-sizing:border-box;
  padding:8px 10px;
  font-size:10px;
  font-weight:900;
  color:#24495c;
  background:#e4eef2;
  border-right:1px solid #ccd9df;
  position:sticky;
  left:0;
  z-index:4;
}
.planning-section-label small{
  display:block;
  font-size:8px;
  font-weight:700;
  color:#71848f;
  margin-top:1px;
}
.planning-section-timeline{
  flex:1;
  position:relative;
}
.planning-section-head.super-section{
  background:#f3eef9;
  border-top-color:#8f74ad;
}
.planning-section-head.super-section .planning-section-label{
  background:#ece3f5;
  color:#5d4774;
}
.planning-section-head.admin-section{
  background:#edf5f8;
  border-top-color:#4f849b;
}
.planning-section-head.admin-section .planning-section-label{
  background:#e2eef3;
  color:#315b6e;
}
.planning-section-head.project-section{
  background:#eef6ef;
  border-top-color:#6c946c;
}
.planning-section-head.project-section .planning-section-label{
  background:#e3f0e4;
  color:#426b45;
}
.planning-section-head.unassigned-section{
  background:#fff5e7;
  border-top-color:#d69a49;
}
.planning-section-head.unassigned-section .planning-section-label{
  background:#ffefd5;
  color:#8f5e1d;
}
@media print{
  .planning-section-head{
    -webkit-print-color-adjust:exact!important;
    print-color-adjust:exact!important;
    break-inside:avoid;
  }
  .planning-section-label{
    position:relative!important;
    left:auto!important;
  }
}

/* V0.6.4 — bouton d'ajout toujours en bas de la liste */
.assignment-add-bottom{
  display:flex;
  align-items:center;
  gap:10px;
  justify-content:flex-start;
  margin:10px 0 20px;
  padding:10px;
  border:1px dashed #c8d7df;
  border-radius:9px;
  background:#f8fafb;
}
.assignment-add-bottom small{
  color:#788b96;
  font-size:9px;
}

/* V0.6.5 — planning longue durée et lignes compactes */
.planning-periods{flex-wrap:wrap}
.planning-periods button{white-space:nowrap}

.resrow.compact-planning-row{
  min-height:30px!important;
}
.resrow.compact-planning-row .reslabel{
  padding:3px 8px!important;
  gap:6px!important;
}
.resrow.compact-planning-row .reslabel b{
  font-size:9px!important;
  line-height:1.1;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.resrow.compact-planning-row .reslabel small,
.resrow.compact-planning-row .avatar{
  display:none!important;
}
.resrow.compact-planning-row .resource-color-dot{
  width:8px!important;
  height:8px!important;
  min-width:8px;
  margin-right:1px!important;
}
.resrow.compact-planning-row .bar{
  height:16px!important;
  min-height:16px!important;
  border-radius:4px!important;
  padding:2px 4px!important;
  font-size:8px!important;
  line-height:12px!important;
  box-shadow:0 1px 3px rgba(80,105,120,.35)!important;
}

.planner.long-range .monthhead{
  height:28px!important;
}
.planner.long-range .monthhead .corner{
  padding:6px 8px!important;
  font-size:9px!important;
}
.planner.long-range .monthcell{
  padding:6px 2px!important;
  font-size:8px!important;
  text-align:center;
  overflow:hidden;
  white-space:nowrap;
}
.planner.long-range .dayhead{
  display:none!important;
}
.planner.long-range .planning-section-head{
  height:27px!important;
  min-height:27px!important;
}
.planner.long-range .planning-section-label{
  padding:5px 8px!important;
  font-size:9px!important;
}
.planner.long-range .planning-section-label small{
  display:none!important;
}

/* Sur très longue durée, les traits quotidiens deviennent trop nombreux :
   on les garde fins, sans texte de jour. */
.planner.long-range .tday{
  border-right-color:rgba(225,232,236,.55)!important;
}

@media print{
  .resrow.compact-planning-row .reslabel b{font-size:7pt!important}
  .resrow.compact-planning-row .bar{font-size:6pt!important}
  .planner.long-range .monthcell{font-size:6pt!important}
}

/* ==========================================================
   V0.6.7 — UN SEUL ASCENSEUR VERTICAL SUR LE PLANNING
   ========================================================== */

/* Quand le planning général est affiché, la page elle-même ne défile plus. */
body.planning-mode{
  height:100vh;
  min-height:100vh;
  overflow:hidden;
}

/* Le contenu principal devient une colonne exactement à la hauteur de l'écran. */
body.planning-mode main{
  height:100vh;
  min-height:0;
  overflow:hidden;
  display:flex;
  flex-direction:column;
}

/* Le bandeau du haut garde ses 72 px. */
body.planning-mode main>header{
  flex:0 0 72px;
}

/* Le planning occupe tout l'espace restant sous le bandeau. */
body.planning-mode #page-planning.active{
  flex:1 1 auto;
  min-height:0;
  height:auto;
  overflow:hidden;
  display:flex;
  flex-direction:column;
}

/* Barre de commandes fixe dans la zone, sans second scroll. */
body.planning-mode #page-planning .toolbar{
  flex:0 0 auto;
}

/* La zone blanche du planning prend tout le reste. */
body.planning-mode #page-planning .plannerbox{
  flex:1 1 auto;
  min-height:0;
  overflow:hidden;
  display:flex;
  flex-direction:column;
}

/* C'est LE SEUL élément qui défile verticalement et horizontalement. */
body.planning-mode #page-planning .plannerscroll{
  flex:1 1 auto;
  min-height:0;
  max-height:none!important;
  height:100%;
  overflow:auto;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
}

/* Le titre réservé à l'impression ne consomme pas de hauteur à l'écran. */
body.planning-mode #page-planning .print-heading{
  display:none;
}

/* À l'impression, on annule le verrouillage écran. */
@media print{
  body.planning-mode{
    height:auto!important;
    min-height:0!important;
    overflow:visible!important;
  }
  body.planning-mode main{
    height:auto!important;
    overflow:visible!important;
    display:block!important;
  }
  body.planning-mode #page-planning.active{
    height:auto!important;
    overflow:visible!important;
    display:block!important;
  }
  body.planning-mode #page-planning .plannerbox,
  body.planning-mode #page-planning .plannerscroll{
    height:auto!important;
    min-height:0!important;
    overflow:visible!important;
    display:block!important;
  }
  body.planning-mode #page-planning .print-heading{
    display:block!important;
  }
}

/* ==========================================================
   V0.6.8 — DÉFILEMENT EN CASCADE
   Le planning défile d'abord. À sa limite, la page prend le relais.
   ========================================================== */

body.planning-mode{
  height:auto!important;
  min-height:100vh!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
}

body.planning-mode main{
  height:auto!important;
  min-height:100vh!important;
  overflow:visible!important;
  display:block!important;
}

body.planning-mode main>header{
  height:72px!important;
  min-height:72px!important;
}

body.planning-mode #page-planning.active{
  height:auto!important;
  min-height:0!important;
  overflow:visible!important;
  display:block!important;
}

body.planning-mode #page-planning .plannerbox{
  height:auto!important;
  min-height:0!important;
  overflow:hidden!important;
  display:block!important;
}

/* Le planning conserve son propre ascenseur.
   IMPORTANT : overscroll AUTO permet au navigateur de transmettre
   la molette à la page quand le planning arrive en haut ou en bas. */
body.planning-mode #page-planning .plannerscroll{
  height:auto!important;
  min-height:0!important;
  max-height:calc(100vh - 165px)!important;
  overflow:auto!important;
  overscroll-behavior-y:auto!important;
  overscroll-behavior-x:auto!important;
  scrollbar-gutter:auto!important;
}

/* On garde un peu d'espace sous le planning :
   cela rend le passage planning -> page perceptible et fluide. */
body.planning-mode #page-planning{
  padding-bottom:28px;
}

/* Impression : uniquement la largeur calculée pour la période choisie. */
@media print{
  body.print-exact-range #planner,
  body.print-exact-range #planner>.planner{
    overflow:hidden!important;
  }
  body.print-exact-range .plannerscroll{
    max-height:none!important;
    overflow:visible!important;
  }
}

/* ==========================================================
   V0.6.9 — MENU EN HAUT / PLANNING PLEINE LARGEUR
   ========================================================== */

/* L'ancien menu vertical devient une barre horizontale en haut. */
.side{
  position:sticky!important;
  inset:auto!important;
  top:0!important;
  width:100%!important;
  height:60px!important;
  min-height:60px!important;
  background:var(--navy)!important;
  padding:7px 12px!important;
  color:#fff!important;
  z-index:80!important;
  display:flex!important;
  align-items:center!important;
  gap:8px!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
  transform:none!important;
  white-space:nowrap;
  scrollbar-width:thin;
}

.brand{
  display:flex!important;
  align-items:center!important;
  gap:8px!important;
  padding:0 12px 0 0!important;
  margin:0!important;
  min-width:185px;
  flex:0 0 auto;
  border-right:1px solid rgba(255,255,255,.16);
}
.brand>span{
  width:36px!important;
  height:36px!important;
  min-width:36px;
  border-radius:10px!important;
  font-size:13px;
}
.brand b{
  font-size:12px;
  line-height:1.05;
}
.brand small{
  font-size:9px!important;
  margin-top:2px!important;
}

/* Boutons de navigation côte à côte. */
.navlinks{
  display:flex;
  align-items:center;
  gap:4px;
  flex:1 0 auto;
}
.nav{
  width:auto!important;
  flex:0 0 auto;
  margin:0!important;
  padding:9px 11px!important;
  text-align:center!important;
  border-radius:8px!important;
  font-size:11px;
}
.nav em{
  float:none!important;
  display:inline-block;
  margin-left:5px;
  vertical-align:1px;
}

.sidefoot{
  display:none!important;
}

/* Compte de test placé dans la barre supérieure. */
.top-account{
  flex:0 0 auto;
  margin-left:auto;
  padding-left:10px;
  border-left:1px solid rgba(255,255,255,.16);
}
.top-account label{
  color:#bcd0dc!important;
  font-size:8px!important;
}
.top-account select{
  width:230px;
  max-width:230px;
  padding:7px!important;
  border-color:#496378!important;
  background:#fff!important;
}
.top-account #roleBadge{
  background:#dcebf0!important;
  color:#244f62!important;
  white-space:nowrap;
}

/* Toute la largeur de l'écran est rendue au contenu. */
main{
  margin-left:0!important;
  width:100%!important;
  max-width:none!important;
}

/* Deuxième barre compacte : uniquement le titre de la page. */
header{
  height:56px!important;
  min-height:56px!important;
  padding:0 16px!important;
  position:sticky!important;
  top:60px!important;
  z-index:60!important;
}
header h1{
  font-size:18px!important;
}
header p{
  font-size:10px!important;
}

/* Planning réellement pleine largeur. */
#page-planning,
#page-planning .toolbar,
#page-planning .plannerbox,
#page-planning .plannerscroll{
  width:100%!important;
  max-width:none!important;
}

/* Ajustement de la hauteur à cause du nouveau menu supérieur. */
body.planning-mode #page-planning .plannerscroll{
  max-height:calc(100vh - 225px)!important;
}

/* Commandes un peu plus compactes. */
#page-planning .toolbar{
  padding:9px!important;
  gap:8px!important;
}
#page-planning .toolbar label{
  margin-bottom:3px!important;
}
#page-planning .toolbar input,
#page-planning .toolbar select{
  padding:7px!important;
}

/* Écrans plus étroits : la barre du haut reste visible et peut défiler horizontalement. */
@media(max-width:980px){
  .side{
    height:58px!important;
    min-height:58px!important;
    padding:6px 8px!important;
  }
  .brand{
    min-width:150px;
  }
  .brand small{
    display:none!important;
  }
  .nav{
    padding:8px 9px!important;
    font-size:10px!important;
  }
  .top-account label{
    display:none!important;
  }
  .top-account select{
    width:190px;
    max-width:190px;
  }
  header{
    top:58px!important;
  }
}

@media(max-width:720px){
  .side{
    transform:none!important;
    display:flex!important;
    width:100%!important;
  }
  main{
    margin-left:0!important;
  }
  header{
    padding:0 10px!important;
  }
  .brand{
    min-width:118px;
  }
  .brand>span{
    width:32px!important;
    height:32px!important;
    min-width:32px;
  }
  .brand b{
    font-size:10px;
  }
  .top-account select{
    width:160px;
    max-width:160px;
  }
}

/* Impression : navigation écran masquée, planning inchangé. */
@media print{
  .side{
    display:none!important;
  }
  header{
    display:none!important;
  }
  main{
    margin-left:0!important;
    width:auto!important;
  }
}

/* ==========================================================
   V0.7.0 — PAGE D'ACCUEIL COMMERCIALE
   ========================================================== */

.landing-page{
  min-height:100vh;
  background:
    radial-gradient(circle at 15% 10%, rgba(44,133,164,.13), transparent 28%),
    radial-gradient(circle at 85% 15%, rgba(67,163,116,.09), transparent 26%),
    #f6f9fb;
  color:#18394a;
  font-family:inherit;
}
.landing-nav{
  height:72px;
  padding:0 34px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  border-bottom:1px solid #dde7ec;
  background:rgba(255,255,255,.9);
  backdrop-filter:blur(10px);
  position:sticky;
  top:0;
  z-index:20;
}
.landing-brand{
  display:flex;
  align-items:center;
  gap:12px;
}
.landing-logo{
  width:42px;
  height:42px;
  border-radius:12px;
  display:grid;
  place-items:center;
  background:#1f657e;
  color:#fff;
  font-weight:900;
  box-shadow:0 7px 18px rgba(31,101,126,.2);
}
.landing-brand b{
  display:block;
  font-size:15px;
}
.landing-brand small{
  display:block;
  color:#748993;
  font-size:10px;
  margin-top:2px;
}
.landing-nav-actions{
  display:flex;
  gap:8px;
}
.btn.ghost{
  background:transparent;
  border-color:#cbd9e0;
}
.hero{
  max-width:1240px;
  margin:0 auto;
  padding:76px 34px 56px;
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr);
  gap:48px;
  align-items:center;
}
.eyebrow{
  display:inline-block;
  color:#2d7893;
  font-size:10px;
  font-weight:900;
  letter-spacing:.12em;
  margin-bottom:12px;
}
.hero h1{
  margin:0;
  max-width:760px;
  font-size:48px;
  line-height:1.02;
  letter-spacing:-.035em;
  color:#143244;
}
.hero-copy>p{
  max-width:760px;
  margin:22px 0 0;
  font-size:16px;
  line-height:1.7;
  color:#607985;
}
.hero-actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:28px;
}
.btn.big{
  padding:12px 18px!important;
  font-size:12px!important;
}
.hero-points{
  display:flex;
  flex-wrap:wrap;
  gap:10px 18px;
  margin-top:22px;
  color:#4c6876;
  font-size:10px;
  font-weight:800;
}
.pricing-card{
  background:#fff;
  border:1px solid #d7e3e9;
  border-radius:18px;
  box-shadow:0 24px 60px rgba(54,83,99,.12);
  padding:26px;
}
.price-head{
  padding-bottom:18px;
  border-bottom:1px solid #e6edf1;
}
.price-head>span{
  display:block;
  color:#2d7893;
  font-weight:900;
  font-size:10px;
  letter-spacing:.1em;
}
.price-head strong{
  display:block;
  margin-top:8px;
  font-size:42px;
  line-height:1;
  color:#15384b;
}
.price-head strong small{
  font-size:14px;
  color:#70858f;
  font-weight:700;
}
.included,.extras{
  padding:18px 0;
  border-bottom:1px solid #edf2f4;
}
.included b,.extras b{
  display:block;
  margin-bottom:10px;
  font-size:11px;
  color:#27495a;
}
.included p,.extras p{
  margin:8px 0;
  font-size:10px;
  color:#607985;
}
.included p:before{
  content:"✓";
  color:#3b9a68;
  font-weight:900;
  margin-right:8px;
}
.extras p strong{
  color:#1d5c75;
}
.full{
  width:100%;
  justify-content:center;
}
.pricing-card .full{
  margin-top:18px;
}
.price-note{
  display:block;
  text-align:center;
  color:#899aa3;
  margin-top:9px;
  font-size:8px;
}

.feature-section{
  max-width:1240px;
  margin:0 auto;
  padding:50px 34px 72px;
}
.section-heading{
  max-width:720px;
  margin-bottom:26px;
}
.section-heading h2,
.landing-cta h2{
  margin:0;
  color:#17394a;
  font-size:28px;
  line-height:1.15;
}
.feature-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
}
.feature-card{
  background:#fff;
  border:1px solid #dce6eb;
  border-radius:14px;
  padding:20px;
  min-height:150px;
}
.feature-card>span{
  display:inline-grid;
  place-items:center;
  width:36px;
  height:36px;
  border-radius:10px;
  background:#eaf3f6;
  font-size:16px;
}
.feature-card h3{
  margin:14px 0 6px;
  font-size:13px;
  color:#24495a;
}
.feature-card p{
  margin:0;
  color:#70838e;
  line-height:1.55;
  font-size:10px;
}
.landing-cta{
  max-width:1170px;
  margin:0 auto 60px;
  padding:28px 30px;
  border-radius:18px;
  background:#173f54;
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:30px;
}
.landing-cta .eyebrow{
  color:#88c9dd;
}
.landing-cta h2{
  color:#fff;
}
.landing-cta p{
  margin:7px 0 0;
  color:#c6d8e1;
  font-size:10px;
}
.landing-footer{
  min-height:70px;
  padding:20px 34px;
  border-top:1px solid #dce6eb;
  display:flex;
  align-items:center;
  justify-content:space-between;
  color:#788b94;
  font-size:9px;
  background:#fff;
}
.landing-footer b{
  color:#315365;
}

.signup-modal{
  position:fixed;
  inset:0;
  background:rgba(18,39,50,.55);
  display:none;
  align-items:center;
  justify-content:center;
  z-index:200;
  padding:20px;
}
.signup-modal.show{
  display:flex;
}
.signup-box{
  width:min(440px,100%);
  background:#fff;
  border-radius:16px;
  padding:28px;
  box-shadow:0 30px 80px rgba(15,35,45,.3);
  position:relative;
}
.signup-box h2{
  margin:0;
  font-size:24px;
  color:#18394a;
}
.signup-box p{
  color:#687e89;
  line-height:1.6;
  font-size:10px;
  margin:12px 0 18px;
}
.signup-close{
  position:absolute;
  right:12px;
  top:10px;
  width:32px;
  height:32px;
  border:0;
  background:#eef3f5;
  border-radius:8px;
  font-size:18px;
  cursor:pointer;
}

.app-shell{
  min-height:100vh;
}

@media(max-width:900px){
  .hero{
    grid-template-columns:1fr;
    padding-top:46px;
  }
  .hero h1{
    font-size:38px;
  }
  .feature-grid{
    grid-template-columns:repeat(4,minmax(0,1fr));
  }
}
@media(max-width:620px){
  .landing-nav{
    padding:0 14px;
  }
  .landing-brand small{
    display:none;
  }
  .landing-nav-actions .landing-login-top{
    display:none;
  }
  .hero{
    padding:36px 16px 40px;
  }
  .hero h1{
    font-size:32px;
  }
  .feature-section{
    padding:36px 16px 50px;
  }
  .feature-grid{
    grid-template-columns:1fr;
  }
  .landing-cta{
    margin:0 16px 40px;
    flex-direction:column;
    align-items:flex-start;
  }
  .landing-footer{
    padding:18px 16px;
    gap:10px;
    flex-direction:column;
    align-items:flex-start;
  }
}


/* ==========================================================
   V0.8.0 — ACCUEIL, INSCRIPTION, ADMIN PLATEFORME, ABONNEMENT
   ========================================================== */
.offers-section{max-width:1240px;margin:0 auto;padding:22px 34px 34px}.offer-help{color:#72858f;font-size:10px;line-height:1.55}.offer-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.offer-card{background:#fff;border:1px solid #dbe6eb;border-radius:14px;padding:18px;min-height:145px}.offer-card.featured{border-color:#6aa4b9;box-shadow:0 10px 28px rgba(31,101,126,.10)}.offer-tag{font-size:8px;font-weight:900;letter-spacing:.08em;color:#2c748e}.offer-card h3{font-size:24px;margin:9px 0 8px;color:#17394a}.offer-card h3 small{font-size:10px;color:#7a8d96}.offer-card p{font-size:9px;line-height:1.55;color:#6e828d;margin:0}
.login-choice-box{max-width:680px!important}.login-choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:18px}.login-choice{border:1px solid #d8e4e9;background:#f9fbfc;border-radius:14px;padding:20px;text-align:left;cursor:pointer;transition:.15s}.login-choice:hover{transform:translateY(-2px);border-color:#83afc0;box-shadow:0 10px 24px rgba(44,78,93,.10)}.login-choice.owner{background:#183f53;color:#fff;border-color:#183f53}.login-choice b{display:block;font-size:13px;margin-bottom:7px}.login-choice span{font-size:9px;line-height:1.5;color:#6e838e}.login-choice.owner span{color:#c4d8e1}
.signup-wide{width:min(1040px,96vw)!important;max-height:92vh;overflow:auto}.signup-intro{margin-bottom:18px!important}.signup-section-title{font-size:11px;font-weight:900;color:#244b5d;margin:22px 0 10px;padding-top:13px;border-top:1px solid #e6eef1}.signup-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.signup-grid label{display:flex;flex-direction:column;gap:5px}.signup-grid label span{font-size:8px;font-weight:800;color:#617681}.signup-grid input{width:100%;padding:9px 10px;border:1px solid #cfdde3;border-radius:8px;font:inherit}.signup-grid .span2{grid-column:span 2}.signup-plan-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.signup-plan{border:1px solid #d8e4e9;border-radius:12px;padding:13px;cursor:pointer;display:grid;gap:5px;background:#fff}.signup-plan.selected{border-color:#3b849e;background:#edf6f8;box-shadow:0 0 0 2px rgba(59,132,158,.08)}.signup-plan input{margin:0 0 2px}.signup-plan b{font-size:10px}.signup-plan strong{font-size:17px;color:#1e5d75}.signup-plan small{font-size:8px;color:#738791;line-height:1.4}.payment-choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.payment-choice{display:grid;grid-template-columns:auto 1fr;gap:4px 8px;border:1px solid #d8e4e9;border-radius:12px;padding:13px;cursor:pointer}.payment-choice.selected{border-color:#3b849e;background:#edf6f8}.payment-choice input{grid-row:1/3}.payment-choice b{font-size:10px}.payment-choice span{font-size:8px;color:#718690}.stripe-placeholder{margin-top:10px;background:#f5f7f8;border:1px dashed #bccbd2;border-radius:10px;padding:12px;display:grid;gap:4px}.stripe-placeholder b{font-size:9px;color:#344f5c}.stripe-placeholder span{font-size:8px;color:#71848e;line-height:1.5}.signup-check{display:block;margin:10px 0;font-size:9px;color:#526b77}.signup-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:16px}.signup-summary>div{background:#f4f8fa;border-radius:10px;padding:12px;display:grid;gap:4px}.signup-summary span{font-size:8px;color:#758994}.signup-summary b{font-size:12px;color:#244c60}.signup-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}.payment-pending{margin-top:12px;border-radius:10px;padding:12px;background:#fff6dc;border:1px solid #ead59b;color:#725918;font-size:9px;line-height:1.5}
.platform-shell{min-height:100vh;background:#f3f6f8;color:#193a4a}.platform-topbar{height:64px;background:#102f40;color:#fff;display:flex;align-items:center;padding:0 18px;gap:18px;position:sticky;top:0;z-index:100}.platform-brand{display:flex;align-items:center;gap:10px;min-width:235px}.platform-brand>span{width:38px;height:38px;border-radius:10px;background:#3b8097;display:grid;place-items:center;font-weight:900}.platform-brand b{display:block;font-size:12px}.platform-brand small{display:block;color:#a9c2ce;font-size:8px}.platform-nav{display:flex;gap:4px;flex:1}.platform-nav button{border:0;background:transparent;color:#c9d8df;padding:9px 12px;border-radius:8px;cursor:pointer;font-weight:800;font-size:10px}.platform-nav button.active,.platform-nav button:hover{background:#234c60;color:#fff}.platform-main{max-width:1450px;margin:0 auto;padding:24px 24px 50px}.platform-page{display:none}.platform-page.active{display:block}.platform-heading{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:18px}.platform-heading h1{font-size:24px;margin:0;color:#17394a}.platform-heading p{font-size:10px;color:#71858f;margin:5px 0 0}.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.kpi-card{background:#fff;border:1px solid #dce6eb;border-radius:13px;padding:17px}.kpi-card span{display:block;font-size:8px;color:#78909a;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.kpi-card strong{display:block;font-size:24px;color:#1a465a;margin-top:7px}.kpi-card small{display:block;font-size:8px;color:#8799a1;margin-top:5px}.platform-panel{background:#fff;border:1px solid #dce6eb;border-radius:13px;padding:18px;margin-top:12px}.table-panel{overflow:auto}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.panel-head h2{margin:0;font-size:13px}.muted{font-size:8px;color:#81949c}.platform-table{width:100%;border-collapse:collapse;min-width:850px}.platform-table th,.platform-table td{border-bottom:1px solid #e8eef1;padding:10px 8px;text-align:left;font-size:9px;vertical-align:middle}.platform-table th{font-size:8px;color:#728791;text-transform:uppercase;letter-spacing:.04em}.status-chip{display:inline-block;padding:4px 7px;border-radius:999px;font-size:8px;font-weight:900}.status-chip.active{background:#e5f5ec;color:#2e7a50}.status-chip.pending{background:#fff3d9;color:#8a6518}.status-chip.cancel{background:#fde8e6;color:#a43e36}.client-summary-line{display:grid;grid-template-columns:2fr repeat(4,1fr);gap:10px;align-items:center}.client-summary-line div{font-size:9px}.client-summary-line b{font-size:11px}.client-summary-line span{display:block;color:#788b95;font-size:8px;margin-top:2px}
.client-admin-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.admin-card{background:#f7fafb;border:1px solid #dce6ea;border-radius:12px;padding:14px}.admin-card h4,.module-admin-block h4{margin:0 0 10px;font-size:11px;color:#294f61}.admin-kv{display:grid;grid-template-columns:110px 1fr;gap:5px 8px;font-size:8.5px}.admin-kv span{color:#7b8f99}.admin-kv b{font-weight:800;word-break:break-word}.module-admin-block,.usage-admin-block{margin-top:15px;border-top:1px solid #e6edf0;padding-top:14px}.module-admin-block>p{font-size:8px;color:#71858f}.module-toggle-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.module-toggle{display:grid;grid-template-columns:auto 1fr auto;gap:9px;align-items:start;border:1px solid #d9e5e9;border-radius:11px;padding:12px;background:#fff}.module-toggle b{display:block;font-size:10px}.module-toggle span{display:block;font-size:8px;color:#758a94;margin-top:3px}.module-toggle strong{font-size:10px;color:#1d6179}.subscription-calc{margin-top:12px;background:#edf6f8;border-radius:10px;padding:12px;font-size:9px}.usage-admin-block{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.usage-box{background:#f6f9fa;border-radius:10px;padding:11px}.usage-box b{display:block;font-size:13px;color:#244d60}.usage-box span{font-size:8px;color:#7a8d96}
.subscription-page-grid{display:grid;grid-template-columns:1.5fr .75fr;gap:14px}.subscription-main-card,.subscription-side-card,.subscription-actions-card,.subscription-cancel-card{background:#fff;border:1px solid #dce6ea;border-radius:13px;padding:18px}.subscription-price-line{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #e8eef1;padding-bottom:14px;margin-bottom:14px}.subscription-price-line span{display:block;font-size:8px;color:#758a94}.subscription-price-line strong{display:block;font-size:25px;color:#19475b;margin-top:4px}.status-pill{padding:5px 8px;border-radius:999px;font-size:8px;font-weight:900}.status-pill.active{background:#e4f4ea;color:#28774b}.client-modules{display:grid;gap:9px}.client-module-row{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center;border:1px solid #e0e9ed;border-radius:10px;padding:11px}.client-module-row b{display:block;font-size:10px}.client-module-row span{display:block;font-size:8px;color:#788b95;margin-top:2px}.client-module-row strong{font-size:9px}.subscription-breakdown{margin-top:12px;background:#f5f8f9;border-radius:10px;padding:11px;font-size:9px;line-height:1.7}.subscription-side-card h3,.subscription-actions-card h3,.subscription-cancel-card h3{font-size:11px;margin:0 0 9px}.subscription-side-card h3:not(:first-child){margin-top:18px}.subscription-side-card p{font-size:8.5px;color:#70858f;line-height:1.6}.subscription-actions-card,.subscription-cancel-card{margin-top:14px;display:flex;justify-content:space-between;align-items:center;gap:18px}.subscription-actions-card p,.subscription-cancel-card p{margin:4px 0 0;font-size:8.5px;color:#748994}.module-disabled-banner{margin:18px 0;background:#fff4db;border:1px solid #ead59d;border-radius:10px;padding:11px;color:#745b1c}.module-disabled-banner b{display:block;font-size:10px}.module-disabled-banner span{display:block;font-size:8px;margin-top:3px}.top-home{padding:6px 8px!important;font-size:8px!important}
@media(max-width:980px){.offer-grid{grid-template-columns:repeat(2,1fr)}.signup-grid{grid-template-columns:repeat(2,1fr)}.signup-plan-grid{grid-template-columns:repeat(2,1fr)}.kpi-grid{grid-template-columns:repeat(2,1fr)}.client-admin-grid{grid-template-columns:1fr}.subscription-page-grid{grid-template-columns:1fr}.platform-nav{overflow:auto}.platform-brand{min-width:180px}}
@media(max-width:620px){.offers-section{padding:18px 16px 30px}.offer-grid,.signup-plan-grid,.payment-choice-grid,.signup-grid,.module-toggle-grid,.kpi-grid{grid-template-columns:1fr}.signup-grid .span2{grid-column:span 1}.login-choice-grid{grid-template-columns:1fr}.signup-summary{grid-template-columns:1fr}.platform-topbar{height:auto;min-height:64px;flex-wrap:wrap;padding:9px}.platform-nav{order:3;width:100%}.platform-main{padding:18px 12px}.subscription-actions-card,.subscription-cancel-card{align-items:flex-start;flex-direction:column}}

/* ==========================================================
   V0.8.1 — DÉMO SIMPLE + INSCRIPTION EN 4 ÉTAPES
   ========================================================== */
.signup-wizard{
  max-width:820px!important;
}
.wizard-steps{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:6px;
  margin:18px 0 20px;
}
.wizard-steps span{
  padding:9px 8px;
  border-radius:8px;
  background:#edf2f4;
  color:#788a94;
  font-size:9px;
  font-weight:900;
  text-align:center;
}
.wizard-steps span.active{
  background:#dcecf2;
  color:#1d617b;
}
.wizard-panel{
  display:none;
  min-height:330px;
}
.wizard-panel.active{
  display:block;
}
.wizard-help{
  margin:0 0 14px;
  color:#6c808b;
  font-size:10px;
}
.demo-note{
  margin-top:16px;
  padding:12px 14px;
  border-radius:9px;
  background:#eef6f1;
  border:1px solid #d5e8da;
  color:#4a6754;
  font-size:10px;
  line-height:1.5;
}
.wizard-module-base{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:16px;
  border:1px solid #d8e4e9;
  border-radius:10px;
  background:#fff;
  margin-bottom:10px;
}
.wizard-module-base div{
  display:flex;
  flex-direction:column;
  gap:4px;
}
.wizard-module-base span{
  color:#758791;
  font-size:9px;
}
.wizard-module-base strong{
  font-size:15px;
  color:#1e5e77;
  white-space:nowrap;
}
.wizard-module-grid{
  grid-template-columns:1fr 1fr!important;
}
.module-summary{
  margin-top:14px!important;
}
.wizard-nav{
  display:flex;
  gap:8px;
  padding-top:16px;
  border-top:1px solid #e1e9ed;
  margin-top:16px;
}
.payment-actions{
  margin-top:14px;
}
.platform-brand small{
  max-width:420px;
}
@media(max-width:700px){
  .wizard-steps{
    grid-template-columns:1fr 1fr;
  }
  .wizard-module-grid{
    grid-template-columns:1fr!important;
  }
  .wizard-panel{
    min-height:0;
  }
}

/* ==========================================================
   V0.8.2 — MODULES, ENTREPRISE N1, CLIENT PROVISOIRE
   ========================================================== */
.login-realistic{max-width:520px!important}
.login-form{display:grid;gap:10px;margin:18px 0}
.login-form label{display:grid;gap:4px}
.login-form label span{font-size:9px;font-weight:800;color:#617681}
.login-form input{padding:10px;border:1px solid #ccd9df;border-radius:8px}
.login-form small{color:#7c8e97;text-align:center}
.login-separator{display:flex;align-items:center;gap:10px;color:#91a0a7;margin:14px 0}
.login-separator:before,.login-separator:after{content:"";height:1px;background:#dfe7eb;flex:1}
.one-col{grid-template-columns:1fr!important}

.cancel-choice-grid{display:grid;grid-template-columns:1fr;gap:10px}
.cancel-choice{
 width:100%;text-align:left;border:1px solid #d8e3e8;border-radius:10px;background:#fff;
 padding:15px;cursor:pointer;display:flex;flex-direction:column;gap:5px
}
.cancel-choice:hover{border-color:#779aaa;background:#f8fbfc}
.cancel-choice b{font-size:12px;color:#274d60}
.cancel-choice span{font-size:9px;color:#748791}
.danger-choice{border-color:#e2c3c0}
.danger-choice b{color:#a23831}
.module-cancel-warning{padding:13px;border-radius:9px;background:#fff6e7;border:1px solid #f0d5aa;color:#795726;font-size:10px;line-height:1.5}
.module-cancel-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.mini-help{font-size:9px;color:#81919a}

.client-module-row .module-actions{display:flex;gap:6px;align-items:center}
.btn.cancel-module{border-color:#dfc3c0;color:#9d3932;background:#fff}

.phase-readonly-card{
 display:grid;grid-template-columns:2fr 1fr 1fr;gap:8px;margin-bottom:18px
}
.phase-readonly-card>div{
 border:1px solid #dce6eb;border-radius:9px;padding:12px;background:#f9fbfc;
 display:flex;flex-direction:column;gap:4px
}
.phase-readonly-card span{font-size:8px;color:#7b8c95;text-transform:uppercase;font-weight:900}
.phase-readonly-card b{font-size:12px;color:#294d5e}
.company-phase-modal{max-width:680px}
#companyAccountRule{display:block;color:#748791;margin-top:4px}

body.company-account .navlinks .nav{display:none!important}
body.company-account .navlinks .nav[data-page="planning"]{display:inline-flex!important}
body.company-account #workerFilter{pointer-events:none}
body.company-account #printA1Btn,
body.company-account #printA2Btn{display:none!important}

.platform-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:16px}
@media(max-width:700px){
 .phase-readonly-card{grid-template-columns:1fr}
 .platform-heading{align-items:flex-start;flex-direction:column}
}

/* V0.8.3 — gratuité commerciale réservée au Super Admin du site */
.gift-admin-block{
  margin-top:16px;padding:16px;border:1px solid #d8e4e9;border-radius:12px;background:#f9fbfc;
}
.gift-admin-block h4{margin:0 0 5px;color:#244d60}
.gift-admin-block p{margin:0 0 12px;color:#6f838e;font-size:9px;line-height:1.5}
.gift-admin-controls{display:flex;align-items:flex-end;gap:8px;flex-wrap:wrap}
.gift-admin-controls label{display:grid;gap:4px;min-width:170px}
.gift-admin-controls label span{font-size:8px;font-weight:900;color:#657984;text-transform:uppercase}
.gift-admin-controls input{padding:9px;border:1px solid #cbd9df;border-radius:8px;width:120px}
.gift-status{margin-top:12px;padding:11px 12px;border-radius:9px;background:#eef5f8;color:#315b6e;font-size:10px;font-weight:800}
.gift-status.active{background:#eaf6ee;color:#326847;border:1px solid #cfe5d6}
.client-gift-banner{margin-bottom:12px;padding:14px 16px;border-radius:12px;background:#eaf6ee;border:1px solid #cfe5d6;color:#2d6242;font-weight:900;font-size:12px}
.client-gift-banner small{display:block;margin-top:4px;font-weight:600;font-size:9px;color:#5f7c69}

/* ==========================================================
   V0.8.4 — DOCUMENTS ENTREPRISES + NOTIFICATIONS SUPER ADMIN
   ========================================================== */
.nav em#notificationBadge{
  min-width:18px;
  height:18px;
  padding:0 5px;
  border-radius:10px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:#d9544d;
  color:#fff;
  font-style:normal;
  font-size:8px;
  margin-left:5px;
}
.nav em#notificationBadge.empty{
  background:#637b88;
}

.notification-layout{
  display:grid;
  grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);
  gap:14px;
}
.notification-panel{
  background:#fff;
  border:1px solid #dce6eb;
  border-radius:12px;
  padding:16px;
}
.notification-list,.email-outbox-list{
  display:grid;
  gap:8px;
}
.notification-item{
  width:100%;
  border:1px solid #dbe5ea;
  border-radius:10px;
  background:#fff;
  padding:12px 13px;
  text-align:left;
  cursor:pointer;
  display:grid;
  grid-template-columns:34px 1fr auto;
  gap:10px;
  align-items:start;
}
.notification-item.unread{
  background:#f1f8fb;
  border-color:#bcd8e3;
}
.notification-item:hover{
  border-color:#6f9daf;
}
.notification-icon{
  width:34px;height:34px;border-radius:9px;
  display:grid;place-items:center;background:#e9f2f6;font-size:15px;
}
.notification-main b{display:block;color:#244c5e;font-size:11px;margin-bottom:4px}
.notification-main span{display:block;color:#607984;font-size:9px;line-height:1.45}
.notification-item time{font-size:8px;color:#82939b;white-space:nowrap}
.notification-empty{
  padding:18px;border:1px dashed #cfdce2;border-radius:10px;color:#7c8e97;font-size:10px;text-align:center;
}

.email-item{
  border:1px solid #e0e8ec;
  border-radius:10px;
  padding:12px;
  background:#fbfcfd;
}
.email-item b{display:block;font-size:10px;color:#294e60;margin-bottom:4px}
.email-item span,.email-item small{display:block;font-size:9px;color:#738791;line-height:1.45}
.email-item .email-subject{font-weight:800;color:#4a6876;margin:4px 0}

.company-doc-upload{
  display:grid;
  grid-template-columns:minmax(220px,1fr) auto;
  gap:8px;
  align-items:end;
}
.company-doc-upload label:first-child{
  display:grid;
  gap:4px;
}
.company-doc-upload label:first-child span{
  font-size:8px;font-weight:900;text-transform:uppercase;color:#6c7f89;
}
.company-doc-upload input[type="text"],
.company-doc-upload input:not([type]){
  padding:9px;border:1px solid #cbd9df;border-radius:8px;
}
.company-doc-upload #cpDocumentProgress{
  grid-column:1/-1;
  font-size:9px;color:#5e7885;
}
.company-documents-list{
  display:grid;
  gap:6px;
  margin-top:10px;
}
.company-doc-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  border:1px solid #dde6ea;
  border-radius:8px;
  padding:9px 10px;
  background:#fafcfd;
}
.company-doc-row div{min-width:0}
.company-doc-row b{display:block;font-size:10px;color:#294e60}
.company-doc-row small{display:block;font-size:8px;color:#7b8c94;margin-top:2px}
.doc-type-chip{
  display:inline-block;
  padding:2px 6px;
  border-radius:6px;
  background:#eaf2f6;
  color:#42697b;
  font-size:8px;
  font-weight:900;
  margin-right:5px;
}

@media(max-width:900px){
  .notification-layout{grid-template-columns:1fr}
}
@media(max-width:620px){
  .company-doc-upload{grid-template-columns:1fr}
}

/* ==========================================================
   V0.8.5 — AFFICHAGE GRATUITÉ + MRR RÉELLEMENT FACTURÉ
   ========================================================== */
.free-offer-summary{
  display:inline-flex;
  align-items:center;
  gap:5px;
  margin-top:4px;
  padding:4px 7px;
  border-radius:7px;
  background:#eaf6ee;
  border:1px solid #cfe5d6;
  color:#326847!important;
  font-size:8px!important;
  font-weight:900;
}
.free-price-now{
  color:#2f724a!important;
}
.future-price-note{
  display:block;
  margin-top:3px;
  color:#71858f!important;
  font-size:8px!important;
  font-weight:600!important;
}

/* V0.8.6 — connexion de tous les comptes du client */
#loginHelp{
  line-height:1.45;
}

/* ==========================================================
   V0.8.7 — AUTEUR PHOTO + DROITS IMMÉDIATS
   ========================================================== */
.photo-import-meta{
  display:block;
  margin-top:4px;
  padding-top:4px;
  border-top:1px solid #e5ecef;
  color:#607984;
  font-size:8px;
  line-height:1.35;
  font-weight:700;
}

/* V0.8.8 — les vues sont recalculées à chaque retour d'onglet/page.
   Aucun rechargement navigateur n'est nécessaire. */

/* ==========================================================
   V0.8.9 — ACCUEIL AU DÉMARRAGE + DÉCONNEXION TOUJOURS VISIBLE
   ========================================================== */
.logout-home-btn{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  flex:0 0 auto!important;
  white-space:nowrap!important;
  visibility:visible!important;
  opacity:1!important;
}
.top-account .logout-home-btn{
  min-width:118px;
}
.platform-topbar .logout-home-btn{
  margin-left:auto;
  min-width:138px;
}

/* ==========================================================
   V0.9.0 — BANDEAU SUPÉRIEUR COMPACT / CLOCHE SEULE
   ========================================================== */

/* Le bandeau complet ne défile plus : seule la navigation centrale peut défiler. */
.side{
  overflow:hidden!important;
  padding-right:8px!important;
}

/* Marque plus compacte pour laisser davantage de place. */
.side .brand{
  min-width:155px!important;
  padding-right:9px!important;
}
.side .brand>span{
  width:32px!important;
  height:32px!important;
  min-width:32px!important;
}
.side .brand b{
  font-size:11px!important;
}
.side .brand small{
  font-size:8px!important;
}

/* La zone des menus absorbe l'espace restant et devient la seule zone scrollable. */
.side .navlinks{
  flex:1 1 auto!important;
  min-width:0!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
  scrollbar-width:thin;
  padding-bottom:1px;
}
.side .navlinks .nav{
  padding:8px 9px!important;
  font-size:10px!important;
}

/* Partie droite toujours visible. */
.side .top-account{
  flex:0 0 auto!important;
  min-width:max-content;
  margin-left:6px!important;
  padding-left:8px!important;
  padding-right:0!important;
  background:var(--navy)!important;
  position:relative;
  z-index:5;
}

/* On enlève le libellé "Compte de test" : le sélecteur suffit. */
.side .top-account>label{
  display:none!important;
}
.side .top-account select{
  width:190px!important;
  max-width:190px!important;
  padding:7px!important;
}
.side .top-account #roleBadge{
  max-width:145px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap!important;
}

/* Cloche seule, compacte. */
.notification-bell{
  position:relative;
  width:36px!important;
  height:36px!important;
  min-width:36px!important;
  padding:0!important;
  margin:0!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  border:1px solid rgba(255,255,255,.2)!important;
  background:rgba(255,255,255,.08)!important;
  border-radius:9px!important;
  color:#fff!important;
  font-size:16px!important;
}
.notification-bell:hover,
.notification-bell.active{
  background:#234a66!important;
}
.notification-bell #notificationBadge{
  position:absolute;
  right:-4px;
  top:-5px;
  min-width:17px!important;
  height:17px!important;
  padding:0 4px!important;
  margin:0!important;
  border-radius:9px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  background:#d9544d!important;
  color:#fff!important;
  font-size:8px!important;
  line-height:1!important;
  font-style:normal!important;
}
.notification-bell #notificationBadge.empty{
  display:none!important;
}

/* Le bouton de sortie reste en permanence à l'extrême droite. */
.side #appHomeBtn{
  min-width:126px!important;
  padding:8px 10px!important;
  font-size:10px!important;
  margin-left:2px!important;
}

/* L'administration plateforme garde également sa sortie bien visible. */
.platform-topbar{
  overflow:hidden!important;
}
.platform-nav{
  min-width:0;
  overflow-x:auto;
}
.platform-topbar #platformHomeBtn{
  flex:0 0 auto!important;
  min-width:138px!important;
}

/* À largeur intermédiaire on gagne encore quelques pixels. */
@media(max-width:1250px){
  .side .brand{
    min-width:48px!important;
    width:48px!important;
    padding-right:7px!important;
  }
  .side .brand div{
    display:none!important;
  }
  .side .top-account select{
    width:165px!important;
    max-width:165px!important;
  }
  .side .top-account #roleBadge{
    max-width:110px;
  }
}

/* ==========================================================
   V0.9.1 — VUES 1/2 SEMAINES + IDENTITÉ SIMPA SERVICES
   ========================================================== */

/* ----- SIMPA Services ----- */
.landing-brand-group{
  display:flex;
  align-items:center;
  gap:16px;
  min-width:0;
}
.simpa-brand-link{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-decoration:none;
  border-radius:9px;
  background:#fff;
  border:1px solid #d7e2e7;
  overflow:hidden;
  transition:transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.simpa-brand-link:hover{
  transform:translateY(-1px);
  border-color:#8db3c3;
  box-shadow:0 4px 12px rgba(21,65,84,.15);
}
.simpa-brand-link img{
  display:block;
  width:auto;
  height:auto;
  object-fit:contain;
}
.landing-simpa-link{
  padding:3px 7px;
}
.landing-simpa-link img{
  width:116px;
  max-height:48px;
}
.simpa-top-link{
  padding:2px 5px;
  height:40px;
  min-width:75px;
  max-width:92px;
}
.simpa-top-link img{
  width:80px;
  max-height:34px;
}
.side .simpa-top-link{
  margin-left:1px;
}
.platform-topbar .simpa-top-link{
  height:42px;
}

.landing-footer>div{
  display:flex;
  flex-direction:column;
  gap:3px;
}
.simpa-footer-link{
  display:flex;
  align-items:center;
  gap:8px;
  color:#6d808a;
  font-size:8px;
  text-decoration:none;
}
.simpa-footer-link img{
  width:94px;
  height:auto;
  max-height:46px;
  object-fit:contain;
  border-radius:7px;
  background:#fff;
}
.simpa-footer-link:hover{
  color:#1e5e77;
}

/* ----- Vues semaine ----- */
.planning-periods button[data-d]{
  background:#e7f3f7;
  color:#2d6d84;
}
.planning-periods button[data-d].active{
  background:#fff;
  color:#145a72;
  box-shadow:0 1px 5px rgba(28,92,116,.2);
}
#startDateWrap input{
  min-width:135px;
}

/* En vue semaine, les jours sont assez larges pour lire les petites interventions. */
.planner.week-range .daycell{
  font-size:10px;
}
.planner.week-range .daycell b{
  font-size:11px;
  margin-top:3px;
}
.planner.week-range .bar{
  font-size:10px;
}

/* Garder SIMPA visible sans sacrifier la déconnexion. */
@media(max-width:1350px){
  .side .client-simpa-link{
    min-width:44px;
    width:44px;
    padding:2px;
  }
  .side .client-simpa-link img{
    width:74px;
    max-width:none;
    transform:scale(.7);
  }
}
@media(max-width:1100px){
  .landing-brand-group{gap:8px}
  .landing-simpa-link img{width:95px}
  .platform-topbar .simpa-top-link{display:none}
}
@media(max-width:760px){
  .landing-simpa-link{display:none}
  .side .client-simpa-link{display:none}
  .simpa-footer-link img{width:82px}
}

/* ==========================================================
   V0.9.3 — SUPABASE AUTH + VALIDATION SIMPA SERVICES
   ========================================================== */
.landing-simpa-link{padding:2px 8px;min-width:76px;height:58px}
.landing-simpa-link img{width:auto;height:54px;max-height:54px;max-width:74px;object-fit:contain}
.simpa-footer-link img{width:auto;height:58px;max-height:58px;max-width:70px;object-fit:contain;background:transparent}
.simpa-top-link img{width:auto;height:34px;max-width:48px;object-fit:contain}

.auth-link-button{border:0;background:transparent;color:#1f657e;font:inherit;font-size:12px;font-weight:800;cursor:pointer;padding:4px 0;text-align:left}
.auth-link-button:hover{text-decoration:underline}
.auth-info-box{margin-top:18px;border:1px solid #d7e4e9;border-radius:14px;background:#f6fafb;padding:14px 16px;display:flex;flex-direction:column;gap:5px;color:#54717e;font-size:12px}
.auth-info-box b{color:#18394a;font-size:13px}
.field-status{display:block;margin-top:5px;font-size:10px;color:#6e828c;font-weight:700;line-height:1.25}
.field-status.good{color:#287650}.field-status.bad{color:#a43e3e}.field-status.checking{color:#755d1a}
.auth-validation-flow{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:14px 0}
.auth-validation-flow>div{border:1px solid #dbe7ec;background:#f8fbfc;border-radius:14px;padding:13px;display:grid;grid-template-columns:34px 1fr;gap:10px;align-items:start}
.auth-validation-flow>div>b{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#1f657e;color:#fff}
.auth-validation-flow span{color:#6c818b;font-size:11px;line-height:1.4}.auth-validation-flow strong{display:block;color:#18394a;font-size:12px;margin-bottom:2px}

.auth-gate{min-height:100vh;padding:38px 18px;background:linear-gradient(135deg,#eef7fa 0,#f7fafb 48%,#eef5f7 100%);align-items:flex-start;justify-content:center}
.auth-gate-card{width:min(1180px,100%);background:#fff;border:1px solid #dbe6eb;border-radius:22px;box-shadow:0 24px 60px rgba(23,67,85,.13);padding:24px}
.auth-gate-brand{display:flex;align-items:center;gap:16px;padding-bottom:18px;border-bottom:1px solid #e3ecef;margin-bottom:18px}
.auth-gate-brand img{width:auto;height:78px;max-width:96px;object-fit:contain}
.auth-gate-brand h2{margin:3px 0 0;color:#17394b;font-size:25px}
.auth-gate-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px;padding-top:16px;border-top:1px solid #e4ecef}
.auth-state{border-radius:14px;padding:15px 17px;margin:12px 0;border:1px solid #d7e4e9;background:#f7fafb;color:#526f7b}
.auth-state b{display:block;color:#17394b;font-size:14px}.auth-state p{margin:5px 0 0;line-height:1.5;font-size:12px}
.auth-state.success{border-color:#b9dfca;background:#eff9f3}.auth-state.success>b{color:#226943}
.auth-state.warn,.auth-state.pending{border-color:#ead8a8;background:#fffaf0}.auth-state.warn>b,.auth-state.pending>b{color:#7b5e16}
.auth-state.bad{border-color:#efc0c0;background:#fff4f4}.auth-state.bad>b{color:#963b3b}
.auth-state.info{border-color:#c9dfe8;background:#f2f8fb}
.auth-mini-note{margin:14px 0;padding:12px 14px;border-radius:12px;background:#f5f8fa;color:#627a85;font-size:11px;line-height:1.5;border:1px solid #e1eaee}
.auth-mini-note code{background:#eaf1f4;border-radius:5px;padding:1px 4px;color:#214f63}
.auth-account-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:14px 0}
.auth-account-summary>div,.auth-admin-kpis>div{border:1px solid #dde7eb;border-radius:13px;background:#fbfcfd;padding:12px;min-width:0}
.auth-account-summary span,.auth-admin-kpis span{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.06em;color:#7b8f98;font-weight:900;margin-bottom:5px}
.auth-account-summary b,.auth-admin-kpis b{display:block;color:#17394b;font-size:13px;overflow-wrap:anywhere}
.auth-admin-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:12px 0 18px}.auth-admin-kpis b{font-size:24px}
.auth-table-wrap{width:100%;overflow:auto;border:1px solid #dce6ea;border-radius:14px;margin-top:14px}
.auth-admin-table{width:100%;border-collapse:collapse;min-width:960px;background:#fff}
.auth-admin-table th{font-size:9px;text-transform:uppercase;letter-spacing:.05em;text-align:left;padding:10px 11px;background:#f4f8fa;color:#728892;border-bottom:1px solid #dce6ea}
.auth-admin-table td{padding:11px;border-bottom:1px solid #edf2f4;color:#244b5d;font-size:11px;vertical-align:middle}
.auth-admin-table tr:last-child td{border-bottom:0}.auth-admin-table td small{display:block;color:#83969e;margin-top:3px}
.auth-admin-actions{white-space:nowrap}.btn.small{padding:7px 9px;font-size:10px;margin:2px}
.auth-chip{display:inline-flex;padding:4px 7px;border-radius:999px;background:#eef3f5;color:#476471;font-size:9px;font-weight:900}.auth-chip.approved{background:#e6f6ed;color:#267148}.auth-chip.pending_review,.auth-chip.pending_email{background:#fff3d7;color:#806016}.auth-chip.rejected{background:#fde8e8;color:#973f3f}
.auth-empty{text-align:center;padding:30px;color:#788d96;border:1px dashed #ccdbe1;border-radius:14px}

@media(max-width:820px){
  .auth-validation-flow{grid-template-columns:1fr}
  .auth-account-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
  .auth-admin-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .auth-gate{padding:18px 10px}.auth-gate-card{padding:16px}.auth-gate-brand img{height:62px}
}
@media(max-width:520px){.auth-account-summary{grid-template-columns:1fr}.auth-gate-actions{flex-direction:column}.auth-gate-actions .btn{width:100%}}


/* =========================
   V0.9.4 - Facturation
   ========================= */
.auth-billing-panel,.auth-client-invoices{
  margin-top:24px;padding:22px;border:1px solid #dce8ed;border-radius:18px;background:#fff;
  box-shadow:0 8px 26px rgba(17,59,77,.06)
}
.auth-billing-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px}
.auth-billing-head h3,.auth-client-invoices h3{margin:3px 0 5px;color:#12384a}
.auth-billing-head p,.auth-client-invoices p{margin:0;color:#637984;font-size:14px}
.auth-billing-ready{display:inline-flex;align-items:center;padding:7px 11px;border-radius:999px;font-size:12px;font-weight:800;white-space:nowrap}
.auth-billing-ready.ready{background:#e7f7ed;color:#19703a}
.auth-billing-ready.not-ready{background:#fff3d9;color:#8a5a00}
.auth-billing-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.auth-billing-grid label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:700;color:#294b5b}
.auth-billing-grid label.span2{grid-column:1/-1}
.auth-billing-grid input,.auth-billing-grid select{
  width:100%;box-sizing:border-box;border:1px solid #cedde4;border-radius:10px;padding:11px 12px;background:#fbfdfe;color:#183b4b
}
.auth-billing-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:18px}
.auth-billing-actions small{color:#6a7f89}
@media(max-width:760px){
  .auth-billing-grid{grid-template-columns:1fr}
  .auth-billing-grid label.span2{grid-column:auto}
  .auth-billing-head{flex-direction:column}
}


/* =========================
   V0.9.5 - Paiement direct
   ========================= */
.auth-pay-modal-bg{
  display:none;position:fixed;inset:0;z-index:99999;
  background:rgba(10,30,40,.62);padding:18px;
  align-items:center;justify-content:center;
}
.auth-pay-modal-bg.show{display:flex}
.auth-pay-modal{
  width:min(720px,96vw);max-height:92vh;overflow:auto;
  background:#fff;border-radius:20px;border:1px solid #dce8ed;
  box-shadow:0 28px 90px rgba(0,0,0,.25)
}
.auth-pay-modal-head{
  display:flex;justify-content:space-between;gap:18px;align-items:flex-start;
  padding:20px 22px;border-bottom:1px solid #e4ecef
}
.auth-pay-modal-head h3{margin:4px 0;color:#17394b;font-size:23px}
.auth-pay-modal-head p{margin:0;color:#708791}
.auth-pay-close{border:0;background:#eef4f6;border-radius:999px;width:34px;height:34px;font-size:22px;cursor:pointer;color:#335664}
.auth-pay-modal-body{padding:22px}
.auth-pay-modal-foot{
  padding:16px 22px;border-top:1px solid #e4ecef;
  display:flex;justify-content:flex-end;gap:10px
}
.auth-pay-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.auth-pay-grid label{display:flex;flex-direction:column;gap:6px;color:#294b5b;font-size:12px;font-weight:800}
.auth-pay-grid input,.auth-pay-grid select{
  width:100%;box-sizing:border-box;border:1px solid #cedde4;
  border-radius:10px;padding:11px 12px;background:#fbfdfe;color:#183b4b
}
.auth-pay-quote{
  margin:18px 0;padding:15px;border-radius:14px;
  background:#f5f9fa;border:1px solid #dce8ed;
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px
}
.auth-pay-quote>div{background:#fff;border:1px solid #e2ebef;border-radius:10px;padding:10px}
.auth-pay-quote span{display:block;color:#7a8f98;font-size:9px;text-transform:uppercase;font-weight:900;margin-bottom:4px}
.auth-pay-quote b{display:block;color:#17394b;font-size:14px}
.auth-pay-quote .total{grid-column:1/-1;background:#edf8f2;border-color:#cfe8d8}
.auth-pay-quote small{display:block;margin-top:5px;color:#a04b3e}
@media(max-width:680px){
  .auth-pay-grid{grid-template-columns:1fr}
  .auth-pay-quote{grid-template-columns:1fr}
  .auth-pay-quote .total{grid-column:auto}
  .auth-pay-modal-foot{flex-direction:column-reverse}
  .auth-pay-modal-foot .btn{width:100%}
}


/* =========================
   V0.9.6 - Abonnement Stripe client
   ========================= */
.auth-stripe-box{
  margin:18px 0;
  padding:18px;
  border:1px solid #cfe1e8;
  border-radius:16px;
  background:#f8fbfc;
}
.auth-stripe-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:16px;
  margin-bottom:12px;
}
.auth-stripe-head h3{
  margin:4px 0 0;
  color:#17394b;
  font-size:20px;
}
.auth-stripe-secure{
  display:inline-flex;
  align-items:center;
  padding:7px 10px;
  border-radius:999px;
  background:#eef4ff;
  color:#40598f;
  font-size:11px;
  font-weight:800;
  white-space:nowrap;
}
.auth-stripe-trial{
  display:flex;
  flex-direction:column;
  gap:4px;
  margin:10px 0 14px;
  padding:12px 14px;
  border:1px solid #cde8d7;
  border-radius:12px;
  background:#eff9f3;
  color:#285b3d;
}
.auth-stripe-trial span{font-size:12px}
.auth-stripe-modules{
  margin:10px 0 14px;
  color:#4c6672;
  font-size:12px;
}
.auth-stripe-plans{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
.auth-stripe-plan{
  display:flex;
  flex-direction:column;
  gap:6px;
  padding:16px;
  border:1px solid #dce8ed;
  border-radius:14px;
  background:#fff;
}
.auth-stripe-plan.featured{
  border-color:#b9d9e5;
  box-shadow:0 6px 18px rgba(31,99,126,.07);
}
.auth-stripe-plan>span{
  color:#6d8792;
  font-size:11px;
  font-weight:900;
  text-transform:uppercase;
}
.auth-stripe-plan strong{
  color:#17394b;
  font-size:24px;
}
.auth-stripe-plan small{
  min-height:18px;
  color:#6d8792;
}
.auth-stripe-plan .btn{
  margin-top:8px;
  width:100%;
}
.auth-stripe-note{
  margin:12px 0 0;
  color:#607985;
  font-size:11px;
}
@media(max-width:680px){
  .auth-stripe-head{flex-direction:column}
  .auth-stripe-plans{grid-template-columns:1fr}
}

/* =========================
   V0.9.8 - Affichage propre des modules avant Checkout Stripe
   ========================= */
.auth-stripe-module-editor{
  margin:14px 0 16px;
  padding:14px;
  border:1px solid #dce8ed;
  border-radius:14px;
  background:#fff;
}
.auth-stripe-module-title{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:14px;
  margin-bottom:12px;
}
.auth-stripe-module-title>div{min-width:0}
.auth-stripe-module-title b{
  display:block;
  color:#17394b;
  font-size:14px;
  line-height:1.25;
}
.auth-stripe-module-title span{
  display:block;
  margin-top:4px;
  color:#6d8792;
  font-size:11px;
  line-height:1.4;
}
.auth-stripe-module-title small{
  flex:0 0 auto;
  padding:6px 9px;
  border-radius:999px;
  background:#eef8f2;
  color:#36704b;
  font-size:10px;
  font-weight:800;
  white-space:nowrap;
}
.auth-stripe-module-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:9px;
}
.auth-stripe-module{
  display:grid;
  grid-template-columns:22px minmax(0,1fr) auto;
  align-items:center;
  column-gap:11px;
  row-gap:2px;
  min-height:62px;
  padding:11px 13px;
  border:1px solid #dfe9ed;
  border-radius:12px;
  background:#fbfdfe;
  cursor:pointer;
  transition:border-color .15s ease,background .15s ease,box-shadow .15s ease;
}
.auth-stripe-module:hover{
  border-color:#b9d9e5;
  background:#f7fbfd;
  box-shadow:0 3px 12px rgba(31,99,126,.05);
}
.auth-stripe-module.fixed{
  cursor:default;
  background:#f4f8fa;
}
.auth-stripe-module.fixed:hover{
  border-color:#dfe9ed;
  box-shadow:none;
}
.auth-stripe-module.saving{
  opacity:.58;
  pointer-events:none;
}
.auth-stripe-module input{
  grid-column:1;
  grid-row:1;
  width:18px;
  height:18px;
  margin:0;
  accent-color:#1f718f;
  justify-self:center;
}
.auth-stripe-module div{
  grid-column:2;
  grid-row:1;
  min-width:0;
}
.auth-stripe-module div b{
  display:block;
  color:#17394b;
  font-size:12px;
  line-height:1.3;
}
.auth-stripe-module div span{
  display:block;
  margin-top:3px;
  color:#718791;
  font-size:10px;
  line-height:1.4;
}
.auth-stripe-module>strong{
  grid-column:3;
  grid-row:1;
  align-self:center;
  color:#17394b;
  font-size:13px;
  white-space:nowrap;
  text-align:right;
}
.auth-stripe-module>strong small{
  font-size:9px;
  color:#718791;
  font-weight:700;
}
.auth-stripe-module-editor .auth-stripe-modules{
  margin:11px 0 0;
  padding-top:10px;
  border-top:1px solid #e5edf0;
}
@media(max-width:680px){
  .auth-stripe-module-title{
    align-items:flex-start;
    flex-direction:column;
  }
  .auth-stripe-module{
    grid-template-columns:22px minmax(0,1fr);
    align-items:start;
  }
  .auth-stripe-module input{
    margin-top:1px;
  }
  .auth-stripe-module>strong{
    grid-column:2;
    grid-row:2;
    justify-self:start;
    margin-top:4px;
    text-align:left;
  }
}


/* V0.9.9.4 — colonne intervenants compacte */
.resrow.compact-planning-row .reslabel{justify-content:center!important;padding-left:5px!important;padding-right:5px!important}
.resrow.compact-planning-row .reslabel b{letter-spacing:.7px;text-align:center;font-size:10px!important}
.resrow.compact-planning-row .resource-color-dot{flex:0 0 8px}
.planning-section-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.planning-section-label small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* V0.10.2 — Gestion ressources Supabase */
.real-team-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0 0 18px}.real-team-summary article{background:#fff;border:1px solid #d8e3ea;border-radius:14px;padding:14px}.real-team-summary strong{display:block;font-size:24px;color:#123952}.real-team-section{grid-column:1/-1;margin:8px 0 0}.real-team-section h3{margin:0 0 8px;color:#123952}.card.is-suspended{opacity:.72}.status.suspended{background:#fff0e6;color:#9b4a00}.status.active{background:#e6f7ef;color:#11663f}.real-team-meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.real-team-meta small{background:#f3f7f9;padding:4px 7px;border-radius:999px}.real-resource-note{grid-column:1/-1;background:#f3f8fb;border:1px solid #dbe8ef;border-radius:12px;padding:10px 12px;margin-bottom:8px;color:#476170}.auth-mini-note{font-size:12px;line-height:1.45;color:#496675;background:#f3f8fb;border:1px solid #dbe8ef;border-radius:10px;padding:10px}.modal #wRealAccountIdentity{display:grid;grid-template-columns:1fr 1fr;gap:10px}.modal #wRealAccountIdentity label{display:block}@media(max-width:720px){.real-team-summary{grid-template-columns:1fr}.modal #wRealAccountIdentity{grid-template-columns:1fr}}

/* ==========================================================
   V0.10.2.3 — OPTIMISATION MOBILE / IPHONE
   - bandeau supérieur en lignes au lieu d'un débordement horizontal
   - navigation toujours accessible
   - filtres chantier empilés sur petit écran
   - commandes planning utilisables sans décaler toute la page
   ========================================================== */
@media(max-width:760px){
  html,body{max-width:100%;overflow-x:hidden!important}

  .side{
    position:sticky!important;
    top:0!important;
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    padding:6px 8px!important;
    display:flex!important;
    flex-wrap:wrap!important;
    align-items:center!important;
    gap:6px!important;
    overflow:visible!important;
    white-space:normal!important;
    box-sizing:border-box!important;
  }

  .side .brand{
    order:1!important;
    flex:0 0 40px!important;
    width:40px!important;
    min-width:40px!important;
    padding:0!important;
    border-right:0!important;
  }
  .side .brand div{display:none!important}
  .side .brand>span{
    width:36px!important;
    height:36px!important;
    min-width:36px!important;
  }
  .side .client-simpa-link{display:none!important}

  .side .top-account{
    order:2!important;
    flex:1 1 calc(100% - 46px)!important;
    min-width:0!important;
    margin:0!important;
    padding:0!important;
    border-left:0!important;
    display:flex!important;
    flex-wrap:wrap!important;
    gap:5px!important;
    align-items:center!important;
    background:transparent!important;
  }
  .side .top-account select{
    flex:1 1 180px!important;
    width:auto!important;
    max-width:100%!important;
    min-width:0!important;
    height:36px!important;
    box-sizing:border-box!important;
  }
  .side .top-account #roleBadge{
    flex:0 1 auto!important;
    max-width:150px!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
    font-size:9px!important;
    padding:7px 9px!important;
  }
  .side .top-account .notification-bell{
    flex:0 0 34px!important;
    width:34px!important;
    min-width:34px!important;
    height:34px!important;
  }
  .side .top-account .top-home{
    flex:1 1 130px!important;
    width:auto!important;
    min-width:0!important;
    max-width:none!important;
    padding:7px 8px!important;
    font-size:9px!important;
  }

  .side .navlinks{
    order:3!important;
    flex:0 0 100%!important;
    width:100%!important;
    min-width:0!important;
    display:flex!important;
    gap:4px!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    padding:5px 0 1px!important;
    border-top:1px solid rgba(255,255,255,.13)!important;
    white-space:nowrap!important;
    -webkit-overflow-scrolling:touch;
  }
  .side .navlinks .nav{
    flex:0 0 auto!important;
    width:auto!important;
    padding:8px 9px!important;
    font-size:10px!important;
  }

  main{width:100%!important;max-width:100%!important;overflow-x:hidden!important}
  header{
    position:relative!important;
    top:auto!important;
    height:auto!important;
    min-height:54px!important;
    padding:10px 12px!important;
  }
  header h1{font-size:20px!important}
  header p{font-size:11px!important;line-height:1.35!important}
  .page{padding:12px!important;width:100%!important;box-sizing:border-box!important}

  .pagetop{
    align-items:stretch!important;
    flex-direction:column!important;
    gap:10px!important;
  }
  .pagetop>.btn{width:100%!important}

  .projects-tools{
    width:100%!important;
    align-items:stretch!important;
    flex-direction:column!important;
    gap:8px!important;
  }
  .projects-tools .quick-project,
  .projects-tools .filters{
    width:100%!important;
    flex:0 0 auto!important;
    min-width:0!important;
  }
  .projects-tools .quick-project select,
  .projects-tools .filters input,
  .projects-tools .filters select{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    box-sizing:border-box!important;
  }
  .projects-tools .filters{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:8px!important;
  }
  .projects-tools .view-toggle{align-self:flex-start!important}

  #page-planning .toolbar{
    width:100%!important;
    display:flex!important;
    align-items:stretch!important;
    gap:8px!important;
    padding:9px!important;
    box-sizing:border-box!important;
  }
  #page-planning .toolbar>div{
    flex:1 1 100%!important;
    width:100%!important;
    min-width:0!important;
  }
  #page-planning .toolbar input,
  #page-planning .toolbar select{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    box-sizing:border-box!important;
  }
  #page-planning .segments{
    width:100%!important;
    max-width:100%!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    justify-content:flex-start!important;
    -webkit-overflow-scrolling:touch;
  }
  #page-planning .segments button{flex:0 0 auto!important}
  #page-planning .toolbar>.btn{
    flex:1 1 calc(33.333% - 8px)!important;
    min-width:72px!important;
  }
  #page-planning .plannerbox,
  #page-planning .plannerscroll{
    max-width:100%!important;
  }
  body.planning-mode #page-planning .plannerscroll{
    max-height:calc(100vh - 330px)!important;
  }

  .cards,.rightsinfo{grid-template-columns:1fr!important}
  .tablewrap{max-width:100%!important;overflow:auto!important;-webkit-overflow-scrolling:touch}
  .modalbg{padding:8px!important}
  .modal{max-width:100%!important}
}

@media(max-width:430px){
  .side .top-account #roleBadge{max-width:115px!important}
  .side .top-account .top-home{flex-basis:115px!important}
  #page-planning .toolbar>.btn{font-size:10px!important;padding:7px 6px!important}
}

/* V0.10.2.8 — noms complets des entreprises dans la colonne planning */
.resrow.compact-planning-row .reslabel b{max-width:calc(var(--left) - 24px)}
.resrow.compact-planning-row .reslabel[title]{cursor:default}

/* V0.10.2.10 — planning interactif */
.daycell{border-top:0;border-left:0;border-bottom:0;font-family:inherit;color:inherit;cursor:default;padding:0}
.daycell.weekend,.tday.weekend{background:#dfe5e9!important}
.daycell.weekend{box-shadow:inset 0 -3px 0 #c5d0d6}
.daycell.special-day,.tday.special-day{background:#cdd4d9!important}
.daycell.special-day{box-shadow:inset 0 -4px 0 #89959c}
.daycell.special-day small{display:block;max-width:100%;padding:0 2px;font-size:7px;line-height:1.05;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#56636b}
.tday{border-top:0;border-left:0;border-bottom:0;padding:0;font:inherit;cursor:pointer}
.tday:hover{background:#eef7f8!important;box-shadow:inset 0 0 0 1px #9fc9ce}
.tday.special-day:hover{background:#c4ccd1!important}
.daycell[onclick]{cursor:pointer}

/* V0.10.2.14 — événements planning / multi-affectation */
.event-modal{width:min(760px,94vw)}
.formgrid.two{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.formgrid.two .span2{grid-column:1/-1}
.checkline{display:flex!important;align-items:center;gap:10px;padding-top:24px}
.checkline input{width:auto!important;margin:0}
.quick-assignees-box{margin-top:16px;border:1px solid #d9e2e8;border-radius:12px;padding:12px;background:#f8fafb}
.quick-assignees-box .field-title{font-weight:700;margin-bottom:3px}
.quick-assignees{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px;max-height:240px;overflow:auto}
.quick-assignee{display:flex!important;align-items:center;gap:10px;border:1px solid #dfe7eb;border-radius:10px;padding:9px;background:#fff;cursor:pointer}
.quick-assignee input{width:auto!important;margin:0}
.quick-assignee span{display:flex;flex-direction:column;min-width:0}
.quick-assignee small{opacity:.7;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-width:700px){.formgrid.two,.quick-assignees{grid-template-columns:1fr}.formgrid.two .span2{grid-column:auto}.checkline{padding-top:0}}

/* V0.10.2.23 — Affectation Admin Niveau 2 */
.worksite-admin-assignment{margin:8px 0 14px}.admin-assignment-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:8px}.admin-assignment-chip{display:flex;gap:9px;align-items:center;border:1px solid var(--line);border-radius:10px;padding:9px 10px;background:#fff;min-width:0}.admin-assignment-chip input{width:18px;height:18px;flex:0 0 auto}.admin-assignment-chip span{display:flex;flex-direction:column;min-width:0}.admin-assignment-chip b,.admin-assignment-chip small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-assignment-chip:has(input:disabled){opacity:.72;background:#f6f8f9}


/* ==========================================================
   V0.10.2.24 — PHOTOS SUPABASE + COMMENTAIRE PAR PHOTO
   ========================================================== */
.real-photo .photo-card-body{padding:8px}.real-photo .photo-file-name{display:block;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.photo-caption-label{display:block;margin-top:7px}.photo-caption-label>span{display:block;font-size:8px;font-weight:800;color:#667b87;margin-bottom:3px;text-transform:uppercase}.photo-caption-input{width:100%;min-height:54px;resize:vertical;border:1px solid #d1dbe2;border-radius:7px;padding:7px;background:#fff;font-size:10px;line-height:1.35}.photo-caption-input:disabled{background:#f3f6f8;color:#667b87}.photo-caption-status{display:block;min-height:13px;margin-top:4px;color:#2a7565;font-weight:700}.photo-load-error{height:120px;display:flex;align-items:center;justify-content:center;background:#eef2f4;color:#7a8992;font-size:10px}.real-photo .photo-actions .btn{font-size:9px;padding:5px 7px}.real-photo .photo-actions .save-photo-caption{background:#fff;border:1px solid #d2dce3;color:#29465a}@media(max-width:720px){.real-photo .photo-caption-input{font-size:16px;min-height:64px}}


/* V0.10.2.25 — Fil de commentaires sous les photos */
.real-photo .photo-comments{margin-top:9px;padding:0;border-top:1px solid #e1e8ec}
.photo-comments-title{padding:8px 0 4px!important;font-size:9px!important;font-weight:800;color:#445d6c;text-transform:uppercase}
.photo-comments-empty{padding:6px 7px!important;background:#f5f8fa;border-radius:7px;color:#7b8b95;font-size:9px!important}
.photo-comment-message{margin-top:6px;padding:7px 8px!important;background:#f3f7f9;border:1px solid #e0e8ec;border-radius:9px;font-size:10px!important}
.photo-comment-message.mine{background:#eef8fa;border-color:#c7e3e8}
.photo-comment-head{display:flex!important;align-items:flex-start;justify-content:space-between;gap:6px;padding:0!important;margin-bottom:4px}
.photo-comment-head b{font-size:9px}
.photo-comment-head time{font-size:8px;color:#83919a;white-space:nowrap}
.photo-comment-text{padding:0!important;font-size:10px!important;line-height:1.35;white-space:pre-wrap;overflow-wrap:anywhere}
.photo-comment-actions{display:flex!important;gap:8px;padding:5px 0 0!important}
.photo-comment-link{border:0!important;background:transparent!important;padding:0!important;margin:0!important;font-size:8px!important;color:#2b7484!important;font-weight:700;cursor:pointer}
.photo-comment-link.danger-link{color:#a74235!important}
.photo-comment-composer{padding:8px 0 0!important}
.photo-comment-composer textarea,.photo-comment-edit textarea{width:100%;min-height:54px;resize:vertical;border:1px solid #ccd9e0;border-radius:8px;padding:7px;background:#fff;font-size:10px;line-height:1.35}
.photo-comment-composer .btn,.photo-comment-edit .btn{margin-top:5px!important}
.photo-comment-composer small{display:block;margin-top:4px;color:#7d8c95;font-size:8px}
.photo-comment-edit{padding:5px 0 0!important}
.photo-comment-edit>div{padding:0!important;display:flex;gap:5px;flex-wrap:wrap}
.photogrid{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:980px){.photogrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.photogrid{grid-template-columns:1fr}.photo-comment-composer textarea,.photo-comment-edit textarea{font-size:16px}}


/* V0.10.2.29 — Documents / plans Supabase */
.document-upload-box{display:grid;grid-template-columns:minmax(180px,1fr) minmax(220px,1.4fr) auto;gap:8px;align-items:center}
.document-upload-box input[type="text"]{min-width:0}
.document-upload-box small{grid-column:1/-1;color:#72838d}
.document-row{align-items:center}
.document-row .doc-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
@media(max-width:760px){
 .document-upload-box{grid-template-columns:1fr}
 .document-upload-box small{grid-column:auto}
 .document-row{align-items:flex-start}
 .document-row .doc-actions{width:100%;justify-content:flex-start}
}


/* ==========================================================
   V0.10.2.33 — LISIBILITÉ DU PLANNING
   ========================================================== */

/* Journées spéciales : colonne verte bien identifiable. */
.daycell.special-day,.tday.special-day{
  background:#d8edd9!important;
}
.daycell.special-day{
  box-shadow:inset 0 -4px 0 #5b9e66!important;
  color:#315f38!important;
}
.daycell.special-day small{
  color:#356b3e!important;
  font-weight:800;
}
.tday.special-day:hover{
  background:#cde6d0!important;
  box-shadow:inset 0 0 0 1px #72ad79!important;
}

/* Ressources : une ligne légèrement plus haute, texte mieux centré. */
.resrow.compact-planning-row{
  min-height:36px!important;
}
.resrow.compact-planning-row .reslabel{
  padding:5px 8px!important;
  min-height:36px!important;
}
.resrow.compact-planning-row .reslabel b{
  font-size:9px!important;
  line-height:1.25!important;
}

/* Interventions : plus hautes pour rendre le libellé plus lisible. */
.resrow.compact-planning-row .bar{
  height:20px!important;
  min-height:20px!important;
  padding:3px 5px!important;
  font-size:9px!important;
  line-height:14px!important;
}


/* ==========================================================
   V0.10.2.34 — INTERFACE & PLANNING
   ========================================================== */

/* Image de présentation visible sur la page d'accueil. */
.landing-showcase{
  max-width:1240px;
  margin:0 auto 58px;
  padding:0 34px;
  display:flex;
  justify-content:center;
}
.landing-showcase img{
  display:block;
  width:min(100%,900px);
  height:auto;
  border-radius:22px;
  border:1px solid #d8e4ea;
  box-shadow:0 22px 55px rgba(36,72,91,.14);
}

/* Équipe & droits : même bascule Cartes / Liste que les chantiers. */
.team-view-tools{
  display:flex;
  justify-content:flex-end;
  margin:0 0 12px;
}
.team-list-table .resource-type{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.team-list-table td{vertical-align:middle}
.team-list-table td:last-child{text-align:right}

/* Notifications : une seule colonne, la zone Synchronisation a été retirée. */
.notification-layout.single-column{
  grid-template-columns:minmax(0,1fr)!important;
}

/* Actions de compte plus visibles dans le bandeau supérieur. */
.side .top-account .top-home{
  padding:8px 12px!important;
  min-height:34px!important;
  font-size:9.5px!important;
  font-weight:800!important;
  white-space:nowrap!important;
}
#appAccountBtn{min-width:126px!important}
#appLogoutBtn{min-width:104px!important}

/* Sélecteur de chantier du planning. */
#planningSearch{min-width:235px}

@media(max-width:720px){
  .landing-showcase{padding:0 16px;margin-bottom:38px}
  .landing-showcase img{border-radius:15px}
  .team-view-tools{justify-content:flex-start}
  #planningSearch{min-width:0}
  .side .top-account .top-home{font-size:9px!important;padding:8px 9px!important}
  #appAccountBtn,#appLogoutBtn{min-width:0!important}
}


/* ==========================================================
   V0.10.2.35 — LISIBILITÉ PREMIÈRE COLONNE + INTERVENTIONS
   ========================================================== */

/* Première colonne un peu plus large sur ordinateur :
   Super Admin, Administrateurs/utilisateurs et noms de chantier respirent mieux. */
@media(min-width:721px){
  :root{--left:180px}
}

/* Entêtes de groupes/chantier : deux vraies lignes sans chevauchement. */
.planning-section-head{
  height:44px!important;
  min-height:44px!important;
  align-items:stretch!important;
}
.planning-section-label{
  min-height:44px!important;
  padding:6px 10px!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
  line-height:1.15!important;
  overflow:hidden!important;
}
.planning-section-label small{
  margin-top:3px!important;
  line-height:1.15!important;
  font-size:8px!important;
}

/* Lignes ressources plus confortables. */
.resrow.compact-planning-row{
  min-height:42px!important;
}
.resrow.compact-planning-row .reslabel{
  min-height:42px!important;
  padding:7px 9px!important;
  justify-content:flex-start!important;
}
.resrow.compact-planning-row .reslabel b{
  font-size:9.5px!important;
  line-height:1.25!important;
  letter-spacing:.25px!important;
  text-align:left!important;
}

/* Intervention légèrement plus haute, texte centré verticalement. */
.resrow.compact-planning-row .bar{
  height:24px!important;
  min-height:24px!important;
  padding:4px 6px!important;
  font-size:9px!important;
  line-height:16px!important;
  border-radius:5px!important;
}


/* ==========================================================
   V0.10.2.36 — VERSION UTILISATEUR / QUOTAS / DOSSIER PHOTOS
   ========================================================== */
.current-user-static{
  min-width:210px;max-width:310px;min-height:34px;padding:8px 11px;
  border:1px solid #cbd8df;border-radius:8px;background:#fff;color:#17394a;
  font-size:10px;font-weight:800;display:flex;align-items:center;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
#helpSimpaBtn{min-width:88px!important}
.quota-option-warning{
  grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:14px;
  margin:4px 0 10px;padding:11px 13px;border:1px solid #e8bf6a;border-radius:11px;
  background:#fff7e6;color:#60440f;
}
.quota-option-warning>div{display:flex;flex-direction:column;gap:3px}
.quota-option-warning b{font-size:11px}.quota-option-warning span{font-size:9.5px;line-height:1.35}
.photo-folder-host{display:block!important}
.photo-folder-card{
  display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;
  padding:12px;border:1px solid #d4e0e6;border-radius:12px;background:#f8fbfc;margin-bottom:10px;
}
.photo-folder-main{display:flex;align-items:center;gap:10px;min-width:240px;flex:1}
.photo-folder-main>div{display:flex;flex-direction:column;gap:3px}
.photo-folder-main b{font-size:11px;color:#17394a}.photo-folder-main small{font-size:9px;color:#657a87}
.photo-folder-icon{font-size:28px;line-height:1}
.photo-folder-actions{display:flex;gap:7px;flex-wrap:wrap}
.photo-folder-warning{width:100%;padding:8px 10px;border-radius:8px;background:#fff1cf;color:#6b4a0c;font-size:9px;line-height:1.4}
.photo-folder-content{width:100%}
#wFirstName:disabled,#wLastName:disabled,#wName:disabled,#wEmail:disabled{background:#eef2f4!important;color:#60717b!important;cursor:not-allowed}
@media(max-width:800px){
  .current-user-static{min-width:0;max-width:170px}
  .quota-option-warning{align-items:flex-start;flex-direction:column}
  .photo-folder-card{align-items:flex-start}
  .photo-folder-actions{width:100%}
}


/* V0.10.2.38 — options Stripe / quotas */
.auth-stripe-options{margin-top:18px;padding:18px;border:1px solid #d9e3ea;border-radius:16px;background:#fff}
.auth-stripe-options-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px}
.auth-stripe-option{border:1px solid #dce5eb;border-radius:14px;padding:14px;background:#f9fbfc;display:flex;flex-direction:column;gap:14px}
.auth-stripe-option.is-active{border-color:#93c9ab;background:#f3fbf6}
.auth-stripe-option-top{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}
.auth-stripe-option-top>div{display:flex;flex-direction:column;gap:5px;min-width:0}
.auth-stripe-option-top b{font-size:15px;color:#17394a}
.auth-stripe-option-top span{font-size:12px;line-height:1.4;color:#607683}
.auth-stripe-option-top strong{white-space:nowrap;font-size:12px;color:#0c6375;background:#e8f5f7;padding:6px 8px;border-radius:8px}
.auth-stripe-option-foot{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-top:auto}
.auth-stripe-option-foot small{color:#667b87;line-height:1.35}
.auth-stripe-option-foot .btn{white-space:nowrap}
.archive-option-warning{margin:0 0 14px 0;align-items:center;justify-content:space-between;gap:15px}
.archive-option-warning>div{display:flex;flex-direction:column;gap:3px}
@media(max-width:800px){.auth-stripe-options-grid{grid-template-columns:1fr}.auth-stripe-option-top,.auth-stripe-option-foot{align-items:stretch;flex-direction:column}.archive-option-warning{align-items:stretch;flex-direction:column}}

/* V0.10.2.39 — retraits d'options à l'échéance */
.auth-option-actions{display:flex;gap:8px;align-items:center;justify-content:flex-end;flex-wrap:wrap}
.auth-option-scheduled{display:flex;flex-direction:column;gap:4px;padding:10px 12px;border-radius:10px;background:#fff7e7;border:1px solid #efd49c;color:#6b531f}
.auth-option-scheduled b{font-size:12px}
.auth-option-scheduled span{font-size:12px;line-height:1.4}
.auth-stripe-option.has-scheduled-change{border-color:#e8c77f;background:#fffdf8}
@media(max-width:800px){.auth-option-actions{justify-content:stretch}.auth-option-actions .btn{flex:1 1 auto}}

/* ============================================================
   V0.10.2.42 — Résiliation d'abonnement + export de fin d'accès
   ============================================================ */
.auth-cancel-panel{
  margin-top:18px;padding:18px;border:1px solid #ead7d2;border-radius:16px;background:#fffafa;
  display:flex;gap:18px;align-items:center;justify-content:space-between;flex-wrap:wrap;
}
.auth-cancel-panel h3{margin:4px 0 6px;color:#6f2b25}
.auth-cancel-panel p{margin:0;max-width:760px;color:#5e6670;line-height:1.5}
.auth-cancel-panel.is-pending{background:#fff9e9;border-color:#ead28b;align-items:flex-start}
.auth-cancel-panel.is-pending.is-urgent{background:#fff1ee;border-color:#e4aaa0}
.auth-cancel-message{display:flex;flex-direction:column;gap:7px;line-height:1.45;flex:1;min-width:280px}
.auth-cancel-message>span{color:#58636e}
.auth-cancel-export-alert{display:block;margin-top:5px;padding:12px 14px;border-radius:10px;background:#fff;border:1px solid #e4aaa0;color:#7a2d25!important}
.auth-cancel-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.auth-cancel-options-note{border-color:#ead28b!important;background:#fff9e9!important}
@media(max-width:720px){.auth-cancel-panel{align-items:stretch}.auth-cancel-actions{width:100%}.auth-cancel-actions .btn,.auth-cancel-panel>.btn{width:100%}}

/* ============================================================
   PCP V0.10.2.47 — Super Admin séparé : dashboard / clients / facturation / infos
   ============================================================ */
.pcp-admin-nav{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 18px;padding:10px;border:1px solid #dbe6ee;border-radius:14px;background:#f8fbfd;position:sticky;top:8px;z-index:5}
.pcp-admin-heading{margin:8px 0 16px}.pcp-admin-heading h2{margin:4px 0 6px;color:#0f2d4f}.pcp-admin-heading p{margin:0;color:#64748b}
.pcp-admin-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin:0 0 14px}.pcp-admin-kpis>div{border:1px solid #dbe6ee;border-radius:13px;padding:13px;background:white;min-height:76px}.pcp-admin-kpis span{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:#64748b;font-weight:700}.pcp-admin-kpis b{display:block;margin-top:7px;font-size:22px;color:#0f2d4f}.pcp-admin-kpis .money{background:#f1fbf7;border-color:#cdebdc}.pcp-admin-kpis .money b{color:#087f5b;font-size:20px}.pcp-admin-kpis.billing{grid-template-columns:repeat(5,minmax(0,1fr))}
.pcp-finance-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0 0 18px}.pcp-finance-strip>div{padding:12px 14px;border:1px solid #dbe6ee;border-radius:12px;background:#f8fbfd}.pcp-finance-strip span{display:block;font-size:12px;color:#64748b}.pcp-finance-strip b{display:block;margin-top:4px;color:#17394a}
.pcp-admin-shortcuts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:18px 0}.pcp-admin-shortcut{appearance:none;text-align:left;border:1px solid #cbdde8;background:white;border-radius:16px;padding:20px;cursor:pointer;transition:.15s ease}.pcp-admin-shortcut:hover{transform:translateY(-1px);border-color:#74b8c0;box-shadow:0 8px 22px rgba(23,57,74,.08)}.pcp-admin-shortcut b{display:block;font-size:18px;color:#0f2d4f;margin-bottom:7px}.pcp-admin-shortcut span{display:block;color:#64748b;line-height:1.45}
.pcp-commercial-modal{max-width:980px}.pcp-commercial-body{display:grid;gap:14px;max-height:70vh;overflow:auto;padding-right:4px}.pcp-commercial-section{border:1px solid #dbe6ee;border-radius:14px;padding:16px;background:#fff}.pcp-commercial-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}.pcp-commercial-section-head h4{margin:3px 0 4px;color:#0f2d4f;font-size:18px}.pcp-commercial-section-head p{margin:0;color:#64748b}.pcp-commercial-section label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:700;color:#405466}.pcp-commercial-section input,.pcp-commercial-section select{border:1px solid #cbd9e2;border-radius:9px;padding:10px 11px;background:white;color:#17394a}.pcp-commercial-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}
.pcp-commercial-options{display:grid;grid-template-columns:1fr 1fr;gap:10px}.pcp-commercial-option{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid #dbe6ee;border-radius:12px;padding:12px}.pcp-commercial-option.is-offered{background:#f1fbf7;border-color:#bfe4d2}.pcp-commercial-option>div:first-child b{display:block;color:#17394a}.pcp-commercial-option>div:first-child span{display:block;margin-top:3px;color:#64748b;font-size:12px}.pcp-commercial-option-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.pcp-offer-qty{width:72px!important}
.pcp-discount-current{display:flex;align-items:center;gap:10px;flex-wrap:wrap;border:1px solid #e6edf2;background:#f8fbfd;border-radius:10px;padding:11px 12px;margin-bottom:12px}.pcp-discount-current b{color:#17394a}.pcp-discount-current span{color:#64748b;flex:1}.pcp-discount-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.pcp-discount-grid .span2{grid-column:1/-1}.auth-stripe-option.is-complimentary{background:#f1fbf7!important;border-color:#bfe4d2!important}.auth-stripe-option.is-complimentary .auth-stripe-option-top>strong{color:#087f5b}
@media(max-width:900px){.pcp-admin-kpis,.pcp-admin-kpis.billing{grid-template-columns:repeat(2,minmax(0,1fr))}.pcp-finance-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.pcp-admin-shortcuts,.pcp-commercial-options{grid-template-columns:1fr}.pcp-discount-grid{grid-template-columns:1fr}.pcp-discount-grid .span2{grid-column:auto}}
@media(max-width:560px){.pcp-admin-nav{position:static}.pcp-admin-kpis,.pcp-admin-kpis.billing,.pcp-finance-strip{grid-template-columns:1fr}.pcp-commercial-option{align-items:flex-start;flex-direction:column}.pcp-commercial-option-actions{width:100%;justify-content:flex-start}}


/* PCP V0.10.2.48 — affichage clair des remises commerciales dans Mon abonnement */
.auth-stripe-discount{
  display:flex;
  flex-direction:column;
  gap:3px;
  min-height:68px;
  margin-top:2px;
  padding:9px 10px;
  border:1px solid #b9d9e5;
  border-radius:10px;
  background:#f1f9fc;
  color:#315867;
  font-size:12px;
}
.auth-stripe-discount b{color:#0d7181;font-size:12px}
.auth-stripe-discount span{font-weight:800;color:#17394b}
.auth-stripe-discount small{min-height:0;color:#607985;font-size:10.5px}
.auth-stripe-discount.once{background:#fff8e8;border-color:#ead49c}
.auth-stripe-discount.once b{color:#8a5a00}
.auth-stripe-discount.forever{background:#eff9f3;border-color:#cde8d7}
.auth-stripe-discount.forever b{color:#28734a}

/* ============================================================
   PCP V0.10.2.49 — DOCUMENTS JURIDIQUES
   ============================================================ */
.pcp-legal-quick-links{
  position:fixed;right:14px;bottom:10px;z-index:75;
  display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end;
  max-width:min(92vw,520px);padding:6px 8px;
  border:1px solid #d7e3eb;border-radius:10px;background:rgba(255,255,255,.94);
  box-shadow:0 8px 24px rgba(20,50,70,.10);backdrop-filter:blur(8px)
}
.pcp-legal-quick-links button,.pcp-legal-inline-links .link-btn{
  appearance:none;border:0;background:transparent;color:#176b7a;cursor:pointer;
  font:inherit;font-size:11px;font-weight:700;padding:3px 5px;text-decoration:underline;
  text-underline-offset:2px
}
.pcp-legal-quick-links button:hover,.pcp-legal-inline-links .link-btn:hover{color:#0d5360}
.pcp-legal-modal{z-index:240}
.pcp-legal-card{width:min(880px,94vw);max-height:90vh;display:flex;flex-direction:column;padding:0;overflow:hidden}
.pcp-legal-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;padding:22px 24px 16px;border-bottom:1px solid #dbe6ee;background:#fff}
.pcp-legal-head h2{margin:4px 0 3px;color:#102f4c}
.pcp-legal-head p{margin:0;color:#658093;font-size:12px}
.pcp-legal-body{padding:22px 26px 34px;overflow:auto;white-space:pre-wrap;line-height:1.6;color:#18384b;font-size:13px;background:#fbfdfe}
.pcp-legal-inline-links{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:10px}
.pcp-legal-accept{max-width:820px;margin:0 auto}
.pcp-legal-accept>h2{margin:5px 0 8px;color:#102f4c}
.pcp-legal-accept>p{margin:0 0 8px;color:#607b8d}
.pcp-legal-accept-list{display:grid;gap:10px;margin:18px 0}
.pcp-legal-check{display:flex;gap:12px;align-items:flex-start;border:1px solid #d9e5ec;border-radius:12px;padding:14px;background:#fff;cursor:pointer}
.pcp-legal-check.is-ok{background:#f1faf5;border-color:#cbe9d6}
.pcp-legal-check input{width:18px;height:18px;margin-top:2px;accent-color:#198da2}
.pcp-legal-check span{display:flex;flex-direction:column;gap:3px}
.pcp-legal-check b{color:#17394a}
.pcp-legal-check small{color:#6a8291;line-height:1.4}
.pcp-legal-accept-actions{display:flex;justify-content:flex-end;margin:12px 0}
.pcp-legal-account-box{margin-top:18px;border:1px solid #d9e5ec;border-radius:14px;padding:16px;background:#fff}
.pcp-legal-account-box h3{margin:4px 0 4px;color:#12334d}
.pcp-legal-account-box p{margin:0;color:#688193;font-size:12px}
.pcp-legal-account-status{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.pcp-admin-legal-cell{display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-width:170px}
.pcp-admin-legal-cell small{display:block;max-width:220px;color:#6a8291;line-height:1.35}
.pcp-legal-admin-panel{margin-top:18px}
.pcp-legal-admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px}
.pcp-legal-admin-card{display:flex;justify-content:space-between;gap:12px;align-items:center;border:1px solid #d9e5ec;border-radius:12px;padding:13px;background:#fbfdfe}
.pcp-legal-admin-card>div{display:flex;flex-direction:column;gap:2px}
.pcp-legal-admin-card b{color:#17394a}
.pcp-legal-admin-card span,.pcp-legal-admin-card small{color:#6a8291;font-size:12px}
@media(max-width:760px){
  .pcp-legal-quick-links{left:8px;right:8px;bottom:7px;justify-content:center}
  .pcp-legal-card{width:96vw;max-height:92vh}
  .pcp-legal-head{padding:17px 16px 12px}.pcp-legal-body{padding:16px 17px 70px;font-size:12px}
  .pcp-legal-admin-grid{grid-template-columns:1fr}
  .pcp-legal-admin-card{align-items:flex-start}
}
/* V0.10.2.49 — attente CGV par administrateur */
.pcp-legal-check.is-waiting{border-color:#e7c46a;background:#fff8df}
.pcp-legal-static-icon{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;flex:0 0 28px;border-radius:8px;background:#eef5f8;font-weight:800}
.pcp-legal-wait-admin{display:flex;flex-direction:column;gap:4px;margin-top:12px;padding:12px 14px;border:1px solid #e7c46a;background:#fff8df;border-radius:12px;color:#654d14}
.pcp-legal-wait-admin span{font-size:.9rem;line-height:1.4}

/* ==========================================================
   V0.10.2.53 — APERÇU COMMERCIAL DE L’APPLICATION
   ========================================================== */
.app-preview-section{
  max-width:1240px;
  margin:0 auto 64px;
  padding:54px 34px 28px;
}
.app-preview-heading{
  max-width:820px;
  margin:0 auto 28px;
  text-align:center;
}
.app-preview-heading h2{
  margin:0;
  color:#17394a;
  font-size:30px;
  line-height:1.15;
}
.app-preview-heading p{
  margin:10px auto 0;
  max-width:720px;
  color:#70838e;
  font-size:11px;
  line-height:1.65;
}
.app-preview-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
}
.app-preview-card{
  background:#fff;
  border:1px solid #dce6eb;
  border-radius:18px;
  overflow:hidden;
  box-shadow:0 14px 34px rgba(29,72,90,.08);
}
.app-preview-image{
  aspect-ratio:16/9;
  overflow:hidden;
  display:grid;
  place-items:center;
  padding:10px;
  background:#edf4f7;
  border-bottom:1px solid #e1eaee;
}
.app-preview-image img{
  width:100%;
  height:100%;
  display:block;
  object-fit:contain;
  object-position:center;
}
.app-preview-copy{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:12px;
  padding:18px 20px 20px;
}
.preview-number{
  width:34px;
  height:34px;
  border-radius:999px;
  display:grid;
  place-items:center;
  background:#2c829e;
  color:#fff;
  font-weight:900;
  font-size:13px;
}
.app-preview-copy h3{
  margin:1px 0 5px;
  color:#23495a;
  font-size:15px;
}
.app-preview-copy p{
  margin:0;
  color:#70838e;
  font-size:10px;
  line-height:1.55;
}
.app-preview-cta{
  margin-top:26px;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
  gap:12px 16px;
}
.app-preview-cta span{
  color:#6f838d;
  font-size:9px;
}
.app-preview-note{
  margin:10px 0 0;
  text-align:center;
  color:#8a9aa2;
  font-size:8px;
}
@media(max-width:1050px){
  .app-preview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:760px){
  .app-preview-section{padding:38px 16px 20px;margin-bottom:44px}
  .app-preview-heading h2{font-size:26px}
  .app-preview-grid{grid-template-columns:1fr}
}


/* V0.10.2.56 — tarif de base + contenu SEO planning/suivi chantier */
.price-base-label{display:block;margin-top:9px;color:#607985;font-size:10px;font-style:normal;font-weight:800;line-height:1.45}
.included-highlight{margin:14px 0 0;padding:16px;border:1px solid #cfe8da;border-radius:14px;background:#f4fbf7}
.included-highlight b{color:#1f6949;font-size:12px}
.included-highlight p{font-size:10.5px;color:#365d4d}
.included-highlight p strong{color:#173f30}
.module-options{padding:18px 0;border-bottom:1px solid #edf2f4}
.module-options>b{display:block;margin-bottom:10px;font-size:11px;color:#27495a}
.module-option-row{display:flex;justify-content:space-between;gap:12px;align-items:center;margin:8px 0;padding:10px 12px;border:1px solid #dceaf0;border-radius:11px;background:#f8fbfc;color:#456574;font-size:10px;font-weight:800}
.module-option-row strong{white-space:nowrap;color:#1d5c75;font-size:11px}
.module-options small{display:block;margin-top:8px;color:#7c8f98;font-size:8.5px;line-height:1.45}
.seo-content-section{max-width:1240px;margin:0 auto;padding:34px}
.seo-content-section>.section-heading{max-width:900px}
.seo-content-section>.section-heading>p{color:#607985;line-height:1.75;font-size:11px;max-width:900px}
.seo-content-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:18px}
.seo-content-grid article{background:#fff;border:1px solid #dce7ec;border-radius:14px;padding:20px}
.seo-content-grid h3{margin:0 0 9px;color:#17394a;font-size:14px}
.seo-content-grid p{margin:0;color:#657d88;font-size:10px;line-height:1.7}
.seo-faq{margin-top:26px;padding:22px;border:1px solid #dce7ec;border-radius:16px;background:#fff}
.seo-faq h2{margin:0 0 14px;color:#17394a;font-size:20px}
.seo-faq details{border-top:1px solid #edf2f4;padding:11px 0}
.seo-faq details:first-of-type{border-top:0}
.seo-faq summary{cursor:pointer;color:#27495a;font-size:11px;font-weight:900}
.seo-faq details p{margin:8px 0 0;color:#657d88;font-size:10px;line-height:1.65}
@media(max-width:900px){.seo-content-grid{grid-template-columns:1fr}.seo-content-section{padding:26px 18px}.module-option-row{align-items:flex-start;flex-direction:column;gap:4px}}


/* V0.10.2.57 — ancrage local Eure + accompagnement de proximité */
.hero-local-proof{margin:.45rem 0 0;color:#1f6949;font-size:.82rem;font-weight:800;line-height:1.45}
.local-seo-card{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:24px;align-items:center;margin:26px 0 4px;padding:26px;border:1px solid #cfe8da;border-radius:18px;background:linear-gradient(135deg,#f4fbf7 0%,#f8fbfc 100%);box-shadow:0 10px 30px rgba(35,76,61,.05)}
.local-seo-badge{display:inline-block;margin-bottom:10px;padding:6px 10px;border-radius:999px;background:#e3f4ea;color:#1f6949;font-size:9px;font-weight:900;letter-spacing:.08em}
.local-seo-card h2{margin:0 0 12px;color:#17394a;font-size:21px;line-height:1.25}
.local-seo-card p{margin:0 0 10px;color:#55717d;font-size:10.5px;line-height:1.75}
.local-seo-card p strong{color:#284f40}
.local-seo-area{padding-top:3px}
.local-seo-points{display:grid;gap:9px}
.local-seo-points span{display:block;padding:11px 12px;border:1px solid #d8ebe0;border-radius:11px;background:#fff;color:#315f4b;font-size:10px;font-weight:900;line-height:1.4}
@media(max-width:900px){.local-seo-card{grid-template-columns:1fr;padding:20px}.local-seo-card h2{font-size:18px}.hero-local-proof{font-size:.78rem}}


/* Chantier Agendelys V0.10.2.58 — identité visuelle, aucun changement métier. */
.landing-brand .chantier-brand-icon,
.platform-brand .chantier-brand-icon,
.side .brand>.chantier-brand-icon{
  display:block!important;object-fit:cover!important;flex:0 0 auto!important;
  border-radius:12px!important;background:transparent!important;padding:0!important;
  box-shadow:0 5px 17px rgba(18,63,136,.17);
}
.landing-brand .chantier-brand-icon{width:42px!important;height:42px!important}
.platform-brand .chantier-brand-icon{width:38px!important;height:38px!important;border-radius:10px!important}
.side .brand>.chantier-brand-icon{width:36px!important;height:36px!important;min-width:36px!important}
.chantier-showcase-card{
  width:min(100%,1000px);min-height:300px;display:flex;align-items:center;gap:44px;
  padding:42px 56px;border-radius:22px;overflow:hidden;
  background:linear-gradient(125deg,#071733 5%,#112f59 65%,#125576);
  box-shadow:0 22px 55px rgba(18,47,75,.18);color:white;
}
.chantier-showcase-logo{
  width:210px!important;height:210px!important;flex:0 0 210px;object-fit:cover;
  border:none!important;border-radius:42px!important;box-shadow:0 14px 38px rgba(0,0,0,.2)!important;
}
.chantier-showcase-eyebrow{display:block;color:#8cdefc;font-size:12px;font-weight:800;letter-spacing:.13em}
.chantier-showcase-content h2{font-size:clamp(30px,4vw,44px);margin:13px 0 10px;color:#fff}
.chantier-showcase-content p{font-size:16px;line-height:1.65;color:#d7e8f7;max-width:580px}
.chantier-showcase-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}
.chantier-showcase-tags span{border:1px solid rgba(160,225,250,.3);color:#e9f8ff;border-radius:30px;padding:8px 11px;font-size:12px}
@media(max-width:700px){.chantier-showcase-card{flex-direction:column;text-align:center;padding:28px 22px;gap:14px}.chantier-showcase-logo{width:148px!important;height:148px!important;flex-basis:148px;border-radius:28px!important}.chantier-showcase-tags{justify-content:center}}
