:root{
  /* V3.12.0 — Palette Archi2Board "Cobalt & vermillon" (charte fournie). */
  --dark:#15183A;      /* Encre nuit — texte, fonds sombres */
  --accent:#2B4ACF;    /* Cobalt — signe, liens, bouton principal */
  --bg:#F2F3F8;        /* Papier froid — fond d'interface et de page */
  --card:#ffffff;
  --text:#0f172a;
  --muted:#64748b;
  --line:#dbe3ee;
  --danger:#B23A24;
  --vermillon:#E2553D;      /* Le « 2 », alertes, état actif — par petites touches uniquement */
  --vermillon-text:#B23A24; /* Version sûre du vermillon pour du texte courant (contraste) */
}
*{box-sizing:border-box}
body{
  margin:0;
  font-family:Inter,Segoe UI,Arial,sans-serif;
  background:var(--bg);
  color:var(--text);
}
.site-header{
  display:flex;
  gap:16px;
  align-items:center;
  padding:22px 28px;
  background:linear-gradient(90deg,var(--dark),var(--accent));
  color:#fff;
}
.site-header.compact{padding:14px 24px}
.site-header h1{margin:0;font-size:28px}
.site-header p{margin:4px 0 0;color:#DCE3FA}
.brand-mark{
  width:58px;height:58px;border-radius:18px;
  background:#fff;color:var(--dark);
  display:flex;align-items:center;justify-content:center;
  font-weight:900;font-size:24px;
}
.badge{
  display:inline-block;
  padding:3px 8px;
  border-radius:999px;
  background:rgba(43,74,207,.12);
  color:#2B4ACF;
  font-size:12px;
  font-weight:800;
}
.home-main{max-width:1120px;margin:28px auto;padding:0 18px}
.hero h2{font-size:34px;margin:12px 0}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:16px}
.app-layout{
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(360px,.85fr);
  gap:18px;
  padding:18px;
}
.card{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:18px;
  padding:18px;
  box-shadow:0 10px 30px rgba(2,8,23,.05);
  margin-bottom:16px;
}
.card h2,.card h3{margin-top:0}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.actions{display:flex;gap:12px;margin-top:18px}
button,.button{
  border:0;
  background:var(--accent);
  color:#fff;
  padding:10px 14px;
  border-radius:12px;
  font-weight:800;
  cursor:pointer;
  text-decoration:none;
  display:inline-block;
}
button.secondary,.button.secondary{
  background:#e7f3f4;
  color:#07545b;
}
button.danger{background:#fee4e2;color:var(--danger)}
input,select{
  border:1px solid var(--line);
  border-radius:12px;
  padding:10px 12px;
  background:#fff;
  min-height:42px;
}
.search{flex:1;min-width:260px}
.options label{font-size:12px;color:var(--muted);font-weight:700}
.options select{display:block;margin-top:4px}
.inline{display:flex!important;gap:6px;align-items:center;margin-top:18px}
.muted{color:var(--muted)}
.status{
  margin-bottom:0;
  font-size:13px;
  color:var(--muted);
}
.tag-panel{margin-top:10px}
.tag-group{margin:12px 0}
.tag-group h4{margin:8px 0 6px;color:var(--dark);font-size:13px}
.tag{
  display:inline-block;
  padding:6px 9px;
  border-radius:999px;
  background:#edf7f8;
  color:#07545b;
  font-size:12px;
  font-weight:700;
  margin:3px;
  cursor:pointer;
}
.result{
  border-top:1px solid var(--line);
  padding:14px 0;
}
.ref{
  font-family:ui-monospace,Consolas,monospace;
  color:var(--accent);
  font-weight:900;
}
.pill{
  display:inline-block;
  padding:2px 7px;
  border-radius:999px;
  background:#eef2ff;
  color:#3730a3;
  font-size:11px;
  font-weight:800;
}
mark{background:#fff3a3;border-radius:4px;padding:0 2px}
.article-html{
  margin-top:10px;
  border:1px solid var(--line);
  border-radius:12px;
  padding:12px;
  max-height:360px;
  overflow:auto;
  background:#fff;
}
.lot{
  border:1px solid var(--line);
  border-left:6px solid var(--accent);
  border-radius:14px;
  padding:12px;
  margin-top:12px;
  background:#fbfdff;
}
.lot-head{
  display:flex;
  justify-content:space-between;
  gap:10px;
  align-items:center;
}
.lot h3{margin:0}
.project-article{
  border-top:1px solid var(--line);
  padding:10px 0;
}
.diagnostic-grid{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:6px 14px;
  font-size:13px;
}
.diagnostic-grid span{color:var(--muted)}
@media(max-width:900px){
  .app-layout,.grid-3{grid-template-columns:1fr}
}


.project-total{
  display:flex;
  justify-content:space-between;
  align-items:center;
  border:1px solid var(--line);
  background:#f8fbfc;
  border-radius:14px;
  padding:10px 12px;
  margin:0 0 12px;
}
.project-total b{font-size:18px;color:var(--accent)}
.lot-note{
  width:100%;
  min-height:48px;
  resize:vertical;
  border:1px solid var(--line);
  border-radius:12px;
  padding:10px;
  margin:10px 0;
  font-family:inherit;
}
.article-project-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
  margin-bottom:8px;
}
.editable-toolbar{
  display:flex;
  gap:6px;
  margin:8px 0;
}
.editable-toolbar button{
  padding:6px 9px;
  border-radius:9px;
  background:#e7f3f4;
  color:#07545b;
}
.editable-cctb{
  border:1px solid var(--line);
  border-radius:12px;
  padding:12px;
  min-height:120px;
  max-height:320px;
  overflow:auto;
  background:#fff;
}
.post-table{
  display:grid;
  gap:6px;
  margin:10px 0;
}
.post-row{
  display:grid;
  grid-template-columns:42px minmax(160px,1.4fr) 72px 80px 88px 88px 90px 42px;
  gap:6px;
  align-items:center;
}
.post-row input,.post-row select{
  width:100%;
  min-height:36px;
  padding:7px 8px;
  border-radius:9px;
}
.post-row b{
  text-align:right;
  white-space:nowrap;
}
.post-header{
  font-size:11px;
  text-transform:uppercase;
  color:var(--muted);
  font-weight:900;
}
button.small{
  padding:6px 9px;
  border-radius:9px;
  font-size:12px;
}
@media(max-width:1100px){
  .post-row{
    grid-template-columns:42px 1fr 70px 80px;
  }
  .post-header{display:none}
}


.post-block{
  border:1px solid var(--line);
  border-radius:12px;
  padding:8px;
  background:#fff;
}
.details-box{
  margin-top:8px;
  background:#f8fbfc;
  border:1px dashed var(--line);
  border-radius:10px;
  padding:8px;
}
.details-box summary{
  cursor:pointer;
  font-weight:800;
  color:#07545b;
  font-size:13px;
}
.details-table{
  display:grid;
  gap:5px;
  margin:8px 0;
}
.detail-row{
  display:grid;
  grid-template-columns:54px minmax(160px,1fr) 70px 78px 78px 78px 78px 38px;
  gap:5px;
  align-items:center;
}
.detail-row input,.detail-row select{
  width:100%;
  min-height:34px;
  padding:6px 7px;
  border-radius:8px;
}
.detail-row b{
  text-align:right;
  white-space:nowrap;
}
.detail-header{
  font-size:11px;
  text-transform:uppercase;
  color:var(--muted);
  font-weight:900;
}
.post-row input[readonly]{
  background:#f1f5f9;
  color:#334155;
}
@media(max-width:1100px){
  .detail-row{
    grid-template-columns:54px 1fr 70px;
  }
  .detail-header{display:none}
}


.unit-help{
  margin:6px 0 4px;
  color:var(--muted);
  font-size:12px;
}
.unit-help b{
  color:#07545b;
}
.post-row{
  grid-template-columns:42px minmax(180px,1.25fr) 68px minmax(150px,.9fr) 90px 88px 96px 42px;
}
.post-row select{
  min-width:0;
}


.detail-row{
  grid-template-columns:52px minmax(150px,1fr) 72px 72px 80px 80px 80px 82px 38px;
}
.detail-header span:nth-child(6){
  text-transform:none;
}
.post-row{
  grid-template-columns:42px minmax(180px,1.25fr) 68px minmax(165px,.95fr) 90px 88px 96px 42px;
}
.detail-qty-cell,.post-total-cell{
  color:#062443;
}


.detail-row{
  grid-template-columns:52px minmax(160px,1fr) 74px 82px 82px 82px 82px 86px 38px !important;
}
.detail-header span:nth-child(5){
  text-transform:none;
}
.detail-header span:nth-child(6){
  text-transform:none;
}
.detail-header span:nth-child(7){
  text-transform:none;
}
.post-row{
  grid-template-columns:42px minmax(180px,1.25fr) 68px minmax(175px,.95fr) 90px 88px 96px 42px !important;
}
.detail-qty-cell,.post-total-cell{
  color:#062443;
}
.formula-help{
  color:#475569;
}


.toolbar-separator{
  width:1px;
  height:24px;
  background:var(--line);
  display:inline-block;
  margin:0 3px;
}
.mention-btn{
  min-width:32px;
  padding:6px 9px;
  border-radius:9px;
  font-weight:900;
}
.mention-p,.mention-m,.mention-r{
  background:#f1f5f9 !important;
  color:#0f172a !important;
}
.mention-d{
  background:#fee4e2 !important;
  color:#b42318 !important;
}
.mention{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:20px;
  height:20px;
  padding:0 5px;
  border-radius:5px;
  font-weight:900;
  font-size:12px;
  line-height:1;
}
.mention-normal{
  color:#0f172a;
  background:#f1f5f9;
  border:1px solid #cbd5e1;
}
.mention-d-box{
  color:#b42318;
  background:#fff5f5;
  border:2px solid #b42318;
}


.article-meta-line{
  display:flex;
  gap:8px;
  align-items:center;
  flex-wrap:wrap;
  margin-top:8px;
}
.article-status,.move-select{
  min-height:34px;
  padding:6px 9px;
  border-radius:10px;
  font-size:12px;
}
.change-badge{
  display:inline-flex;
  align-items:center;
  min-height:28px;
  padding:4px 9px;
  border-radius:999px;
  font-size:12px;
  font-weight:900;
}
.change-badge.original{
  color:#166534;
  background:#dcfce7;
  border:1px solid #86efac;
}
.change-badge.changed{
  color:#9a3412;
  background:#ffedd5;
  border:1px solid #fdba74;
}
.image-zone{
  border:1px dashed var(--line);
  border-radius:12px;
  padding:10px;
  margin:10px 0;
  background:#fbfdff;
}
.image-actions{
  margin-bottom:8px;
}
.image-gallery{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(140px,1fr));
  gap:10px;
}
.project-image{
  margin:0;
  border:1px solid var(--line);
  border-radius:12px;
  padding:8px;
  background:#fff;
}
.project-image img{
  width:100%;
  height:110px;
  object-fit:contain;
  background:#f4f6f8;
  border-radius:8px;
  display:block;
}
.project-image figcaption{
  font-size:11px;
  color:var(--muted);
  margin:6px 0;
  word-break:break-word;
}


.editable-toolbar{
  align-items:center;
  flex-wrap:wrap;
}
.toolbar-select{
  min-height:32px;
  padding:5px 8px;
  border-radius:9px;
  font-size:12px;
}
.toolbar-color-label{
  display:inline-flex;
  align-items:center;
  gap:5px;
  min-height:32px;
  padding:4px 7px;
  border:1px solid var(--line);
  border-radius:9px;
  background:#fff;
  color:#475569;
  font-size:12px;
  font-weight:800;
}
.toolbar-color-label input[type="color"]{
  width:28px;
  height:24px;
  min-height:24px;
  padding:0;
  border:0;
  background:transparent;
}
.floating-mentions{
  position:absolute;
  z-index:9999;
  display:flex;
  gap:4px;
  padding:5px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#fff;
  box-shadow:0 10px 25px rgba(2,8,23,.18);
}
.floating-mentions.hidden{
  display:none;
}
.floating-mentions .mention-btn{
  min-width:28px;
  padding:5px 8px;
}


.mention-line{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:2px 7px;
  border-radius:7px;
  font-weight:800;
  line-height:1.3;
  white-space:nowrap;
}
.mention-line-normal{
  color:#0f172a;
  background:#f8fafc;
  border:1px solid #cbd5e1;
}
.mention-line-d{
  color:#b42318;
  background:#fff5f5;
  border:2px solid #b42318;
}
.mention-code{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:20px;
  height:20px;
  border-radius:5px;
  background:#fff;
  border:1px solid currentColor;
  font-size:12px;
  font-weight:900;
}
.mention-label{
  font-weight:800;
}


.app-layout{
  display:grid;
  grid-template-columns:minmax(330px,.85fr) minmax(420px,1.1fr) minmax(310px,.8fr) !important;
  gap:18px;
  align-items:start;
}
.left-col,.center-col,.right-col{
  min-width:0;
}
.model-library-card{
  position:sticky;
  top:12px;
}
.model-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:10px;
}
.model-btn{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  text-align:left;
  gap:4px;
  width:100%;
  background:#f8fbfc;
  color:#062443;
  border:1px solid var(--line);
  border-left:5px solid var(--accent);
  border-radius:14px;
  padding:12px;
}
.model-btn:hover{
  background:#e7f3f4;
}
.model-btn b{
  font-size:14px;
}
.model-btn span{
  font-size:12px;
  color:#64748b;
  font-weight:600;
}
@media(max-width:1250px){
  .app-layout{
    grid-template-columns:1fr 1fr !important;
  }
  .right-col{
    grid-column:1 / -1;
  }
  .model-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media(max-width:900px){
  .app-layout{
    grid-template-columns:1fr !important;
  }
  .right-col{
    grid-column:auto;
  }
  .model-grid{
    grid-template-columns:1fr;
  }
}


/* Mise en page ajustée : colonne droite secondaire, plus étroite et visible au scroll */
.app-layout{
  grid-template-columns:minmax(330px,.95fr) minmax(520px,1.55fr) minmax(220px,.42fr) !important;
  gap:18px;
  align-items:start;
}
.right-col{
  position:sticky;
  top:12px;
  align-self:start;
  max-height:calc(100vh - 24px);
  overflow:auto;
  padding-right:2px;
}
.right-col .card{
  padding:13px;
}
.right-col h2{
  font-size:16px;
  margin-bottom:8px;
}
.model-library-card{
  position:static !important;
}
.model-grid{
  gap:7px;
}
.model-btn{
  padding:9px 10px;
  border-radius:12px;
  border-left-width:4px;
}
.model-btn b{
  font-size:12.5px;
}
.model-btn span{
  font-size:11px;
  line-height:1.25;
}
.project-export-bar{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:8px;
  padding:10px;
  margin:8px 0 12px;
  border:1px solid var(--line);
  border-radius:14px;
  background:#f8fbfc;
}
.project-export-bar button{
  padding:8px 11px;
  border-radius:10px;
}
.project-export-bar .muted{
  font-size:12px;
}
@media(max-width:1250px){
  .right-col{
    position:static;
    max-height:none;
    overflow:visible;
  }
}


/* Logo GO-CCTB */
.home-logo{
  display:block;
  width:min(420px,85vw);
  margin:0 auto 24px;
}
.app-logo{
  width:170px;
  height:auto;
  object-fit:contain;
  margin-right:18px;
  border-radius:14px;
  background:#fff;
  box-shadow:0 8px 26px rgba(2,8,23,.10);
}

/* Étapes d’utilisation */
.steps-card{
  border-left:5px solid var(--accent);
}
.steps-list{
  margin:0;
  padding-left:20px;
}
.steps-list li{
  margin:7px 0;
  color:#334155;
  line-height:1.35;
}

/* Zone centrale plus généreuse */
.center-col .card{
  min-height:calc(100vh - 140px);
}
#lotsPanel,
.project-panel,
.lots-panel{
  min-height:720px;
}

/* Export intégré */
.project-export-bar{
  position:sticky;
  top:8px;
  z-index:20;
}

/* Mentions P/M/D/R sans petit logo */
.mention-line{
  display:inline;
  padding:2px 6px;
  border-radius:6px;
  font-weight:800;
  line-height:1.35;
  white-space:normal;
}
.mention-line-normal{
  color:#0f172a;
  background:#f8fafc;
  border:1px solid #cbd5e1;
}
.mention-line-d{
  color:#b42318;
  background:#fff5f5;
  border:1px solid #b42318;
}
.mention-code,
.mention-label{
  all:unset;
}
@media(max-width:1250px){
  .center-col .card{
    min-height:auto;
  }
  #lotsPanel,
  .project-panel,
  .lots-panel{
    min-height:420px;
  }
}


/* Correction bandeaux supérieurs : hauteur réduite d’environ 50 % */
.site-header{
  min-height:auto !important;
  padding-top:10px !important;
  padding-bottom:10px !important;
  gap:12px !important;
}
.site-header.compact{
  padding-top:8px !important;
  padding-bottom:8px !important;
}
.site-header h1{
  font-size:clamp(24px,3vw,38px) !important;
  margin:0 0 3px !important;
  line-height:1.05 !important;
}
.site-header.compact h1{
  font-size:clamp(20px,2.4vw,30px) !important;
}
.site-header p{
  margin:0 !important;
  font-size:14px !important;
  line-height:1.25 !important;
}
.app-logo{
  width:96px !important;
  max-height:76px !important;
  margin-right:10px !important;
  border-radius:10px !important;
}
.home-logo{
  width:min(240px,70vw) !important;
  margin:0 auto 12px !important;
  max-height:180px !important;
  object-fit:contain !important;
}
.brand-mark{
  display:none !important;
}
@media(max-width:700px){
  .site-header{
    padding-top:8px !important;
    padding-bottom:8px !important;
  }
  .app-logo{
    width:82px !important;
    max-height:64px !important;
  }
  .home-logo{
    width:min(210px,72vw) !important;
  }
}


/* Coordonnées projet / cartouche */
.project-info-card{
  border-left:5px solid #003057;
}
.form-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:8px;
}
.form-grid label{
  display:flex;
  flex-direction:column;
  gap:4px;
  font-size:12px;
  font-weight:800;
  color:#334155;
}
.form-grid input,
.form-grid textarea{
  width:100%;
  box-sizing:border-box;
}
.cartouche-box{
  margin-top:12px;
  padding-top:10px;
  border-top:1px solid var(--line);
}
.cartouche-preview{
  min-height:70px;
  border:1px dashed var(--line);
  border-radius:12px;
  padding:10px;
  background:#fbfdff;
}
.cartouche-figure{
  margin:0;
}
.cartouche-figure img{
  width:100%;
  max-height:220px;
  object-fit:contain;
  border-radius:8px;
  background:#fff;
}
.cartouche-figure figcaption{
  font-size:11px;
  color:#64748b;
  margin-top:6px;
}
.cover-page{
  page-break-after:always;
}


/* Mentions P/M/D/R stables : noir, souligné, sans style aléatoire */
.editable-cctb .mention-inline-fixed{
  color:#111827 !important;
  text-decoration:underline !important;
  font-weight:700 !important;
  background:transparent !important;
  border:0 !important;
  padding:0 !important;
}
.editable-cctb .mention-derogation{
  display:block !important;
  margin:8px 0 !important;
  padding:8px 10px !important;
  border:1.5px solid #111827 !important;
  border-radius:6px !important;
  background:#ffffff !important;
  color:#111827 !important;
}
.editable-cctb .mention-derogation .mention-label-fixed{
  color:#111827 !important;
  text-decoration:underline !important;
  font-weight:700 !important;
  margin-bottom:6px !important;
}
.editable-cctb .mention-derogation-text{
  min-height:42px !important;
  color:#111827 !important;
  text-decoration:none !important;
  outline:none !important;
  background:#ffffff !important;
}
.editable-cctb .mention-derogation-text:focus{
  outline:1px dashed #64748b !important;
  outline-offset:3px !important;
}
.export-html .mention-inline-fixed,
.mention-inline-fixed{
  color:#111827 !important;
  text-decoration:underline !important;
  font-weight:700 !important;
}
.mention-derogation{
  border:1.5px solid #111827 !important;
  color:#111827 !important;
}
.mention-derogation .mention-label-fixed{
  color:#111827 !important;
  text-decoration:underline !important;
  font-weight:700 !important;
}


/* Liste visible des lots */
.lot-index{
  border:1px solid var(--line);
  border-radius:14px;
  background:#f8fbfc;
  padding:10px;
  margin:0 0 12px;
}
.lot-index-title{
  font-weight:900;
  color:#003057;
  margin-bottom:8px;
}
.lot-index-list{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.lot-index-btn{
  display:flex;
  align-items:center;
  gap:7px;
  padding:7px 10px;
  border-radius:999px;
  background:#fff;
  color:#0f172a;
  border:1px solid var(--line);
  font-size:12px;
  text-align:left;
}
.lot-index-btn small{
  color:#64748b;
  font-weight:700;
}
.lot-highlight{
  outline:3px solid rgba(43,74,207,.35);
  outline-offset:5px;
  transition:outline .2s;
}
.lot-head-actions{
  display:flex;
  gap:8px;
  align-items:center;
  flex-wrap:wrap;
}

/* Modèles types personnels */
.user-models-zone{
  border-top:1px solid var(--line);
  margin-top:14px;
  padding-top:12px;
}
.user-models-zone h3{
  margin:0 0 6px;
  font-size:15px;
  color:#003057;
}
.template-actions{
  margin:8px 0;
}
.template-actions button{
  padding:7px 9px;
  border-radius:10px;
  font-size:12px;
}
.user-models-panel{
  display:flex;
  flex-direction:column;
  gap:7px;
}
.user-template-row{
  display:grid;
  grid-template-columns:1fr auto;
  gap:6px;
  align-items:stretch;
}
.user-template-btn{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  text-align:left;
  gap:3px;
  width:100%;
  background:#ffffff;
  color:#0f172a;
  border:1px solid var(--line);
  border-left:4px solid #003057;
  border-radius:12px;
  padding:9px;
}
.user-template-btn b{
  font-size:12.5px;
}
.user-template-btn span{
  font-size:11px;
  color:#64748b;
}
button.small{
  padding:5px 8px;
  border-radius:9px;
  min-width:auto;
}


/* Coordonnées projet retirées pour alléger l’interface */
.project-info-card,
.cartouche-box,
.cartouche-preview{
  display:none !important;
}


/* Modèle commercial : premier projet gratuit puis paiement unique par projet */
.pricing-section{
  width:min(1050px,92vw);
  margin:28px auto;
}
.pricing-card{
  background:#ffffff;
  border:1px solid var(--line);
  border-radius:22px;
  padding:24px;
  box-shadow:0 14px 45px rgba(2,8,23,.08);
}
.pricing-kicker{
  display:inline-flex;
  padding:5px 10px;
  border-radius:999px;
  background:#e6f6f7;
  color:#003057;
  font-weight:900;
  font-size:12px;
  margin-bottom:10px;
}
.pricing-card h2{
  margin:0 0 8px;
  color:#003057;
}
.pricing-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  margin:16px 0;
}
.pricing-item{
  border:1px solid var(--line);
  border-radius:16px;
  padding:14px;
  background:#f8fbfc;
}
.pricing-item b{
  display:block;
  color:#003057;
  margin-bottom:5px;
}
.pricing-item span{
  font-weight:900;
  color:#0f172a;
}
.account-card{
  border-left:5px solid #003057;
}
.account-status-grid{
  display:grid;
  grid-template-columns:1fr auto;
  gap:8px 10px;
  align-items:center;
  padding:10px;
  border:1px solid var(--line);
  border-radius:14px;
  background:#f8fbfc;
  margin:10px 0;
}
.account-status-grid span{
  color:#64748b;
  font-size:12px;
  font-weight:800;
}
.account-status-grid b{
  color:#003057;
  font-size:12px;
}
.account-actions button{
  font-size:12px;
  padding:7px 9px;
  border-radius:10px;
}
.small-note{
  font-size:11px !important;
  line-height:1.25;
}
@media(max-width:800px){
  .pricing-grid{
    grid-template-columns:1fr;
  }
}


/* Mon compte dans la bannière horizontale */
.site-header{position:relative;}
.header-account{
  margin-left:auto;
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}
.account-pill{
  display:inline-flex;
  align-items:center;
  gap:7px;
  border:1px solid var(--line);
  background:#ffffff;
  color:#003057;
  border-radius:999px;
  padding:8px 12px;
  font-weight:900;
  text-decoration:none;
  cursor:pointer;
}
.account-dot{
  width:9px;
  height:9px;
  border-radius:50%;
  background:#cbd5e1;
  display:inline-block;
}
.account-dot.active{background:#16a34a;}
.header-pay-btn{
  padding:8px 12px !important;
  border-radius:999px !important;
  font-size:12px !important;
}
.landing-account{margin-left:auto;}

/* Modules connexion / paiement */
.modal-backdrop{
  position:fixed;
  inset:0;
  background:rgba(2,8,23,.46);
  z-index:10000;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:20px;
}
.modal-backdrop.hidden{display:none;}
.modal-card{
  width:min(720px,96vw);
  max-height:92vh;
  overflow:auto;
  background:#ffffff;
  border-radius:22px;
  padding:20px;
  box-shadow:0 24px 80px rgba(2,8,23,.28);
}
.modal-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:8px;
}
.modal-head h2{margin:0;color:#003057;}
.modal-close{
  min-width:34px;
  height:34px;
  border-radius:50%;
  padding:0;
  font-size:22px;
  line-height:1;
}
.compact-form{
  grid-template-columns:repeat(2,minmax(0,1fr));
  margin:12px 0;
}
.payment-summary{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  margin:12px 0;
}
.payment-summary div{
  border:1px solid var(--line);
  border-radius:16px;
  padding:12px;
  background:#f8fbfc;
}
.payment-summary b{
  display:block;
  color:#003057;
  margin-bottom:5px;
}
.payment-summary span{
  font-size:12px;
  font-weight:800;
  color:#334155;
}
@media(max-width:850px){
  .site-header{align-items:flex-start;}
  .header-account{width:100%;justify-content:flex-start;}
  .compact-form,.payment-summary{grid-template-columns:1fr;}
}


/* Bordereau récapitulatif sous la colonne centrale */
.bordereau-recap-card{
  margin-top:18px;
  border-left:5px solid #003057;
}
.bordereau-recap-panel{
  overflow:auto;
}
.bordereau-recap-table{
  width:100%;
  border-collapse:collapse;
  font-size:12px;
}
.bordereau-recap-table th,
.bordereau-recap-table td{
  border:1px solid var(--line);
  padding:7px 8px;
  vertical-align:top;
}
.bordereau-recap-table th{
  background:#f1f5f9;
  color:#003057;
  font-weight:900;
}
.bordereau-recap-table tfoot th{
  background:#e6f6f7;
}
.bordereau-recap-table .num{
  text-align:right;
  white-space:nowrap;
}

/* Cadre lots types conservé dans la colonne droite */
.model-library-card{
  border-left:5px solid var(--accent);
}
.right-col .model-library-card{
  margin-bottom:14px;
}


/* Prix GO-CCTB */
.payment-summary div:nth-child(2) span,
.pricing-item:nth-child(2) span{
  font-size:13px;
}

/* Compte administrateur */
.account-dot.admin{
  background:#f59e0b !important;
  box-shadow:0 0 0 3px rgba(245,158,11,.18);
}
#modalAdminStatus{
  color:#b45309;
}


/* GO-CCTB V3 Stabilisation */
.stability-status{
  border:1px solid var(--line);
  border-left:5px solid #0ea5e9;
  background:#f8fafc;
  color:#0f172a;
  border-radius:12px;
  padding:10px 12px;
  font-size:13px;
  font-weight:700;
}
.stability-status[data-kind="ok"]{
  border-left-color:#16a34a;
  background:#f0fdf4;
  color:#166534;
}
.stability-status[data-kind="warn"]{
  border-left-color:#f59e0b;
  background:#fffbeb;
  color:#92400e;
}
.stability-status[data-kind="pending"]{
  border-left-color:#0ea5e9;
  background:#eff6ff;
  color:#075985;
}
.repair-btn{
  border-color:#f59e0b !important;
  background:#fffbeb !important;
  color:#92400e !important;
}
#restoreProjectButton{
  border-color:#16a34a;
  background:#f0fdf4;
  color:#166534;
}
.diagnostic-grid{
  grid-template-columns: 1fr auto;
}


/* GO-CCTB V3.2 — édition articles */
.project-article{
  border-top:1px solid var(--line);
  padding:14px 0;
}
.article-collapse{
  margin-top:10px;
  border:1px solid var(--line);
  border-radius:14px;
  background:#ffffff;
  overflow:hidden;
}
.article-collapse-summary{
  display:none;
}
.article-section{
  margin:10px 12px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#fbfdff;
  padding:8px 10px;
}
.project-article details > summary{
  display:flex;
  align-items:center;
  gap:8px;
  cursor:pointer;
  font-weight:850;
  color:#07545b;
  list-style:none;
}
.project-article details > summary::-webkit-details-marker{
  display:none;
}
.project-article details > summary::before{
  content:"▸";
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:18px;
  height:18px;
  border-radius:999px;
  background:#dff3f5;
  color:#07545b;
  font-size:12px;
  flex:0 0 auto;
}
.project-article details[open] > summary::before{
  content:"▾";
}
.editable-toolbar{
  flex-wrap:wrap;
  align-items:center;
  gap:7px;
  position:sticky;
  top:0;
  z-index:5;
  background:#fbfdff;
  padding:8px 0;
  border-bottom:1px solid #e2e8f0;
}
.toolbar-select{
  min-height:32px;
  padding:5px 8px;
  border:1px solid var(--line);
  border-radius:9px;
  background:#fff;
  color:#334155;
  font-size:12px;
  font-weight:800;
}
.editable-cctb{
  min-height:420px;
  max-height:70vh;
  resize:vertical;
  overflow:auto;
  line-height:1.48;
  font-size:14px;
}
.floating-mentions{
  transform:translate(0,0);
}


/* GO-CCTB V3.2.1 — flèche article discrète */
.article-main-collapse{
  border:1px solid var(--line);
  border-radius:14px;
  background:#fff;
  margin:12px 0;
  padding:0;
  overflow:hidden;
}
.article-main-summary{
  display:grid !important;
  grid-template-columns:1fr auto;
  gap:12px;
  align-items:center;
  padding:12px 14px;
  cursor:pointer;
  background:#ffffff;
  list-style:none;
}
.article-main-summary::-webkit-details-marker{
  display:none;
}
.article-main-summary::before{
  content:"▸";
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:18px;
  height:18px;
  border-radius:999px;
  background:#edf7f8;
  color:#07545b;
  font-size:12px;
  font-weight:900;
  grid-column:1;
  grid-row:1;
  margin-right:8px;
}
.article-main-collapse[open] > .article-main-summary::before{
  content:"▾";
}
.article-main-summary .article-title-block{
  grid-column:1;
  grid-row:1;
  padding-left:28px;
}
.article-title-line{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}
.article-main-summary > button{
  grid-column:2;
  grid-row:1;
}
.article-collapse-body{
  border-top:1px solid var(--line);
  padding:2px 0 12px;
  background:#fbfdff;
}
.article-main-collapse > .article-collapse-summary{
  display:none !important;
}


/* GO-CCTB V3.3 — bordereau / quantités */
.detail-row{
  grid-template-columns:minmax(190px,1fr) 82px 82px 82px 82px 86px 92px 38px !important;
}
.detail-row input[data-detail-field="n"]{
  font-weight:800;
}
.detail-row input[data-detail-field="n"][value^="-"]{
  color:#b91c1c;
}
.details-box summary::after{
  content:" — déduction : encoder un nombre négatif";
  color:#64748b;
  font-weight:600;
  font-size:12px;
}
@media(max-width:1100px){
  .detail-row{
    grid-template-columns:1fr 76px 76px !important;
  }
}


/* GO-CCTB V3.3.1 — lots repliables et PM */
.lot-collapse{
  padding:0;
  overflow:hidden;
}
.lot-main-summary{
  display:grid !important;
  grid-template-columns:1fr auto;
  gap:12px;
  align-items:center;
  padding:12px 14px;
  cursor:pointer;
  list-style:none;
}
.lot-main-summary::-webkit-details-marker{
  display:none;
}
.lot-main-summary::before{
  content:"▸";
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:18px;
  height:18px;
  border-radius:999px;
  background:#dff3f5;
  color:#07545b;
  font-size:12px;
  font-weight:900;
  grid-column:1;
  grid-row:1;
  margin-right:8px;
}
.lot-collapse[open] > .lot-main-summary::before{
  content:"▾";
}
.lot-title-block{
  grid-column:1;
  grid-row:1;
  padding-left:28px;
}
.lot-main-summary .lot-head-actions{
  grid-column:2;
  grid-row:1;
}
.lot-collapse-body{
  border-top:1px solid var(--line);
  padding:0 12px 12px;
}
.pm-placeholder{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  min-height:36px;
  border:1px solid var(--line);
  border-radius:9px;
  background:#f8fafc;
  color:#64748b;
  font-weight:900;
}
.post-block-pm{
  background:#fbfdff;
}
.post-block-pm .unit-help{
  color:#64748b;
}


/* GO-CCTB V3.3.2 — ouvertures stables */
.article-section:not([open]){
  background:#ffffff;
}
.article-section:not([open]) summary{
  margin-bottom:0;
}
.details-box:not([open]){
  background:#ffffff;
}


/* GO-CCTB V3.3.4 — lisibilité intérieure des articles */
.article-collapse-body{
  background:linear-gradient(180deg,#fbfdff 0%,#ffffff 100%);
  padding:10px 12px 16px;
}
.article-section{
  border:1px solid #dbe7ee;
  border-left:6px solid var(--section-accent,#94a3b8);
  background:#fff;
  box-shadow:0 1px 0 rgba(15,23,42,.03);
  margin:12px 0;
  padding:0;
  overflow:hidden;
}
.article-section[open]{
  box-shadow:0 8px 20px rgba(15,23,42,.06);
}
.section-text{--section-accent:#0284c7;--section-bg:#eff8ff;}
.section-images{--section-accent:#64748b;--section-bg:#f8fafc;}
.section-posts{--section-accent:#16a34a;--section-bg:#f0fdf4;}
.article-section > .section-summary{
  display:grid !important;
  grid-template-columns:30px 1fr;
  gap:10px;
  align-items:center;
  padding:12px 14px;
  background:var(--section-bg,#f8fafc);
  margin:0;
}
.article-section > .section-summary::before{
  display:none !important;
}
.section-icon{
  display:flex;
  align-items:center;
  justify-content:center;
  width:28px;
  height:28px;
  border-radius:999px;
  background:#fff;
  color:var(--section-accent,#64748b);
  border:1px solid rgba(15,23,42,.08);
  font-weight:900;
}
.section-label{
  display:flex;
  flex-direction:column;
  gap:2px;
}
.section-label b{
  color:#0f172a;
  font-size:14px;
}
.section-label small{
  color:#64748b;
  font-weight:600;
  font-size:12px;
}
.article-section[open] > .section-summary{
  border-bottom:1px solid #dbe7ee;
}
.editable-toolbar{
  margin:0;
  padding:10px 12px;
  background:#f8fafc;
  border-bottom:1px solid #e2e8f0;
}
.editable-cctb{
  margin:12px;
  background:#fff;
  border-color:#dbe7ee;
}
.section-posts .post-table{
  margin:12px;
  display:grid;
  gap:10px;
}
.post-block{
  border:1px solid #dbe7ee;
  border-left:5px solid #cbd5e1;
  background:#ffffff;
  box-shadow:0 1px 0 rgba(15,23,42,.03);
}
.post-block:nth-of-type(even){
  background:#fbfdff;
}
.post-block-pm{
  border-left-color:#94a3b8;
  background:#f8fafc;
}
.post-block-negative{
  border-left-color:#ef4444;
}
.post-header{
  background:#eaf7f8;
  border:1px solid #cfe7ea;
  border-radius:10px;
  padding:6px 8px;
  color:#07545b;
}
.post-row{
  gap:8px;
}
.post-row input,
.post-row select{
  border-color:#dbe7ee;
}
.post-total-cell{
  background:#f8fafc;
  border:1px solid #dbe7ee;
  border-radius:9px;
  padding:8px 10px;
  color:#062443;
  font-weight:900;
}
.detail-row{
  border-radius:9px;
  padding:4px;
}
.detail-row:nth-child(odd):not(.detail-header){
  background:#f8fafc;
}
.detail-negative{
  background:#fff5f5 !important;
}
.detail-negative input,
.detail-negative .detail-qty-cell{
  color:#b91c1c;
  font-weight:900;
}
.detail-qty-cell{
  background:#fff;
  border:1px solid #e2e8f0;
  border-radius:8px;
  padding:7px 8px;
}
.details-box{
  border-color:#dbe7ee;
  background:#fbfdff;
}
.details-box summary{
  padding:4px 2px;
}
.add-post-btn{
  margin:0 12px 12px;
}
.article-remove-btn{
  opacity:.75;
}
.article-remove-btn:hover{
  opacity:1;
}
.image-zone{
  padding:12px;
}
.article-section:not([open]){
  opacity:.98;
}
.article-section:not([open]) .section-summary{
  background:#fff;
}


/* GO-CCTB V3.4 — Mes projets */
.header-projects-btn{
  white-space:nowrap;
}
.active-project-badge{
  border:1px solid #dbe7ee;
  border-left:5px solid #0ea5e9;
  background:#f8fafc;
  color:#0f172a;
  border-radius:12px;
  padding:9px 12px;
  font-size:13px;
  font-weight:850;
  margin:0 0 8px;
}
.projects-modal-card{
  max-width:980px;
}
.projects-toolbar{
  display:grid;
  grid-template-columns:1fr auto;
  gap:14px;
  align-items:end;
  margin:12px 0;
}
.project-create-box{
  display:grid;
  grid-template-columns:minmax(180px,1fr) minmax(180px,1fr) auto;
  gap:10px;
  align-items:end;
}
.project-create-box label{
  display:flex;
  flex-direction:column;
  gap:5px;
  color:#475569;
  font-size:12px;
  font-weight:800;
}
.project-create-box input{
  width:100%;
  min-height:38px;
  border:1px solid var(--line);
  border-radius:10px;
  padding:8px 10px;
  font:inherit;
}
.project-import-box{
  display:flex;
  justify-content:flex-end;
}
.project-storage-note{
  border:1px solid #fde68a;
  border-left:5px solid #f59e0b;
  background:#fffbeb;
  color:#92400e;
  border-radius:12px;
  padding:9px 12px;
  font-size:13px;
  margin:10px 0 14px;
}
.projects-list-panel{
  display:grid;
  gap:10px;
  max-height:62vh;
  overflow:auto;
  padding-right:4px;
}
.project-card{
  border:1px solid #dbe7ee;
  border-left:6px solid #cbd5e1;
  background:#fff;
  border-radius:14px;
  padding:12px;
  display:grid;
  grid-template-columns:1fr;
  gap:10px;
}
.project-card.active{
  border-left-color:#0ea5e9;
  background:#f8fcff;
}
.project-title-line{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}
.project-title-line b{
  color:#0f172a;
  font-size:15px;
}
.project-active-pill,
.project-archive-pill{
  display:inline-flex;
  align-items:center;
  border-radius:999px;
  padding:3px 8px;
  font-size:11px;
  font-weight:900;
}
.project-active-pill{
  background:#e0f2fe;
  color:#0369a1;
}
.project-archive-pill{
  background:#f1f5f9;
  color:#64748b;
}
.project-address{
  margin:4px 0 0;
  color:#475569;
}
.project-meta{
  margin:4px 0 0;
  color:#64748b;
  font-size:12px;
  font-weight:650;
}
.project-card-actions{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
}
.project-card-actions button{
  padding:7px 10px;
  border-radius:9px;
  font-size:12px;
}
@media(max-width:900px){
  .projects-toolbar,
  .project-create-box{
    grid-template-columns:1fr;
  }
  .project-import-box{
    justify-content:flex-start;
  }
}


/* GO-CCTB V3.4.2 — correction fermeture Mes projets */
.project-card.active .project-card-actions button[data-open-project]{
  background:#0ea5e9;
  border-color:#0ea5e9;
  color:#fff;
}


/* GO-CCTB V3.4.3 — récupération JSON */
.projects-modal-card .project-storage-note{
  line-height:1.35;
}


/* GO-CCTB V3.4.4 — bouton Retirer article */
.article-remove-btn{
  position:relative;
  z-index:3;
}
.article-remove-btn:hover{
  background:#fee2e2;
  border-color:#fecaca;
  color:#991b1b;
}


/* GO-CCTB V3.5 — sécurité / sauvegardes */
.safety-panel{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  border:1px solid #dbe7ee;
  border-left:5px solid #22c55e;
  background:#f0fdf4;
  border-radius:14px;
  padding:10px 12px;
  margin:10px 0 12px;
}
.safety-panel b{
  display:block;
  color:#14532d;
}
.safety-panel span{
  color:#166534;
  font-size:12px;
  font-weight:650;
}
.safety-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.safety-actions button.small{
  background:#ffffff;
}
@media(max-width:900px){
  .safety-panel{
    align-items:flex-start;
    flex-direction:column;
  }
  .safety-actions{
    justify-content:flex-start;
  }
}


/* GO-CCTB V3.5.4 — récupération sauvegardes locales */
.safety-recover-btn{
  border-color:#bae6fd;
}
.safety-backups-modal{
  max-width:900px;
}
.safety-recovery-warning{
  border:1px solid #fde68a;
  border-left:5px solid #f59e0b;
  background:#fffbeb;
  color:#92400e;
  border-radius:12px;
  padding:9px 12px;
  margin:10px 0 14px;
  font-size:13px;
}
.safety-backups-list{
  display:grid;
  gap:10px;
  max-height:58vh;
  overflow:auto;
  padding-right:4px;
}
.safety-backup-card{
  border:1px solid #dbe7ee;
  border-left:6px solid #cbd5e1;
  border-radius:14px;
  padding:12px;
  background:#ffffff;
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:center;
}
.safety-backup-card.possible-match{
  border-left-color:#22c55e;
  background:#f0fdf4;
}
.safety-backup-main{
  display:flex;
  flex-direction:column;
  gap:3px;
}
.safety-backup-main b{
  color:#0f172a;
}
.safety-backup-main span,
.safety-backup-main small{
  color:#64748b;
}
.safety-backup-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
@media(max-width:800px){
  .safety-backup-card{
    align-items:flex-start;
    flex-direction:column;
  }
  .safety-backup-actions{
    justify-content:flex-start;
  }
}


/* GO-CCTB V3.6 — accueil Mes projets */
.projects-home-hero{
  border:1px solid #dbe7ee;
  border-left:6px solid #0ea5e9;
  border-radius:16px;
  background:linear-gradient(180deg,#f8fcff,#ffffff);
  padding:14px;
  margin:12px 0 14px;
  display:flex;
  justify-content:space-between;
  gap:14px;
  align-items:center;
}
.projects-home-hero small{
  display:block;
  color:#64748b;
  font-size:11px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.projects-home-hero b{
  display:block;
  margin-top:3px;
  color:#0f172a;
  font-size:18px;
}
.projects-home-hero span{
  display:block;
  margin-top:4px;
  color:#475569;
  font-size:13px;
  font-weight:650;
}
.projects-home-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.projects-home-actions button{
  white-space:nowrap;
}
.projects-modal-card{
  max-width:1040px;
}
.project-card.active{
  box-shadow:0 10px 28px rgba(14,165,233,.08);
}
@media(max-width:800px){
  .projects-home-hero{
    align-items:flex-start;
    flex-direction:column;
  }
  .projects-home-actions{
    justify-content:flex-start;
  }
}


/* GO-CCTB V3.6.1 — commandes Mes projets renforcées */
.projects-create-highlight{
  outline:3px solid rgba(14,165,233,.22);
  outline-offset:6px;
  border-radius:12px;
  transition:outline-color .25s ease;
}
.projects-home-actions button,
.project-card-actions button,
.projects-toolbar button{
  position:relative;
  z-index:2;
  pointer-events:auto;
}


/* GO-CCTB V3.6.3 — sauvegarde claire */
.project-save-card{
  border:1px solid #dbe7ee;
  border-left:6px solid #22c55e;
  background:#f8fffa;
  border-radius:16px;
  padding:14px;
  margin:10px 0 8px;
}
.project-save-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:12px;
}
.project-save-head b{
  display:block;
  color:#14532d;
  font-size:15px;
}
.project-save-head span{
  display:block;
  margin-top:3px;
  color:#166534;
  font-size:12px;
  font-weight:650;
}
.autosave-pill{
  border-radius:999px;
  background:#dcfce7;
  color:#166534 !important;
  padding:4px 9px;
  font-size:11px !important;
  font-weight:900 !important;
  white-space:nowrap;
}
.project-save-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin-top:12px;
}
.project-save-help{
  margin:9px 0 0;
  color:#64748b;
  font-size:12px;
}
.danger-zone-row{
  display:flex;
  justify-content:flex-end;
  margin:4px 0 12px;
}
.recovery-choices-card{
  max-width:720px;
}
.recovery-choice-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin-top:14px;
}
.recovery-choice{
  min-height:120px;
  text-align:left;
  border:1px solid #dbe7ee;
  background:#ffffff;
  color:#0f172a;
  border-radius:16px;
  padding:16px;
}
.recovery-choice:hover{
  border-color:#7dd3fc;
  background:#f8fcff;
}
.recovery-choice b{
  display:block;
  margin-bottom:7px;
  font-size:15px;
}
.recovery-choice span{
  color:#64748b;
  font-size:13px;
  line-height:1.4;
}
@media(max-width:760px){
  .project-save-head{flex-direction:column;}
  .recovery-choice-grid{grid-template-columns:1fr;}
}


/* GO-CCTB V3.7 — comptes et sauvegarde cloud */
.cloud-header-status{
  display:inline-flex;
  align-items:center;
  gap:7px;
  border:1px solid #dbe7ee;
  border-radius:999px;
  padding:7px 10px;
  font-size:11px;
  font-weight:850;
  white-space:nowrap;
  background:#fff;
  color:#475569;
}
.cloud-status-dot{
  width:8px;
  height:8px;
  border-radius:50%;
  background:#94a3b8;
}
.cloud-header-status.online{
  border-color:#bbf7d0;
  background:#f0fdf4;
  color:#166534;
}
.cloud-header-status.online .cloud-status-dot{background:#22c55e;}
.cloud-header-status.syncing{
  border-color:#bae6fd;
  background:#f0f9ff;
  color:#0369a1;
}
.cloud-header-status.syncing .cloud-status-dot{background:#0ea5e9;}
.cloud-header-status.error{
  border-color:#fecaca;
  background:#fef2f2;
  color:#991b1b;
}
.cloud-header-status.error .cloud-status-dot{background:#ef4444;}
.cloud-save-status{
  display:block !important;
  margin-top:4px !important;
  color:#0369a1 !important;
}
.cloud-project-note{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:center;
  border-left-color:#0ea5e9;
  background:#f0f9ff;
  color:#075985;
}
.cloud-project-note span{
  font-size:12px;
  white-space:nowrap;
}
.cloud-account-card{
  max-width:720px;
}
.cloud-auth-form{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  margin:14px 0;
}
.cloud-auth-form label{
  display:flex;
  flex-direction:column;
  gap:6px;
  color:#475569;
  font-size:12px;
  font-weight:800;
}
.cloud-auth-form input{
  min-height:42px;
  border:1px solid var(--line);
  border-radius:11px;
  padding:9px 11px;
  font:inherit;
}
.cloud-auth-message{
  min-height:20px;
  margin:10px 0 0;
  color:#475569;
  font-size:13px;
  font-weight:650;
}
.cloud-user-card{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  border:1px solid #bbf7d0;
  border-left:6px solid #22c55e;
  background:#f0fdf4;
  border-radius:14px;
  padding:12px;
  margin-bottom:14px;
}
.cloud-user-card small{
  display:block;
  color:#64748b;
  font-weight:800;
}
.cloud-user-card b{
  display:block;
  margin-top:3px;
  color:#14532d;
}
.cloud-connected-pill{
  border-radius:999px;
  padding:5px 9px;
  background:#dcfce7;
  color:#166534;
  font-size:11px;
  font-weight:900;
  white-space:nowrap;
}
.cloud-local-fallback{
  border:1px solid #dbe7ee;
  border-left:5px solid #64748b;
  background:#f8fafc;
  border-radius:13px;
  padding:10px 12px;
  margin-top:16px;
}
.cloud-local-fallback b{
  display:block;
  color:#334155;
}
.cloud-local-fallback span{
  display:block;
  margin-top:3px;
  color:#64748b;
  font-size:12px;
  line-height:1.4;
}
@media(max-width:900px){
  .cloud-header-status{display:none;}
  .cloud-auth-form{grid-template-columns:1fr;}
  .cloud-project-note{
    align-items:flex-start;
    flex-direction:column;
  }
}


/* GO-CCTB V3.7.1 — retour visuel commandes cloud */
.cloud-account-card button:disabled{
  cursor:wait;
  opacity:.7;
}
.cloud-auth-message:not(:empty){
  border-left:4px solid #0ea5e9;
  background:#f0f9ff;
  border-radius:8px;
  padding:8px 10px;
}


/* GO-CCTB V3.7.2 — récupération du mot de passe */
.link-button{
  border:0 !important;
  background:transparent !important;
  color:#0369a1 !important;
  box-shadow:none !important;
  padding:8px 4px !important;
  text-decoration:underline;
  font-weight:800;
}
.link-button:hover{
  color:#075985 !important;
  background:transparent !important;
}
.password-recovery-head{
  border:1px solid #bae6fd;
  border-left:6px solid #0ea5e9;
  background:#f0f9ff;
  border-radius:14px;
  padding:12px;
  margin-bottom:14px;
}
.password-recovery-head b{
  display:block;
  color:#075985;
}
.password-recovery-head span{
  display:block;
  margin-top:4px;
  color:#0369a1;
  font-size:12px;
}


/* GO-CCTB V3.8 — interface simplifiée */
.site-header.compact > div:nth-child(2) p{
  margin-top:2px;
  color:#64748b;
  font-size:12px;
}
.simple-steps-list{
  gap:8px;
}
.simple-steps-list li{
  line-height:1.35;
}

/* Sauvegarde discrète */
.project-save-simple{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:14px;
  border:1px solid #dbe7ee;
  border-left:6px solid #22c55e;
  background:#f8fffa;
  border-radius:14px;
  padding:12px 14px;
  margin:12px 0 8px;
}
.project-save-simple-status{
  display:flex;
  align-items:center;
  gap:10px;
}
.save-check{
  display:grid;
  place-items:center;
  width:28px;
  height:28px;
  border-radius:50%;
  background:#dcfce7;
  color:#166534;
  font-weight:950;
}
.project-save-simple-status b{
  display:block;
  color:#14532d;
}
.project-save-simple-status span{
  display:block;
  margin-top:2px;
  color:#64748b;
  font-size:12px;
}
.security-details,
.projects-import-details,
.account-help-details{
  border:1px solid #e2e8f0;
  border-radius:12px;
  background:#f8fafc;
  margin:8px 0 12px;
}
.security-details > summary,
.projects-import-details > summary,
.account-help-details > summary{
  cursor:pointer;
  padding:10px 12px;
  color:#475569;
  font-size:12px;
  font-weight:850;
}
.security-details-content{
  padding:0 12px 12px;
}

/* Accueil projets */
.projects-home-simple{
  max-width:980px;
}
.projects-home-question{
  margin:4px 0 12px;
  color:#334155;
  font-size:17px;
  font-weight:850;
}
.projects-home-simple .projects-home-hero{
  margin-bottom:14px;
}
.projects-main-actions{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
}
.projects-main-action{
  min-height:126px;
  border:1px solid #dbe7ee;
  border-radius:16px;
  background:#fff;
  color:#0f172a;
  padding:16px;
  text-align:left;
  box-shadow:0 5px 14px rgba(15,23,42,.04);
}
.projects-main-action:hover{
  border-color:#7dd3fc;
  background:#f8fcff;
}
.projects-main-action.primary-action{
  border-color:#7dd3fc;
  background:#f0f9ff;
}
.projects-main-action b{
  display:block;
  font-size:16px;
  line-height:1.25;
}
.projects-main-action span{
  display:block;
  margin-top:8px;
  color:#64748b;
  font-size:12px;
  line-height:1.4;
}
.projects-simple-section{
  margin-top:16px;
  border-top:1px solid #e2e8f0;
  padding-top:14px;
}
.simple-section-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  margin-bottom:10px;
}
.simple-section-head h3{
  margin:0;
}
.projects-simple-section .project-create-box{
  align-items:end;
}
.projects-import-details{
  margin-top:12px;
}
.projects-import-details .project-import-box{
  padding:0 12px 12px;
}

/* Compte simplifié */
.simple-account-user{
  margin-bottom:12px;
}
.simple-account-summary{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  margin:12px 0;
}
.simple-account-summary > div{
  border:1px solid #e2e8f0;
  border-radius:12px;
  background:#fff;
  padding:12px;
}
.simple-account-summary span{
  display:block;
  color:#64748b;
  font-size:11px;
  font-weight:800;
}
.simple-account-summary b{
  display:block;
  margin-top:4px;
  color:#0f172a;
  font-size:13px;
}
.simple-account-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin:12px 0;
}
.account-help-details{
  margin-top:8px;
}
.account-help-details .row{
  padding:0 12px 12px;
}

/* Le statut en haut reste discret */
.cloud-header-status{
  min-width:auto;
  padding:7px 10px;
}
.cloud-header-status.online,
.cloud-header-status.syncing,
.cloud-header-status.offline,
.cloud-header-status.error{
  color:#166534;
  background:#f0fdf4;
  border-color:#bbf7d0;
}
.cloud-header-status.online .cloud-status-dot,
.cloud-header-status.syncing .cloud-status-dot,
.cloud-header-status.offline .cloud-status-dot,
.cloud-header-status.error .cloud-status-dot{
  background:#22c55e;
}

@media(max-width:900px){
  .projects-main-actions,
  .simple-account-summary{
    grid-template-columns:1fr;
  }
  .project-save-simple{
    align-items:flex-start;
    flex-direction:column;
  }
  .project-save-simple > button{
    width:100%;
  }
}


.simplified-project-actions{
  align-items:flex-start;
}
.project-more-actions{
  position:relative;
}
.project-more-actions > summary{
  cursor:pointer;
  list-style:none;
  border:1px solid #dbe7ee;
  border-radius:10px;
  background:#fff;
  color:#475569;
  padding:8px 10px;
  font-size:12px;
  font-weight:850;
}
.project-more-actions > summary::-webkit-details-marker{
  display:none;
}
.project-more-actions[open] > summary{
  border-color:#7dd3fc;
  background:#f0f9ff;
}
.project-more-actions > div{
  position:absolute;
  right:0;
  z-index:20;
  display:grid;
  gap:6px;
  min-width:210px;
  margin-top:6px;
  padding:8px;
  border:1px solid #dbe7ee;
  border-radius:12px;
  background:#fff;
  box-shadow:0 14px 36px rgba(15,23,42,.14);
}
.project-more-actions > div button{
  width:100%;
  text-align:left;
}


/* GO-CCTB V3.9 — connexion obligatoire et interface épurée */
.auth-loading-screen{
  display:none;
}
body.auth-pending{
  min-height:100vh;
  background:#f8fafc;
}
body.auth-pending > .auth-loading-screen{
  position:fixed;
  inset:0;
  z-index:99999;
  display:grid;
  place-items:center;
  align-content:center;
  gap:16px;
  background:#f8fafc;
  color:#475569;
  font-weight:800;
}
.auth-loading-screen img{
  width:min(240px,70vw);
  height:auto;
}
body.auth-pending > .site-header,
body.auth-pending > main,
body.auth-pending > .modal-backdrop{
  display:none !important;
}

body.auth-locked{
  min-height:100vh;
  background:#f8fafc;
}
body.auth-locked > .site-header,
body.auth-locked > main{
  display:none !important;
}
body.auth-locked #projectsModal,
body.auth-locked #paymentModal,
body.auth-locked #recoveryChoicesModal,
body.auth-locked #safetyBackupsModal{
  display:none !important;
}
body.auth-locked #accountModal{
  position:fixed;
  inset:0;
  z-index:99998;
  display:flex !important;
  align-items:center;
  justify-content:center;
  padding:24px;
  background:#f8fafc;
  backdrop-filter:none;
}
body.auth-locked #accountModal .modal-card{
  width:min(460px,100%);
  max-height:calc(100vh - 48px);
  overflow:auto;
  border:1px solid #dbe7ee;
  border-radius:22px;
  box-shadow:0 24px 70px rgba(15,23,42,.12);
}
body.auth-locked #accountModal .modal-close{
  display:none !important;
}
body.auth-locked #accountModal .cloud-local-fallback{
  display:none;
}
body.auth-locked #accountModal .modal-head{
  margin-bottom:18px;
}
.auth-brand{
  display:flex;
  align-items:center;
  gap:13px;
}
.auth-brand img{
  width:72px;
  height:auto;
}
.auth-brand h2{
  margin:0;
}
.auth-brand span{
  display:block;
  margin-top:4px;
  color:#64748b;
  font-size:12px;
  font-weight:650;
}
.account-modal-head{
  align-items:flex-start;
}
body.auth-locked #cloudSignedOutPanel > .muted{
  margin-top:0;
}
body.auth-locked .cloud-auth-form{
  grid-template-columns:1fr;
}
body.auth-locked #cloudSignedOutPanel .row{
  display:grid;
  grid-template-columns:1fr;
}
body.auth-locked #cloudSignInButton,
body.auth-locked #cloudSignUpButton{
  min-height:44px;
}
body.auth-locked #cloudForgotPasswordButton{
  justify-self:start;
}

/* Écran Mes projets plus direct */
.projects-home-minimal{
  max-width:920px;
}
.projects-home-subtitle{
  margin:3px 0 0;
}
.projects-active-strip{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
  border:1px solid #bae6fd;
  border-left:6px solid #0ea5e9;
  border-radius:16px;
  background:#f0f9ff;
  padding:14px;
  margin:14px 0;
}
.projects-active-strip small{
  display:block;
  color:#64748b;
  font-size:11px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.projects-active-strip b{
  display:block;
  margin-top:3px;
  color:#0f172a;
  font-size:18px;
}
.projects-active-strip span{
  display:block;
  margin-top:4px;
  color:#475569;
  font-size:12px;
}
.projects-active-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}
.projects-list-simple-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  margin:18px 0 8px;
}
.projects-list-simple-head h3{
  margin:0;
}
.projects-list-simple-head span{
  color:#64748b;
  font-size:12px;
  font-weight:750;
}
.compact-project-note{
  margin:0 0 10px;
  padding:9px 11px;
}
.projects-home-minimal .projects-list-panel{
  max-height:48vh;
  overflow:auto;
}
.projects-home-minimal .project-card{
  padding:12px;
}
.projects-home-minimal .project-card-actions{
  gap:7px;
}

@media(max-width:760px){
  body.auth-locked #accountModal{
    align-items:flex-start;
    padding:12px;
  }
  body.auth-locked #accountModal .modal-card{
    max-height:calc(100vh - 24px);
  }
  .auth-brand img{
    width:58px;
  }
  .projects-active-strip{
    align-items:flex-start;
    flex-direction:column;
  }
  .projects-active-actions{
    width:100%;
  }
  .projects-active-actions button{
    flex:1;
  }
}

/* GO-CCTB V3.10 — espace projet simplifié */
.workspace-layout{
  grid-template-columns:minmax(310px,.82fr) minmax(560px,1.55fr) minmax(230px,.48fr) !important;
  gap:14px;
  padding:14px;
}
.workspace-layout .card{
  border-radius:15px;
  padding:15px;
  margin-bottom:12px;
  box-shadow:0 6px 20px rgba(15,23,42,.045);
}
.workspace-title-row{
  display:flex;
  align-items:flex-start;
  gap:10px;
}
.workspace-title-row h2{
  margin:0;
  color:#0f172a;
  font-size:18px;
}
.workspace-title-row p{
  margin:4px 0 0;
  color:#64748b;
  font-size:12px;
  line-height:1.4;
}
.workspace-step{
  display:grid;
  place-items:center;
  flex:0 0 28px;
  width:28px;
  height:28px;
  border-radius:50%;
  background:#e0f2fe;
  color:#0369a1;
  font-size:13px;
  font-weight:950;
}

/* Recherche */
.search-workspace-card{
  border-top:4px solid #0ea5e9 !important;
}
.search-workspace-card .search-row{
  margin-top:14px;
  align-items:stretch;
}
.search-workspace-card .search-row input{
  min-width:0;
}
.search-workspace-card .search-row button{
  min-width:96px;
}
.search-filters{
  display:grid;
  grid-template-columns:minmax(0,1fr) 90px;
  gap:8px;
  margin-top:9px;
}
.search-filters label{
  color:#64748b;
  font-size:11px;
  font-weight:800;
}
.search-filters select{
  display:block;
  width:100%;
  min-height:36px;
  margin-top:4px;
  padding:7px 9px;
  border-radius:9px;
}
.search-filters .exact-filter{
  grid-column:1 / -1;
  display:flex;
  align-items:center;
  gap:7px;
}
.search-filters .exact-filter input{
  min-height:auto;
}
.search-tags-details{
  margin-top:9px;
  border:1px solid #e2e8f0;
  border-radius:10px;
  background:#f8fafc;
}
.search-tags-details > summary{
  cursor:pointer;
  padding:8px 10px;
  color:#475569;
  font-size:11px;
  font-weight:850;
}
.search-tags-details .tag-panel{
  padding:0 9px 9px;
}
.compact-status{
  margin:9px 0;
  padding:7px 9px;
  border-radius:9px;
  font-size:11px;
}
.search-workspace-card .results{
  margin-top:8px;
}
.utility-details{
  margin-bottom:9px;
  border:1px solid #dbe7ee;
  border-radius:12px;
  background:#fff;
}
.utility-details > summary{
  cursor:pointer;
  padding:11px 12px;
  color:#475569;
  font-size:12px;
  font-weight:850;
}
.utility-details-content{
  padding:0 12px 12px;
}
.utility-details-content button{
  padding:8px 10px;
  font-size:11px;
}
.quick-help-details .steps-list{
  padding:0 14px 10px 30px;
  font-size:12px;
}

/* Projet central */
.project-workspace-card{
  min-height:0 !important;
  border-top:4px solid #22c55e !important;
}
.project-workspace-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:14px;
}
.project-title-row .active-project-badge{
  display:inline-flex;
  margin:4px 0 0;
  padding:5px 8px;
  border-radius:999px;
  font-size:11px;
}
.project-save-indicator{
  display:flex;
  align-items:center;
  gap:8px;
  flex:0 0 auto;
  padding:7px 9px;
  border:1px solid #bbf7d0;
  border-radius:12px;
  background:#f0fdf4;
}
.project-save-indicator .save-check{
  width:24px;
  height:24px;
  font-size:12px;
}
.project-save-indicator b{
  display:block;
  color:#166534;
  font-size:12px;
}
.project-save-indicator small{
  display:block;
  margin-top:1px;
  color:#64748b;
  font-size:10px;
}
.project-command-bar{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  margin:13px 0;
  padding:10px;
  border:1px solid #dbe7ee;
  border-radius:13px;
  background:#f8fafc;
}
.lot-create-main{
  display:flex;
  flex:1;
  gap:8px;
}
.lot-create-main input{
  flex:1;
  min-width:180px;
}
.project-documents-menu{
  position:relative;
  flex:0 0 auto;
}
.project-documents-menu > summary{
  cursor:pointer;
  list-style:none;
  border:1px solid #bae6fd;
  border-radius:10px;
  background:#f0f9ff;
  color:#0369a1;
  padding:9px 11px;
  font-size:11px;
  font-weight:900;
}
.project-documents-menu > summary::-webkit-details-marker{
  display:none;
}
.project-documents-menu[open] > summary{
  background:#e0f2fe;
}
.project-documents-actions{
  position:absolute;
  right:0;
  z-index:40;
  display:grid;
  gap:6px;
  width:240px;
  margin-top:6px;
  padding:8px;
  border:1px solid #dbe7ee;
  border-radius:12px;
  background:#fff;
  box-shadow:0 16px 38px rgba(15,23,42,.15);
}
.project-documents-actions button{
  width:100%;
  padding:9px 10px;
  text-align:left;
  font-size:11px;
}
.workspace-layout #lotsPanel,
.workspace-layout .lots-panel{
  min-height:420px;
}
.compact-security-details{
  margin:12px 0 0;
}
.compact-security-details > summary{
  padding:8px 10px;
  font-size:11px;
}
.compact-security-details .security-details-content{
  padding:0 10px 10px;
}
.compact-security-details button{
  padding:8px 10px;
  font-size:11px;
}
.compact-bordereau-card{
  min-height:0 !important;
  border-top:4px solid #8b5cf6 !important;
}
.compact-bordereau-card .bordereau-recap-panel{
  margin-top:12px;
}

/* Outils latéraux */
.workspace-layout .right-col{
  top:10px;
  max-height:calc(100vh - 20px);
}
.project-tools-card{
  padding:8px !important;
}
.tool-section{
  border-bottom:1px solid #e2e8f0;
}
.tool-section:last-child{
  border-bottom:0;
}
.tool-section > summary{
  cursor:pointer;
  list-style:none;
  padding:10px 8px;
  color:#0f172a;
  font-size:12px;
  font-weight:900;
}
.tool-section > summary::-webkit-details-marker{
  display:none;
}
.tool-section > summary::after{
  content:'›';
  float:right;
  color:#94a3b8;
  font-size:17px;
  transform:rotate(0deg);
  transition:transform .15s ease;
}
.tool-section[open] > summary::after{
  transform:rotate(90deg);
}
.tool-section-content{
  padding:0 7px 10px;
}
.compact-model-grid{
  gap:5px;
}
.compact-model-grid .model-btn{
  display:grid;
  grid-template-columns:1fr auto;
  align-items:center;
  gap:8px;
  padding:8px 9px;
  border-left-width:3px;
}
.compact-model-grid .model-btn b{
  font-size:11.5px;
}
.compact-model-grid .model-btn span{
  font-size:10px;
}
.project-tools-card .user-models-zone{
  margin:0;
  padding:0;
  border:0;
}
.project-tools-card .template-actions button{
  padding:7px 9px;
  font-size:10.5px;
}
.diagnostic-tool-section .diagnostic-grid{
  grid-template-columns:1fr auto;
  gap:6px 8px;
  font-size:10.5px;
}

@media(max-width:1280px){
  .workspace-layout{
    grid-template-columns:minmax(300px,.8fr) minmax(520px,1.45fr) !important;
  }
  .workspace-layout .right-col{
    grid-column:1 / -1;
    position:static;
    max-height:none;
  }
  .project-tools-card{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:8px;
  }
  .tool-section{
    border:1px solid #e2e8f0;
    border-radius:11px;
  }
}
@media(max-width:900px){
  .workspace-layout{
    grid-template-columns:1fr !important;
    padding:10px;
  }
  .project-workspace-head,
  .project-command-bar{
    align-items:stretch;
    flex-direction:column;
  }
  .project-save-indicator{
    align-self:stretch;
  }
  .lot-create-main{
    width:100%;
  }
  .project-documents-menu{
    width:100%;
  }
  .project-documents-menu > summary{
    text-align:center;
  }
  .project-documents-actions{
    position:static;
    width:auto;
  }
  .project-tools-card{
    grid-template-columns:1fr;
  }
  .workspace-layout #lotsPanel,
  .workspace-layout .lots-panel{
    min-height:300px;
  }
}
@media(max-width:560px){
  .lot-create-main,
  .search-workspace-card .search-row{
    flex-direction:column;
  }
  .lot-create-main input,
  .lot-create-main button,
  .search-workspace-card .search-row button{
    width:100%;
  }
  .search-filters{
    grid-template-columns:1fr;
  }
  .search-filters .exact-filter{
    grid-column:auto;
  }
}


/* GO-CCTB V3.10.1 — page d'entrée */
body.login-landing{
  min-height:100vh;
  margin:0;
  display:grid;
  place-items:center;
  padding:24px;
  background:#f8fafc;
}
.login-landing-card{
  width:min(460px,100%);
  padding:34px;
  border:1px solid #dbe7ee;
  border-radius:24px;
  background:#fff;
  text-align:center;
  box-shadow:0 24px 70px rgba(15,23,42,.10);
}
.login-landing-card img{
  width:min(250px,80%);
  height:auto;
}
.login-landing-card h1{
  margin:18px 0 6px;
}
.login-landing-card p{
  margin:0 auto 24px;
  max-width:340px;
  color:#64748b;
  line-height:1.5;
}
.login-main-button{
  display:inline-flex;
  justify-content:center;
  min-width:190px;
  padding:12px 18px;
  text-decoration:none;
  font-weight:900;
}


/* GO-CCTB V3.10.3 — conformité SPW */
.spw-source-notice,
.spw-work-notice{
  display:grid;
  gap:4px;
  margin:10px 0 12px;
  padding:10px 12px;
  border:1px solid #bae6fd;
  border-left:5px solid #0ea5e9;
  border-radius:12px;
  background:#f0f9ff;
  color:#075985;
}
.spw-source-notice b,
.spw-work-notice b{
  font-size:12px;
}
.spw-source-notice span,
.spw-work-notice span{
  color:#334155;
  font-size:11.5px;
  line-height:1.45;
}
.landing-source-notice{
  margin:0 auto 18px;
  max-width:360px;
  text-align:left;
}
.about-cctb-card{
  margin-bottom:12px;
}
.about-cctb-card button{
  width:100%;
}
.cctb-notice-modal{
  max-width:720px;
}
.cctb-notice-text p{
  line-height:1.55;
}

.copy-cctb-btn{white-space:nowrap}
#createArticleModal textarea{width:100%;min-height:220px;resize:vertical}
#createArticleModal select,#createArticleModal input{width:100%}


/* GO-CCTB V3.10.4g — actions d'article sans chevauchement */
.article-main-summary > .article-head-actions{
  grid-column:2;
  grid-row:1;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  flex-wrap:wrap;
  max-width:100%;
  position:relative;
  z-index:4;
}
.article-head-actions > button{
  position:relative;
  flex:0 0 auto;
  white-space:nowrap;
  margin:0;
}
@media (max-width:760px){
  .article-main-summary{
    grid-template-columns:minmax(0,1fr) !important;
  }
  .article-main-summary > .article-head-actions{
    grid-column:1;
    grid-row:2;
    justify-content:flex-start;
    padding-left:28px;
  }
}

/* V3.10.4L — formulaire et consultation des articles personnels */
.personal-article-modal-card{width:min(920px,calc(100vw - 32px));max-width:920px;}
.personal-article-modal-card .cloud-auth-form{grid-template-columns:repeat(2,minmax(0,1fr));}
.personal-article-text-label{grid-column:1/-1;}
#personalArticleText{min-height:360px;resize:vertical;font-family:inherit;line-height:1.55;}
.personal-article-card{align-items:flex-start;}
.personal-article-card-main{min-width:0;flex:1;}
.personal-article-card-main small{display:block;margin-top:4px;}
.personal-article-card-main p{margin:8px 0 0;white-space:pre-wrap;line-height:1.4;color:var(--muted);}
@media (max-width:700px){.personal-article-modal-card .cloud-auth-form{grid-template-columns:1fr;}#personalArticleText{min-height:300px;}}

/* V3.10.4M — confirmation visible des articles personnels */
.personal-article-notice{position:fixed;z-index:10000;top:18px;left:50%;transform:translate(-50%,-12px);max-width:min(680px,calc(100vw - 32px));padding:14px 18px;border:1px solid var(--border);border-radius:12px;background:var(--card);color:var(--text);box-shadow:0 12px 32px rgba(0,0,0,.22);opacity:0;transition:opacity .2s ease,transform .2s ease;font-weight:700;text-align:center;}
.personal-article-notice.visible{opacity:1;transform:translate(-50%,0);}
.search-workspace-card>.spw-source-notice{margin:0 0 14px;}


/* V3.10.4N — confirmation dans la fenêtre d'article personnel */
.personal-article-modal-notice{
  margin:0 0 14px;
  padding:12px 14px;
  border:1px solid rgba(22,163,74,.35);
  border-radius:10px;
  background:rgba(22,163,74,.10);
  color:inherit;
  font-weight:700;
}
.personal-article-modal-notice[hidden]{display:none!important;}

/* V3.10.4P — confirmation explicite dans la fenêtre */
.personal-article-confirmation-panel{padding:28px 18px;text-align:center;}
.personal-article-confirmation-panel[hidden]{display:none!important;}
.personal-article-confirmation-panel h3{margin:8px 0;}
.personal-article-confirmation-panel p{margin:0 auto 20px;max-width:620px;color:var(--muted);}
.personal-article-confirmation-panel .row{justify-content:center;}
.personal-article-confirmation-icon{display:grid;place-items:center;width:54px;height:54px;margin:0 auto 10px;border-radius:999px;background:rgba(22,163,74,.14);border:1px solid rgba(22,163,74,.35);font-size:30px;font-weight:800;}

.personal-article-modal-notice{margin:0 0 16px;padding:14px 16px;border:2px solid var(--accent);border-radius:12px;background:var(--accent-soft);font-weight:700;}
.personal-article-modal-notice[hidden]{display:none!important;}

/* V3.10.4R — numérotation automatique des postes */
.post-number{
  display:flex;align-items:center;justify-content:center;
  min-height:36px;border-radius:9px;background:#eaf7f8;
  color:#07545b;font-weight:900;font-variant-numeric:tabular-nums;
}
.post-header span:first-child{text-align:center;}


/* V3.10.4T — référence complète des postes (article.n° de poste) */
.post-row{
  grid-template-columns:minmax(105px,145px) minmax(180px,1.25fr) 68px minmax(175px,.95fr) 90px 88px 96px 42px !important;
}
.post-number{
  padding:7px 8px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  font-size:12px;
}
@media(max-width:1100px){
  .post-row{grid-template-columns:minmax(100px,135px) 1fr 70px 80px !important;}
}

/* V3.10.4X — Informations projet / bureau */
.project-info-modal-card{max-width:820px;width:min(92vw,820px)}
.project-info-form-grid{display:grid;grid-template-columns:1fr;gap:14px;margin:14px 0}
.project-info-form-grid.two-cols{grid-template-columns:repeat(2,minmax(0,1fr))}
.project-info-form-grid label{display:flex;flex-direction:column;gap:6px;font-weight:600}
.project-info-form-grid input,.project-info-form-grid textarea{width:100%;box-sizing:border-box}
.project-info-form-grid .full-width{grid-column:1/-1}
.project-info-section-title{margin:20px 0 6px}
.project-logo-field{border:1px solid var(--border,#d6dee6);border-radius:10px;padding:14px;margin:16px 0}
.project-office-logo-preview{display:flex;align-items:center;gap:12px;min-height:90px;margin:10px 0;padding:10px;border:1px dashed #b8c3cc;border-radius:8px;background:#fafcfd}
.project-office-logo-preview img{max-width:240px;max-height:100px;object-fit:contain;display:block}
.project-office-logo-preview.empty{color:#64748b}
.remember-office-profile{display:flex;gap:8px;align-items:flex-start;margin:12px 0}
.project-info-save-notice{padding:10px 12px;border:1px solid #7bbd9b;border-radius:8px;background:#eefaf3;color:#174d34;font-weight:700}
.button-like{display:inline-flex;align-items:center;justify-content:center;padding:9px 12px;border-radius:8px;cursor:pointer;border:1px solid currentColor}
@media(max-width:700px){.project-info-form-grid.two-cols{grid-template-columns:1fr}.project-info-form-grid .full-width{grid-column:auto}}


/* V3.10.4AH — copier/coller des lignes de quantités entre postes */
.quantity-actions{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:7px;
  margin-top:8px;
}
.quantity-clipboard-notice{
  min-height:18px;
  font-size:12px;
  font-weight:800;
  color:#0f766e;
  opacity:0;
  transition:opacity .18s ease;
}
.quantity-clipboard-notice.visible{opacity:1;}
.quantity-clipboard-notice.error{color:#b91c1c;}


/* V3.10.4AI — retour visible lors de la création d'un projet */
.project-create-message{padding:10px 12px;border-radius:8px;margin-bottom:10px;font-weight:700}
.project-create-message.info{background:#eef4ff;border:1px solid #aac2ef;color:#274a78}
.project-create-message.success{background:#eefaf3;border:1px solid #7bbd9b;color:#174d34}
.project-create-message.error{background:#fff1f1;border:1px solid #e3a1a1;color:#8b1f1f}

/* V3.10.4AN — import Excel de la base personnelle */
.personal-excel-import-modal-card{width:min(620px,calc(100vw - 32px));max-width:620px;}
.personal-excel-import-summary{padding:14px 16px;border:1px solid var(--border);border-radius:12px;background:var(--accent-soft);line-height:1.55;}

/* GO-CCTB V3.10.4AR — filtres contextuels de recherche */
.search-filters{
  grid-template-columns:minmax(0,1fr) minmax(0,1fr) 90px;
  align-items:end;
}
.search-filter-context[hidden],
.personal-search-summary[hidden],
.search-tags-details[hidden]{display:none!important;}
.personal-search-summary{
  margin-top:8px;
  padding:7px 10px;
  border-radius:9px;
  background:#f8fafc;
  border:1px solid #e2e8f0;
  color:#64748b;
  font-size:11px;
}
.personal-search-summary b{color:#334155;}
@media(max-width:760px){
  .search-filters{grid-template-columns:minmax(0,1fr) minmax(0,1fr);}
  .search-filter-limit{max-width:none;}
}
@media(max-width:560px){
  .search-filters{grid-template-columns:1fr;}
}

/* ==========================================================
   V3.11.0H — Assistants Toiture + Châssis + Égouttage + Gros-Œuvre · correspondances CCTB versionnées
   Interface guidée, volontairement sobre
   ========================================================== */
.lot-assistant-launch{
  display:inline-flex !important;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:40px;
  padding:10px 16px !important;
  background:linear-gradient(135deg,var(--accent),#087b83) !important;
  color:#fff !important;
  border:1px solid rgba(0,111,119,.16) !important;
  border-radius:12px;
  box-shadow:0 5px 15px rgba(43,74,207,.20);
  white-space:nowrap;
  font-weight:850;
  transition:transform .16s ease,box-shadow .16s ease,filter .16s ease;
}
.lot-assistant-launch-icon{
  font-size:13px;
  line-height:1;
  opacity:.95;
}
.lot-assistant-launch:hover{
  filter:brightness(.97);
  transform:translateY(-1px);
  box-shadow:0 7px 18px rgba(43,74,207,.26);
}
.lot-assistant-launch:focus-visible{
  outline:3px solid rgba(43,74,207,.20);
  outline-offset:2px;
}

.lot-assistant-modal-card{
  width:min(760px,94vw);
  max-width:760px;
  max-height:90vh;
  padding:0;
  overflow:auto;
  border-radius:18px;
}
.lot-assistant-modal-head{
  position:sticky;
  top:0;
  z-index:4;
  margin:0;
  padding:20px 24px 17px;
  background:rgba(255,255,255,.98);
  border-bottom:1px solid #edf1f5;
}
.lot-assistant-modal-head h2{
  margin:3px 0 0;
  color:var(--dark);
  font-size:22px;
  line-height:1.2;
}
.lot-assistant-kicker{
  display:block;
  color:var(--muted);
  font-size:12px;
  font-weight:700;
}
.lot-assistant-kicker strong{
  color:#334155;
  font-weight:850;
}
.lot-assistant-intro{
  margin:7px 0 0;
  color:var(--muted);
  font-size:13px;
  line-height:1.45;
}
.lot-assistant-notice{
  margin:14px 24px 0;
  border:1px solid #cce7d8;
  background:#f4fbf7;
  color:#276044;
  border-radius:10px;
  padding:9px 11px;
  font-size:12px;
  font-weight:750;
}
.lot-assistant-stage{
  padding:20px 24px 24px;
  min-height:310px;
}
.lot-assistant-stage-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  min-height:22px;
  margin-bottom:14px;
}
#lotAssistantStepLabel{
  color:var(--accent);
  font-size:11px;
  font-weight:850;
  letter-spacing:.045em;
  text-transform:uppercase;
}
.lot-assistant-reset-link{
  border:0;
  background:transparent !important;
  color:#8a98a8 !important;
  padding:2px 0;
  border-radius:0;
  font-size:11px;
  font-weight:700;
}
.lot-assistant-reset-link:hover{color:#526273 !important;text-decoration:underline;}
.lot-assistant-questions{padding:0;}
.lot-assistant-question{
  margin:0;
  padding:0;
  border:0;
  background:transparent;
}
.lot-assistant-question-section{display:none;}
.lot-assistant-question h3{
  margin:0;
  color:#18324a;
  font-size:20px;
  line-height:1.3;
  font-weight:800;
}
.lot-assistant-multiple{
  display:block;
  margin:7px 0 16px;
  color:var(--muted);
  font-size:12px;
}
.lot-assistant-choice-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
}
.lot-assistant-choice{
  position:relative;
  display:flex;
  align-items:center;
  gap:9px;
  min-height:46px;
  border:1px solid #dfe6ed;
  background:#fff;
  border-radius:10px;
  padding:9px 11px;
  cursor:pointer;
  transition:border-color .12s ease, background .12s ease;
}
.lot-assistant-choice:hover{
  border-color:#b8d7d9;
  background:#fcfefe;
}
.lot-assistant-choice.selected{
  border-color:#78bcc1;
  background:#f1f9f9;
}
.lot-assistant-choice input{
  position:absolute;
  opacity:0;
  pointer-events:none;
}
.lot-assistant-choice-check{
  width:20px;
  height:20px;
  flex:0 0 20px;
  border:1.5px solid #bdc8d4;
  border-radius:6px;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#fff;
  background:#fff;
  font-size:12px;
  font-weight:900;
}
.lot-assistant-choice.selected .lot-assistant-choice-check{
  border-color:var(--accent);
  background:var(--accent);
}
.lot-assistant-choice-copy b{
  display:block;
  color:#20384f;
  font-size:12px;
  line-height:1.28;
}
.lot-assistant-choice-copy small{
  display:block;
  margin-top:2px;
  color:var(--muted);
  font-size:10px;
}
.lot-assistant-articles{
  margin:0;
  padding:0;
  border:0;
  background:transparent;
}
.lot-assistant-review-summary{
  padding:10px 0 4px;
}
.lot-assistant-review-summary>span{
  display:block;
  margin-bottom:5px;
  color:var(--accent);
  font-size:12px;
  font-weight:800;
}
.lot-assistant-review-summary h3{
  margin:0;
  color:#18324a;
  font-size:24px;
  line-height:1.2;
}
.lot-assistant-review-summary p{
  margin:8px 0 0;
  color:var(--muted);
  font-size:13px;
  line-height:1.45;
}
.lot-assistant-detail-toggle{
  margin-top:13px;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent !important;
  color:#087b83 !important;
  font-size:12px;
  font-weight:800;
}
.lot-assistant-detail-toggle:hover{text-decoration:underline;}
.lot-assistant-article-list{
  margin-top:15px;
  padding-top:8px;
  border-top:1px solid #edf1f5;
  max-height:300px;
  overflow:auto;
}
.lot-assistant-article{
  display:grid;
  grid-template-columns:auto 76px minmax(0,1fr) auto;
  align-items:center;
  gap:9px;
  padding:8px 4px;
  background:#fff;
  border:0;
  border-bottom:1px solid #eef2f5;
  border-radius:0;
  cursor:pointer;
}
.lot-assistant-article:last-child{border-bottom:0;}
.lot-assistant-article.already-added{opacity:.62;cursor:default;}
.lot-assistant-article input{width:16px;height:16px;min-height:0;}
.lot-assistant-article-ref{
  font-family:ui-monospace,Consolas,monospace;
  color:#587084;
  font-weight:800;
  font-size:11px;
}
.lot-assistant-article-main b{
  display:block;
  color:#20384f;
  font-size:11px;
  line-height:1.3;
}
.lot-assistant-article-badge{
  color:#7a8794;
  background:#f3f5f7;
  border-radius:999px;
  padding:4px 7px;
  font-size:9px;
  font-weight:750;
  white-space:nowrap;
}
.lot-assistant-actions{
  position:sticky;
  bottom:0;
  z-index:3;
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:12px;
  padding:13px 24px 16px;
  background:rgba(255,255,255,.98);
  border-top:1px solid #edf1f5;
}
.lot-assistant-actions-right{display:flex;gap:8px;align-items:center;justify-content:flex-end;}
.lot-assistant-mini-status{
  min-height:16px;
  color:#8794a2;
  font-size:11px;
  text-align:right;
}
#lotAssistantPrev[hidden],
#lotAssistantNext[hidden],
#lotAssistantAddArticles[hidden],
#lotAssistantDone[hidden],
#lotAssistantReset[hidden]{display:none !important;}
#lotAssistantAddArticles:disabled{opacity:.46;cursor:not-allowed;}
.lot-assistant-unsupported{
  display:flex;
  flex-direction:column;
  gap:6px;
  margin:22px 24px;
  padding:14px 0;
  border:0;
  background:transparent;
  color:#657586;
  line-height:1.45;
}
.lot-assistant-unsupported b{color:var(--dark);font-size:14px;}
.lot-assistant-unsupported span{font-size:12px;}

@media (max-width:620px){
  .lot-assistant-modal-card{width:100vw;max-height:100vh;border-radius:0;}
  .lot-assistant-modal-head{padding:17px 18px 14px;}
  .lot-assistant-stage{padding:18px;min-height:0;}
  .lot-assistant-notice{margin-left:18px;margin-right:18px;}
  .lot-assistant-choice-grid{grid-template-columns:1fr;}
  .lot-assistant-actions{
    grid-template-columns:1fr;
    padding:12px 18px 16px;
  }
  .lot-assistant-mini-status{display:none;}
  .lot-assistant-actions-right{display:grid;grid-template-columns:1fr;}
  .lot-assistant-actions button{width:100%;}
  .lot-assistant-article{grid-template-columns:auto 66px minmax(0,1fr);}
  .lot-assistant-article-badge{grid-column:3;justify-self:start;}
}

/* GO-CCTB V3.11.0X — renommage inline des lots */
.lot-title-row{
  display:flex;
  align-items:center;
  gap:7px;
  min-width:0;
}
.lot-title-row h3{
  margin:0;
  min-width:0;
}
.lot-rename-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:28px;
  height:28px;
  padding:0;
  border:1px solid transparent;
  border-radius:8px;
  background:transparent;
  color:#64748b;
  font-size:15px;
  line-height:1;
  opacity:.72;
}
.lot-rename-btn:hover,
.lot-rename-btn:focus-visible{
  opacity:1;
  color:#07545b;
  background:#eaf7f8;
  border-color:#b9e1e4;
}
.lot-rename-input{
  width:min(430px,60vw);
  min-width:180px;
  padding:7px 9px;
  border:1px solid #8cced3;
  border-radius:8px;
  background:#fff;
  color:#0f172a;
  font:inherit;
  font-weight:800;
  outline:none;
  box-shadow:0 0 0 3px rgba(43,74,207,.10);
}
.lot-rename-confirm,
.lot-rename-cancel{
  padding:6px 9px;
  border-radius:8px;
  font-size:12px;
  font-weight:800;
}
.lot-rename-confirm{
  background:#07545b;
  color:#fff;
  border:1px solid #07545b;
}
.lot-rename-cancel{
  background:#fff;
  color:#475569;
  border:1px solid var(--line);
}
@media(max-width:760px){
  .lot-title-row{flex-wrap:wrap;}
  .lot-rename-input{width:100%;min-width:0;}
}

/* ==========================================================
   GO-CCTB V3.11.0Y — Lisibilité globale / hiérarchie visuelle
   Aucun changement fonctionnel : densité, rythme et priorités.
   ========================================================== */
:root{
  --ui-navy:#12324d;
  --ui-teal:#0b8087;
  --ui-bg:#f3f6f8;
  --ui-surface:#ffffff;
  --ui-soft:#f7f9fb;
  --ui-line:#dfe6ec;
  --ui-line-strong:#cfd9e2;
  --ui-text:#172638;
  --ui-muted:#68798a;
  --ui-shadow:0 2px 10px rgba(20,45,70,.045);
  --ui-shadow-open:0 10px 30px rgba(20,45,70,.075);
}

html{scroll-behavior:smooth;}
body{
  background:var(--ui-bg);
  color:var(--ui-text);
  font-size:14px;
  line-height:1.45;
  -webkit-font-smoothing:antialiased;
}
button,input,select,textarea{font:inherit;}
button,.button{border-radius:9px;box-shadow:none;}
button:focus-visible,.button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{
  outline:3px solid rgba(11,128,135,.16);
  outline-offset:2px;
}
input,select,textarea{
  border-color:var(--ui-line-strong);
  border-radius:9px;
}
input:hover,select:hover,textarea:hover{border-color:#b8c6d1;}

/* En-tête : marque présente, interface moins décorative. */
.site-header,
.site-header.compact{
  min-height:64px !important;
  padding:8px 18px !important;
  gap:12px !important;
  background:#0d2d49 !important;
  border-bottom:1px solid rgba(255,255,255,.09);
  box-shadow:0 1px 0 rgba(15,23,42,.12);
}
.site-header .app-logo{
  width:82px !important;
  max-height:52px !important;
  margin-right:2px !important;
  border-radius:8px !important;
  box-shadow:none !important;
}
.site-header h1,.site-header.compact h1{
  font-size:21px !important;
  font-weight:850;
  letter-spacing:-.02em;
}
.site-header p{
  margin-top:2px !important;
  color:#c9d8e5 !important;
  font-size:11.5px !important;
}
.site-header .badge{
  margin-left:4px;
  padding:3px 7px;
  background:rgba(255,255,255,.12);
  color:#e9f7f8;
  border:1px solid rgba(255,255,255,.14);
  vertical-align:2px;
}
.header-account{gap:6px;}
.header-account button,
.header-account .account-pill{
  min-height:34px;
  padding:7px 10px !important;
  border-radius:9px !important;
  font-size:11.5px !important;
}
.header-account .secondary{
  background:rgba(255,255,255,.10) !important;
  color:#eef7fb !important;
  border:1px solid rgba(255,255,255,.13) !important;
}
.header-account .account-pill{
  background:#fff;
  color:#17344e;
  border-color:#fff;
}
.header-pay-btn{opacity:.88;}
.cloud-header-status{font-size:11px;}

/* Trois colonnes conservées, centre clairement prioritaire. */
.workspace-layout{
  grid-template-columns:minmax(285px,.70fr) minmax(650px,1.78fr) minmax(235px,.48fr) !important;
  gap:12px;
  padding:12px;
  align-items:start;
}
.workspace-layout .card{
  border:1px solid var(--ui-line);
  border-radius:12px;
  padding:14px;
  margin-bottom:10px;
  box-shadow:var(--ui-shadow);
}
.search-workspace-card,
.project-workspace-card,
.compact-bordereau-card{
  border-top:1px solid var(--ui-line) !important;
}
.workspace-title-row{gap:9px;}
.workspace-title-row h2{
  color:var(--ui-text);
  font-size:17px;
  line-height:1.2;
  letter-spacing:-.015em;
}
.workspace-title-row p{
  max-width:650px;
  margin-top:3px;
  color:var(--ui-muted);
  font-size:11.5px;
}
.workspace-step{
  width:25px;
  height:25px;
  flex-basis:25px;
  background:#e8f3f4;
  color:#0a6970;
  font-size:11px;
}

/* Mentions SPW : visibles mais non concurrentes du travail. */
.spw-source-notice,.spw-work-notice{
  display:block;
  margin:10px 0 12px;
  padding:8px 10px;
  border:1px solid #dce6ed;
  border-left:3px solid #8eb7c7;
  border-radius:8px;
  background:#f8fafb;
  color:#456276;
}
.spw-source-notice b,.spw-work-notice b{
  display:block;
  margin-bottom:2px;
  color:#345268;
  font-size:10.5px;
}
.spw-source-notice span,.spw-work-notice span{
  color:#6c7b88;
  font-size:10.5px;
  line-height:1.35;
}

/* Recherche : une lecture verticale nette, cartes de résultat détachées. */
.search-workspace-card .search-row{margin-top:12px;gap:7px;}
.search-workspace-card .search-row input{min-height:40px;background:#fff;}
.search-workspace-card .search-row button{min-width:88px;padding:9px 12px;}
.search-filters{gap:7px;margin-top:8px;}
.search-filters label{font-size:10.5px;color:#728292;}
.search-filters select{min-height:34px;font-size:11px;}
.compact-status{
  margin:8px 0;
  padding:5px 0;
  background:transparent !important;
  border:0 !important;
  color:#7a8997;
}
.search-workspace-card .results{display:grid;gap:8px;}
.search-workspace-card .result{
  margin:0;
  padding:11px;
  border:1px solid var(--ui-line);
  border-radius:10px;
  background:#fff;
}
.search-workspace-card .result:first-child{border-top:1px solid var(--ui-line);}
.search-workspace-card .result > div:first-child{line-height:1.35;}
.search-workspace-card .result .ref{
  display:inline-block;
  margin-right:3px;
  padding:2px 5px;
  border-radius:5px;
  background:#eef7f7;
  color:#08737a;
  font-size:11px;
}
.search-workspace-card .result .pill{background:#f1f4f7;color:#708091;font-size:9px;}
.search-workspace-card .result p{margin:7px 0;font-size:11.5px;line-height:1.45;}
.search-workspace-card .result .row{gap:6px;}
.search-workspace-card .result .row select{min-height:33px;padding:6px 8px;font-size:10.5px;flex:1;min-width:130px;}
.search-workspace-card .result .row button{padding:7px 9px;font-size:10.5px;}
.search-workspace-card .result details > summary{font-size:10.5px;color:#657788;}
.article-html{border-radius:8px;font-size:12px;}
.utility-details{
  margin-bottom:7px;
  border-color:var(--ui-line);
  border-radius:9px;
  box-shadow:none;
}
.utility-details > summary{padding:9px 10px;font-size:10.5px;}

/* Projet : commandes plus calmes, sauvegarde plus discrète. */
.project-workspace-card{background:#fff;}
.project-workspace-head{gap:10px;}
.project-title-row .active-project-badge{
  margin-top:5px;
  padding:4px 7px;
  border:1px solid #dbe5eb;
  border-left:3px solid #78aeb3;
  border-radius:7px;
  background:#f8fafb;
  color:#405466;
  font-size:10.5px;
}
.project-save-indicator{
  gap:6px;
  padding:5px 7px;
  border-color:#d7e8de;
  border-radius:8px;
  background:#f7fbf8;
}
.project-save-indicator .save-check{width:18px;height:18px;}
.project-save-indicator b{font-size:10.5px;}
.project-save-indicator small{font-size:9.5px;}
.project-command-bar{
  margin:12px 0 10px;
  padding:8px;
  gap:7px;
  border-color:var(--ui-line);
  border-radius:10px;
  background:#f8fafb;
}
.lot-create-main{gap:6px;}
.lot-create-main input{min-height:38px;font-size:12px;}
.project-command-bar button,
.project-documents-menu > summary{min-height:36px;padding:8px 10px;font-size:10.5px;}
.project-documents-menu > summary{
  border-color:#cedee8;
  background:#fff;
  color:#315a70;
}
.project-documents-menu[open] > summary{background:#f1f7fa;}
.project-documents-actions{width:230px;border-radius:9px;box-shadow:0 12px 30px rgba(20,45,70,.13);}

/* Vue globale du projet. */
.workspace-layout #lotsPanel,.workspace-layout .lots-panel{min-height:360px;}
.lots-overview-bar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin:0 0 8px;
  padding:7px 2px;
}
.lots-overview-copy{display:flex;align-items:baseline;gap:8px;min-width:0;}
.lots-overview-copy b{color:#263d51;font-size:12px;}
.lots-overview-copy span{color:#7b8996;font-size:10.5px;}
.lots-overview-actions{display:flex;gap:5px;}
.lots-overview-actions button{
  min-height:28px;
  padding:5px 8px;
  background:transparent !important;
  border:1px solid var(--ui-line) !important;
  color:#637485 !important;
  font-size:9.5px;
}
.lot-index{
  margin:0 0 9px;
  padding:8px;
  border-color:var(--ui-line);
  border-radius:9px;
  background:#f8fafb;
}
.lot-index-title{
  margin-bottom:6px;
  color:#657789;
  font-size:9.5px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.06em;
}
.lot-index-list{gap:5px;}
.lot-index-btn{
  gap:5px;
  padding:5px 8px;
  border-color:#dce4ea;
  border-radius:7px;
  color:#3d5265;
  font-size:10px;
  font-weight:750;
}
.lot-index-btn:hover{border-color:#9ec6c9;background:#f3f9f9;}
.lot-index-btn small{font-size:9px;color:#8a97a3;}
.project-total{
  margin:0 0 9px;
  padding:7px 10px;
  border-color:var(--ui-line);
  border-radius:9px;
  background:#fbfcfd;
  color:#667787;
  font-size:10.5px;
}
.project-total b{color:#234b5b;font-size:14px;}

/* Lots : le titre d'abord, actions ensuite. */
.lot{
  margin-top:9px;
  border:1px solid var(--ui-line);
  border-left:4px solid #87b9bd;
  border-radius:10px;
  background:#fff;
  box-shadow:none;
}
.lot-collapse[open]{
  border-color:#cfdce4;
  box-shadow:var(--ui-shadow-open);
}
.lot-main-summary{
  min-height:58px;
  padding:9px 11px;
  gap:9px;
  background:#fff;
}
.lot-main-summary:hover{background:#fbfcfd;}
.lot-collapse[open] > .lot-main-summary{background:#fbfcfd;}
.lot-main-summary::before{
  width:17px;
  height:17px;
  margin-right:6px;
  background:#edf4f5;
  color:#567d82;
  font-size:10px;
}
.lot-title-block{padding-left:24px;}
.lot-title-row{gap:6px;}
.lot-order{
  display:inline-grid;
  place-items:center;
  flex:0 0 20px;
  width:20px;
  height:20px;
  border-radius:6px;
  background:#edf3f5;
  color:#58717f;
  font-size:9.5px;
  font-weight:900;
}
.lot-title-row h3{
  color:#1b3348;
  font-size:15px;
  line-height:1.25;
  letter-spacing:-.01em;
}
.lot-title-block > .muted{
  margin-top:3px;
  color:#7a8997;
  font-size:10px;
}
.lot-head-actions{gap:5px;justify-content:flex-end;}
.lot-head-actions button{min-height:30px;padding:6px 8px;border-radius:7px;font-size:9.5px;}
.lot-assistant-launch{
  min-height:34px;
  padding:7px 10px !important;
  border-radius:8px;
  box-shadow:none;
  font-size:10px !important;
}
.lot-assistant-launch:hover{transform:none;box-shadow:none;}
.lot-save-template-btn{
  background:#f5f7f9 !important;
  color:#647587 !important;
  border:1px solid #e1e7ec !important;
}
.lot-delete-btn{
  background:transparent !important;
  color:#a35c59 !important;
  border:1px solid transparent !important;
  opacity:.72;
}
.lot-delete-btn:hover{opacity:1;background:#fff5f4 !important;border-color:#f0d2cf !important;}
.lot-rename-btn{width:25px;height:25px;border-radius:6px;font-size:13px;opacity:.45;}
.lot-title-row:hover .lot-rename-btn{opacity:.85;}
.lot-collapse-body{
  padding:9px 10px 11px;
  border-top:1px solid #e7edf1;
  background:#fafcfd;
}
.lot-note{
  min-height:38px;
  margin:0 0 8px;
  padding:8px 9px;
  border-color:#e0e7ed;
  border-radius:8px;
  background:#fff;
  color:#4f6273;
  font-size:10.5px;
  resize:vertical;
}
.lot-note::placeholder{color:#a0abb5;}
.empty-lot-state{
  display:flex;
  flex-direction:column;
  gap:2px;
  padding:15px 12px;
  border:1px dashed #cad6df;
  border-radius:8px;
  background:#fff;
  text-align:center;
}
.empty-lot-state b{color:#536a7d;font-size:11px;}
.empty-lot-state span{color:#8795a2;font-size:10px;}
.empty-project-state{
  display:flex;
  align-items:flex-start;
  gap:12px;
  margin:18px 0;
  padding:22px;
  border:1px dashed #c8d5de;
  border-radius:11px;
  background:#fbfcfd;
}
.empty-project-icon{
  display:grid;
  place-items:center;
  width:34px;
  height:34px;
  flex:0 0 34px;
  border-radius:10px;
  background:#eaf4f4;
  color:#477a7d;
  font-size:20px;
}
.empty-project-state b{display:block;color:#2e4659;font-size:13px;}
.empty-project-state p{max-width:560px;margin:4px 0 0;color:#7b8a97;font-size:11px;line-height:1.45;}

/* Articles : référence et titre lisibles même lorsqu'ils sont repliés. */
.article-main-collapse{
  margin:7px 0;
  border-color:#dce4ea;
  border-radius:9px;
  box-shadow:none;
}
.article-main-collapse[open]{border-color:#c7d7e0;box-shadow:0 4px 16px rgba(26,54,78,.055);}
.article-main-summary{
  min-height:54px;
  padding:8px 10px;
  gap:8px;
  background:#fff;
}
.article-main-summary:hover{background:#fbfcfd;}
.article-main-collapse[open] > .article-main-summary{background:#fbfcfd;}
.article-main-summary::before{
  width:16px;
  height:16px;
  margin-right:5px;
  background:#f0f4f6;
  color:#607988;
  font-size:9px;
}
.article-main-summary .article-title-block{padding-left:22px;}
.article-title-line{gap:6px;line-height:1.3;}
.article-title-line .ref{
  display:inline-flex;
  padding:3px 6px;
  border-radius:5px;
  background:#edf6f6;
  color:#08747b;
  font-size:10px;
  letter-spacing:.01em;
}
.article-title-line b{color:#263c4f;font-size:11.5px;font-weight:780;}
.article-meta-line{margin-top:5px;gap:5px;}
.article-status,.move-select{
  min-height:27px;
  padding:4px 6px;
  border-color:#dce4ea;
  border-radius:6px;
  background:#fff;
  color:#607181;
  font-size:9.5px;
}
.article-status{width:auto;min-width:76px;}
.move-select{max-width:150px;}
.change-badge{padding:3px 6px;border-radius:6px;font-size:8.5px;}
.change-badge.original{opacity:.55;background:#f3f5f7;color:#7e8b97;}
.change-badge.changed{background:#fff7df;color:#8a6615;border-color:#eed99a;}
.article-head-actions{gap:4px;}
.article-head-actions > button{min-height:28px;padding:5px 7px;border-radius:6px;font-size:9px;}
.article-remove-btn{background:transparent !important;color:#a35c59 !important;border:1px solid transparent !important;opacity:.62;}
.article-remove-btn:hover{background:#fff5f4 !important;border-color:#f0d2cf !important;opacity:1;}
.article-collapse-body{padding:8px;background:#f8fafb;}

/* Intérieur d'un article : sections moins lourdes. */
.article-section{
  margin:7px 0;
  border:1px solid #dce5eb;
  border-left:3px solid var(--section-accent,#94a3b8);
  border-radius:8px;
  box-shadow:none;
}
.article-section[open]{box-shadow:0 3px 12px rgba(26,54,78,.045);}
.article-section > .section-summary{
  grid-template-columns:24px 1fr;
  gap:8px;
  padding:8px 10px;
}
.section-icon{width:22px;height:22px;font-size:10px;}
.section-label b{font-size:11px;}
.section-label small{font-size:9.5px;}
.editable-toolbar{padding:7px 8px;gap:5px;}
.editable-toolbar button,.toolbar-select{min-height:28px;padding:5px 7px;border-radius:6px;font-size:9.5px;}
.toolbar-color-label{font-size:9.5px;}
.editable-cctb{
  min-height:330px;
  margin:9px;
  padding:12px 14px;
  border-radius:7px;
  line-height:1.55;
  font-size:13px;
}
.section-posts .post-table{margin:8px;gap:7px;overflow-x:auto;}
.post-block{padding:7px;border-left-width:3px;border-radius:8px;box-shadow:none;}
.post-header{padding:5px 6px;border-radius:7px;font-size:9px;}
.post-row{gap:6px;}
.post-row input,.post-row select{min-height:31px;padding:5px 6px;border-radius:6px;font-size:10px;}
.post-total-cell{padding:6px 7px;border-radius:6px;font-size:10px;}
.details-box{border-radius:7px;}
.details-box summary{font-size:10px;}
.detail-row{gap:5px;}
.detail-row input,.detail-row select{min-height:29px;padding:4px 5px;border-radius:5px;font-size:9.5px;}
.detail-qty-cell{padding:5px 6px;border-radius:5px;font-size:9.5px;}
.add-post-btn{margin:0 8px 8px;}

/* Bordereau : secondaire dans l'écran, lisible une fois consulté. */
.compact-bordereau-card{background:#fbfcfd;}
.compact-bordereau-card .workspace-step{background:#eef0f5;color:#657084;}
.compact-bordereau-card .bordereau-recap-panel{margin-top:9px;}
.bordereau-recap-table{font-size:10.5px;}
.bordereau-recap-table th,.bordereau-recap-table td{padding:6px 7px;border-color:#e0e6eb;}
.bordereau-recap-table th{background:#f4f6f8;color:#475b6e;}
.bordereau-recap-table tfoot th{background:#edf5f5;}

/* Colonne outils : rail discret ; une seule zone ouverte suffit au démarrage. */
.workspace-layout .right-col{top:8px;max-height:calc(100vh - 16px);}
.project-tools-card{padding:6px !important;background:#fbfcfd;}
.tool-section{border-bottom-color:#e5eaee;}
.tool-section > summary{padding:9px 7px;color:#405366;font-size:10.5px;}
.tool-section > summary::after{font-size:14px;}
.tool-section-content{padding:0 6px 8px;}
.tool-section-content > p.muted{margin:2px 0 7px;font-size:9.5px;line-height:1.35;}
.compact-model-grid{gap:4px;}
.compact-model-grid .model-btn{
  min-height:38px;
  padding:7px 8px;
  border-left-width:2px;
  border-radius:7px;
  background:#fff;
}
.compact-model-grid .model-btn b{font-size:10px;}
.compact-model-grid .model-btn span{font-size:8.5px;}
.project-tools-card .template-actions{gap:4px;}
.project-tools-card .template-actions button{padding:6px 7px;font-size:9px;}
.about-cctb-card{margin:4px 2px 7px;}
.about-cctb-card button{padding:7px 8px;font-size:9px;}
.diagnostic-tool-section .diagnostic-grid{font-size:9px;}

/* Assistant : question au centre, progrès discret, choix plus aérés. */
.lot-assistant-modal-card{border-radius:14px;box-shadow:0 24px 70px rgba(10,34,54,.20);}
.lot-assistant-modal-head{padding:17px 21px 14px;}
.lot-assistant-modal-head h2{font-size:19px;}
.lot-assistant-intro{font-size:11.5px;}
.lot-assistant-stage{padding:22px 21px 26px;min-height:300px;}
.lot-assistant-stage-head{margin-bottom:16px;}
#lotAssistantStepLabel{font-size:9.5px;color:#648086;letter-spacing:.07em;}
.lot-assistant-question h3{max-width:620px;font-size:19px;color:#20384d;}
.lot-assistant-multiple{margin:6px 0 14px;font-size:10.5px;}
.lot-assistant-choice-grid{gap:7px;}
.lot-assistant-choice{
  min-height:48px;
  padding:9px 10px;
  border-radius:8px;
  border-color:#dce5ea;
}
.lot-assistant-choice.selected{border-color:#79b4b8;background:#f3f8f8;}
.lot-assistant-choice-check{width:18px;height:18px;flex-basis:18px;border-radius:5px;}
.lot-assistant-choice-copy b{font-size:11px;}
.lot-assistant-choice-copy small{font-size:9px;}
.lot-assistant-actions{padding:11px 21px 13px;}
.lot-assistant-actions button{min-height:34px;padding:8px 11px;font-size:10.5px;}

/* Renommage intégré à la nouvelle densité. */
.lot-rename-input{min-height:32px;padding:5px 7px;border-radius:6px;font-size:12px;}
.lot-rename-confirm,.lot-rename-cancel{min-height:28px;padding:5px 7px;border-radius:6px;font-size:9.5px;}

@media(max-width:1450px){
  .workspace-layout{
    grid-template-columns:minmax(280px,.72fr) minmax(590px,1.62fr) minmax(220px,.46fr) !important;
  }
}
@media(max-width:1280px){
  .workspace-layout{grid-template-columns:minmax(285px,.72fr) minmax(560px,1.5fr) !important;}
  .workspace-layout .right-col{grid-column:1 / -1;position:static;max-height:none;overflow:visible;}
  .project-tools-card{grid-template-columns:repeat(3,minmax(0,1fr));}
}
@media(max-width:900px){
  .workspace-layout{grid-template-columns:1fr !important;padding:8px;}
  .site-header,.site-header.compact{flex-wrap:wrap;}
  .header-account{width:100%;}
  .project-workspace-head,.project-command-bar{align-items:stretch;flex-direction:column;}
  .lot-create-main{flex-wrap:wrap;}
  .lot-create-main input{flex-basis:100%;}
  .lot-main-summary{grid-template-columns:1fr;}
  .lot-main-summary .lot-head-actions{grid-column:1;grid-row:2;padding-left:24px;justify-content:flex-start;}
  .article-main-summary{grid-template-columns:1fr;}
  .article-main-summary > .article-head-actions{grid-column:1;grid-row:2;padding-left:22px;justify-content:flex-start;}
  .project-tools-card{grid-template-columns:1fr;}
}
@media(max-width:620px){
  .site-header .app-logo{width:70px !important;}
  .site-header h1,.site-header.compact h1{font-size:19px !important;}
  .site-header p{display:none;}
  .header-pay-btn{display:none !important;}
  .lots-overview-bar{align-items:flex-start;flex-direction:column;}
  .lot-index-list{display:grid;grid-template-columns:1fr 1fr;}
  .lot-index-btn{justify-content:space-between;}
  .lot-head-actions{width:100%;}
  .lot-head-actions .lot-assistant-launch{flex:1;}
  .lot-save-template-btn{display:none;}
  .article-meta-line{align-items:stretch;}
  .move-select{max-width:100%;}
  .lot-assistant-choice-grid{grid-template-columns:1fr;}
}

/* ==========================================================
   GO-CCTB V3.11.0Z — Mode rédaction / panneaux flottants
   Les colonnes gauche et droite restent intactes dans le DOM.
   ========================================================== */
:root{
  --workspace-panel-top:120px;
  --workspace-drawer-width:min(410px,calc(100vw - 28px));
}

.workspace-quickbar{
  position:sticky;
  top:0;
  z-index:760;
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:10px;
  min-height:46px;
  margin:0;
  padding:6px 12px;
  border-bottom:1px solid var(--ui-line);
  background:rgba(247,249,251,.96);
  backdrop-filter:blur(12px);
  box-shadow:0 4px 16px rgba(20,45,70,.055);
}
.workspace-panel-toggle,
.workspace-shortcut-help{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  min-height:34px;
  padding:6px 9px;
  border:1px solid #d8e1e8;
  border-radius:9px;
  background:#fff;
  color:#324c61;
  font-size:11px;
  font-weight:760;
  box-shadow:none;
}
.workspace-panel-toggle:hover,
.workspace-shortcut-help:hover{background:#f4f8fa;border-color:#bfcfd9;}
.workspace-panel-toggle.is-active{background:#edf7f7;border-color:#95c2c5;color:#0b6f75;}
.workspace-panel-toggle-icon{font-size:13px;color:#668092;}
.workspace-shortcut-inline{display:inline-flex;align-items:center;gap:2px;margin-left:2px;}
kbd{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:20px;
  min-height:20px;
  padding:1px 5px;
  border:1px solid #cfd8df;
  border-bottom-width:2px;
  border-radius:5px;
  background:#f8fafb;
  color:#42586b;
  font:700 9.5px/1.1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  box-shadow:0 1px 0 rgba(15,23,42,.04);
}
.workspace-quickbar-center{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-width:0;
}
.workspace-focus-label{color:#728190;font-size:10.5px;font-weight:760;letter-spacing:.015em;}
.workspace-shortcut-help{min-height:30px;padding:5px 8px;background:transparent;font-size:10px;}
.workspace-shortcut-popover{
  position:absolute;
  top:calc(100% + 9px);
  left:50%;
  z-index:910;
  width:min(340px,calc(100vw - 28px));
  transform:translateX(-50%);
  padding:12px;
  border:1px solid #d7e1e8;
  border-radius:10px;
  background:#fff;
  box-shadow:0 18px 45px rgba(20,45,70,.16);
  color:#405569;
}
.workspace-shortcut-popover > b{display:block;margin-bottom:8px;color:#1f374c;font-size:11.5px;}
.workspace-shortcut-popover > div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 0;border-top:1px solid #eef2f5;font-size:10.5px;}
.workspace-shortcut-popover > div span:last-child{display:flex;gap:3px;}
.workspace-shortcut-popover small{display:block;margin-top:8px;color:#7c8b98;font-size:9.5px;line-height:1.4;}

.workspace-shortcut-hint{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:34px;
  padding:5px 12px;
  border-bottom:1px solid #dce7ea;
  background:#f2f8f8;
  color:#47646e;
  font-size:10px;
}
.workspace-shortcut-hint > span:nth-child(2){display:flex;align-items:center;gap:4px;flex-wrap:wrap;}
.workspace-shortcut-hint button{
  min-height:25px;
  padding:4px 7px;
  border:1px solid #c9dadd;
  border-radius:7px;
  background:#fff;
  color:#557078;
  font-size:9px;
}

.workspace-panel-backdrop{
  position:fixed;
  inset:0;
  z-index:790;
  background:rgba(12,31,48,.18);
  backdrop-filter:blur(1px);
}
.workspace-panel-backdrop[hidden]{display:none!important;}

/* La barre centrale devient l'espace de travail principal. */
body.workspace-ui-ready .workspace-layout{
  grid-template-columns:minmax(0,1fr) !important;
  max-width:1720px;
  margin:0 auto;
}
body.workspace-ui-ready .center-col{grid-column:1;min-width:0;}
body.workspace-ui-ready .left-col,
body.workspace-ui-ready .right-col{display:none;min-width:0;}

/* Panneaux flottants : position fixe, contenu original conservé. */
body.workspace-ui-ready.workspace-left-open:not(.workspace-left-pinned) .left-col,
body.workspace-ui-ready.workspace-right-open:not(.workspace-right-pinned) .right-col{
  display:block!important;
  position:fixed!important;
  top:var(--workspace-panel-top)!important;
  z-index:820!important;
  width:var(--workspace-drawer-width)!important;
  max-height:calc(100vh - var(--workspace-panel-top) - 12px)!important;
  overflow:auto!important;
  padding:0!important;
  border:1px solid #d5e0e7;
  border-radius:12px;
  background:#f5f8fa;
  box-shadow:0 24px 60px rgba(17,39,58,.24);
  scrollbar-gutter:stable;
}
body.workspace-ui-ready.workspace-left-open:not(.workspace-left-pinned) .left-col{left:12px!important;right:auto!important;}
body.workspace-ui-ready.workspace-right-open:not(.workspace-right-pinned) .right-col{right:12px!important;left:auto!important;}

/* Mode épinglé : retour sans réorganisation du contenu à 2 ou 3 colonnes. */
body.workspace-ui-ready.workspace-left-pinned:not(.workspace-right-pinned) .workspace-layout{
  grid-template-columns:minmax(300px,.70fr) minmax(620px,1.85fr)!important;
}
body.workspace-ui-ready.workspace-left-pinned:not(.workspace-right-pinned) .left-col{
  display:block!important;grid-column:1;position:sticky!important;top:54px!important;max-height:calc(100vh - 64px)!important;overflow:auto!important;
}
body.workspace-ui-ready.workspace-left-pinned:not(.workspace-right-pinned) .center-col{grid-column:2;}

body.workspace-ui-ready.workspace-right-pinned:not(.workspace-left-pinned) .workspace-layout{
  grid-template-columns:minmax(620px,1.85fr) minmax(250px,.55fr)!important;
}
body.workspace-ui-ready.workspace-right-pinned:not(.workspace-left-pinned) .center-col{grid-column:1;}
body.workspace-ui-ready.workspace-right-pinned:not(.workspace-left-pinned) .right-col{
  display:block!important;grid-column:2;position:sticky!important;top:54px!important;max-height:calc(100vh - 64px)!important;overflow:auto!important;
}

body.workspace-ui-ready.workspace-left-pinned.workspace-right-pinned .workspace-layout{
  grid-template-columns:minmax(285px,.68fr) minmax(610px,1.72fr) minmax(235px,.50fr)!important;
}
body.workspace-ui-ready.workspace-left-pinned.workspace-right-pinned .left-col{
  display:block!important;grid-column:1;position:sticky!important;top:54px!important;max-height:calc(100vh - 64px)!important;overflow:auto!important;
}
body.workspace-ui-ready.workspace-left-pinned.workspace-right-pinned .center-col{grid-column:2;}
body.workspace-ui-ready.workspace-left-pinned.workspace-right-pinned .right-col{
  display:block!important;grid-column:3;position:sticky!important;top:54px!important;max-height:calc(100vh - 64px)!important;overflow:auto!important;
}

.workspace-floating-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  min-height:42px;
  margin-bottom:7px;
  padding:7px 9px;
  border:1px solid #dfe7ec;
  border-radius:9px;
  background:#fff;
}
.workspace-floating-head > div:first-child{display:flex;align-items:center;gap:7px;min-width:0;}
.workspace-floating-head b{color:#294357;font-size:11px;}
.workspace-floating-head small{display:flex;gap:2px;}
.workspace-floating-actions{display:flex;align-items:center;gap:5px;}
.workspace-floating-actions .secondary{min-height:27px;padding:4px 7px;font-size:9px;}
.workspace-floating-close{
  display:grid;
  place-items:center;
  width:28px;
  height:28px;
  padding:0;
  border:1px solid #dde5eb;
  border-radius:7px;
  background:#fff;
  color:#6e7f8e;
  font-size:17px;
  line-height:1;
}
.workspace-floating-close:hover{background:#f8eeee;color:#98544f;border-color:#e8d0ce;}

/* Dans une fenêtre flottante, on laisse respirer la carte sans changer son contenu. */
body.workspace-ui-ready.workspace-left-open:not(.workspace-left-pinned) .left-col > .card,
body.workspace-ui-ready.workspace-right-open:not(.workspace-right-pinned) .right-col > .card{margin-bottom:8px;}
body.workspace-ui-ready.workspace-left-open:not(.workspace-left-pinned) .left-col,
body.workspace-ui-ready.workspace-right-open:not(.workspace-right-pinned) .right-col{padding:8px!important;}

/* Auth : ne pas afficher les commandes de travail pendant l'écran de connexion. */
body.auth-pending .workspace-quickbar,
body.auth-pending .workspace-shortcut-hint,
body.auth-pending .workspace-panel-backdrop,
body.auth-locked .workspace-quickbar,
body.auth-locked .workspace-shortcut-hint,
body.auth-locked .workspace-panel-backdrop{display:none!important;}

@media(max-width:1280px){
  body.workspace-ui-ready.workspace-left-pinned .workspace-layout,
  body.workspace-ui-ready.workspace-right-pinned .workspace-layout,
  body.workspace-ui-ready.workspace-left-pinned.workspace-right-pinned .workspace-layout{grid-template-columns:minmax(0,1fr)!important;}
  body.workspace-ui-ready.workspace-left-pinned .left-col,
  body.workspace-ui-ready.workspace-right-pinned .right-col{
    display:block!important;
    position:fixed!important;
    top:var(--workspace-panel-top)!important;
    z-index:820!important;
    width:var(--workspace-drawer-width)!important;
    max-height:calc(100vh - var(--workspace-panel-top) - 12px)!important;
    overflow:auto!important;
    padding:8px!important;
    border:1px solid #d5e0e7;
    border-radius:12px;
    background:#f5f8fa;
    box-shadow:0 24px 60px rgba(17,39,58,.24);
  }
  body.workspace-ui-ready.workspace-left-pinned .left-col{left:12px!important;right:auto!important;grid-column:auto;}
  body.workspace-ui-ready.workspace-right-pinned .right-col{right:12px!important;left:auto!important;grid-column:auto;}
  body.workspace-ui-ready .center-col{grid-column:1!important;}
}

@media(max-width:760px){
  .workspace-quickbar{grid-template-columns:1fr auto 1fr;gap:5px;padding:5px 7px;}
  .workspace-panel-toggle{padding:6px 7px;font-size:10px;}
  .workspace-shortcut-inline{display:none;}
  .workspace-focus-label{display:none;}
  .workspace-shortcut-help{width:32px;padding:0;font-size:0;}
  .workspace-shortcut-help span{font-size:15px;}
  .workspace-shortcut-hint{justify-content:flex-start;overflow-x:auto;padding:5px 8px;}
  .workspace-shortcut-hint kbd{display:none;}
  :root{--workspace-drawer-width:calc(100vw - 16px);}
  body.workspace-ui-ready.workspace-left-open .left-col{left:8px!important;}
  body.workspace-ui-ready.workspace-right-open .right-col{right:8px!important;}
}

/* ==========================================================
   GO-CCTB V3.11.1A — Rédaction pleine largeur + panneaux larges
   flottants ou ancrés. Cette section surcharge V3.11.0Z.
   ========================================================== */
:root{
  --workspace-left-float-width:clamp(520px,42vw,760px);
  --workspace-right-float-width:clamp(460px,36vw,660px);
  --workspace-left-anchor-width:clamp(330px,23vw,430px);
  --workspace-right-anchor-width:clamp(290px,20vw,380px);
  --workspace-layout-gap:12px;
}

/* Le mode rédaction utilise réellement toute la largeur disponible. */
body.workspace-ui-ready .workspace-layout{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:12px 14px 22px!important;
  grid-template-columns:minmax(0,1fr)!important;
  gap:var(--workspace-layout-gap)!important;
}
body.workspace-ui-ready .center-col{
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  grid-column:1!important;
}

/* Les fenêtres flottantes sont de vraies fenêtres : plus larges, plus hautes,
   sans voile modal et avec le projet toujours accessible derrière. */
body.workspace-ui-ready .workspace-panel-backdrop{display:none!important;}
body.workspace-ui-ready.workspace-left-open:not(.workspace-left-pinned) .left-col,
body.workspace-ui-ready.workspace-right-open:not(.workspace-right-pinned) .right-col{
  top:var(--workspace-panel-top)!important;
  bottom:10px!important;
  max-height:none!important;
  height:auto!important;
  padding:10px!important;
  border-radius:13px!important;
  background:#f5f8fa!important;
  box-shadow:0 24px 64px rgba(17,39,58,.25)!important;
}
body.workspace-ui-ready.workspace-left-open:not(.workspace-left-pinned) .left-col{
  width:var(--workspace-left-float-width)!important;
  left:14px!important;
  right:auto!important;
}
body.workspace-ui-ready.workspace-right-open:not(.workspace-right-pinned) .right-col{
  width:var(--workspace-right-float-width)!important;
  right:14px!important;
  left:auto!important;
}

/* Un panneau ancré reprend sa place dans la grille et réduit réellement
   l'espace central, sans déplacer ni recréer son contenu. */
body.workspace-ui-ready.workspace-left-pinned:not(.workspace-right-pinned) .workspace-layout{
  grid-template-columns:var(--workspace-left-anchor-width) minmax(0,1fr)!important;
}
body.workspace-ui-ready.workspace-left-pinned:not(.workspace-right-pinned) .left-col{
  display:block!important;
  grid-column:1!important;
  position:sticky!important;
  top:58px!important;
  max-height:calc(100vh - 70px)!important;
  overflow:auto!important;
}
body.workspace-ui-ready.workspace-left-pinned:not(.workspace-right-pinned) .center-col{
  grid-column:2!important;
}

body.workspace-ui-ready.workspace-right-pinned:not(.workspace-left-pinned) .workspace-layout{
  grid-template-columns:minmax(0,1fr) var(--workspace-right-anchor-width)!important;
}
body.workspace-ui-ready.workspace-right-pinned:not(.workspace-left-pinned) .center-col{
  grid-column:1!important;
}
body.workspace-ui-ready.workspace-right-pinned:not(.workspace-left-pinned) .right-col{
  display:block!important;
  grid-column:2!important;
  position:sticky!important;
  top:58px!important;
  max-height:calc(100vh - 70px)!important;
  overflow:auto!important;
}

body.workspace-ui-ready.workspace-left-pinned.workspace-right-pinned .workspace-layout{
  grid-template-columns:var(--workspace-left-anchor-width) minmax(0,1fr) var(--workspace-right-anchor-width)!important;
}
body.workspace-ui-ready.workspace-left-pinned.workspace-right-pinned .left-col{
  display:block!important;
  grid-column:1!important;
  position:sticky!important;
  top:58px!important;
  max-height:calc(100vh - 70px)!important;
  overflow:auto!important;
}
body.workspace-ui-ready.workspace-left-pinned.workspace-right-pinned .center-col{
  grid-column:2!important;
}
body.workspace-ui-ready.workspace-left-pinned.workspace-right-pinned .right-col{
  display:block!important;
  grid-column:3!important;
  position:sticky!important;
  top:58px!important;
  max-height:calc(100vh - 70px)!important;
  overflow:auto!important;
}

/* L'état ancré doit se lire immédiatement dans la barre supérieure. */
.workspace-panel-toggle.is-pinned{
  background:#e8f3f4!important;
  border-color:#6faeb2!important;
  box-shadow:inset 0 0 0 1px rgba(43,74,207,.05);
}
.workspace-focus-label{font-size:11px;}
.workspace-floating-actions .secondary{min-width:62px;}

/* On garde l'ancrage utile sur ordinateur portable ; sous 980 px, les panneaux
   redeviennent flottants pour ne pas écraser la zone de rédaction. */
@media(max-width:1250px){
  :root{
    --workspace-left-anchor-width:320px;
    --workspace-right-anchor-width:285px;
    --workspace-left-float-width:min(640px,calc(100vw - 28px));
    --workspace-right-float-width:min(580px,calc(100vw - 28px));
  }
  body.workspace-ui-ready.workspace-left-pinned.workspace-right-pinned .workspace-layout{
    grid-template-columns:300px minmax(0,1fr) 270px!important;
  }
  body.workspace-ui-ready.workspace-left-pinned.workspace-right-pinned .project-command-bar{
    flex-wrap:wrap;
  }
}

@media(max-width:980px){
  body.workspace-ui-ready.workspace-left-pinned .workspace-layout,
  body.workspace-ui-ready.workspace-right-pinned .workspace-layout,
  body.workspace-ui-ready.workspace-left-pinned.workspace-right-pinned .workspace-layout{
    grid-template-columns:minmax(0,1fr)!important;
  }
  body.workspace-ui-ready.workspace-left-pinned .center-col,
  body.workspace-ui-ready.workspace-right-pinned .center-col,
  body.workspace-ui-ready.workspace-left-pinned.workspace-right-pinned .center-col{
    grid-column:1!important;
  }
  body.workspace-ui-ready.workspace-left-pinned .left-col,
  body.workspace-ui-ready.workspace-right-pinned .right-col,
  body.workspace-ui-ready.workspace-left-pinned.workspace-right-pinned .left-col,
  body.workspace-ui-ready.workspace-left-pinned.workspace-right-pinned .right-col{
    position:fixed!important;
    top:var(--workspace-panel-top)!important;
    bottom:10px!important;
    z-index:820!important;
    max-height:none!important;
    height:auto!important;
    overflow:auto!important;
    padding:10px!important;
    border:1px solid #d5e0e7!important;
    border-radius:13px!important;
    background:#f5f8fa!important;
    box-shadow:0 24px 64px rgba(17,39,58,.25)!important;
  }
  body.workspace-ui-ready.workspace-left-pinned .left-col,
  body.workspace-ui-ready.workspace-left-pinned.workspace-right-pinned .left-col{
    width:var(--workspace-left-float-width)!important;
    left:10px!important;
    right:auto!important;
    grid-column:auto!important;
  }
  body.workspace-ui-ready.workspace-right-pinned .right-col,
  body.workspace-ui-ready.workspace-left-pinned.workspace-right-pinned .right-col{
    width:var(--workspace-right-float-width)!important;
    right:10px!important;
    left:auto!important;
    grid-column:auto!important;
  }
}

@media(max-width:760px){
  :root{
    --workspace-left-float-width:calc(100vw - 16px);
    --workspace-right-float-width:calc(100vw - 16px);
  }
  body.workspace-ui-ready .workspace-layout{padding:8px!important;}
  body.workspace-ui-ready.workspace-left-open:not(.workspace-left-pinned) .left-col,
  body.workspace-ui-ready.workspace-left-pinned .left-col{
    left:8px!important;
  }
  body.workspace-ui-ready.workspace-right-open:not(.workspace-right-pinned) .right-col,
  body.workspace-ui-ready.workspace-right-pinned .right-col{
    right:8px!important;
  }
}

/* ==========================================================
   GO-CCTB V3.11.1B — Recherche permanente + Outils flottants
   Surcharge les expérimentations Z / 1A : la colonne gauche
   reste toujours visible, la droite est uniquement flottante.
   ========================================================== */
:root{
  --workspace-left-fixed-width:clamp(360px,24vw,460px);
  --workspace-right-float-width:clamp(600px,42vw,800px);
  --workspace-layout-gap:14px;
}

body.workspace-ui-ready .workspace-layout,
body.workspace-ui-ready.workspace-right-open .workspace-layout{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:12px 14px 22px!important;
  display:grid!important;
  grid-template-columns:var(--workspace-left-fixed-width) minmax(0,1fr)!important;
  gap:var(--workspace-layout-gap)!important;
  align-items:start!important;
}
body.workspace-ui-ready .left-col,
body.workspace-ui-ready.workspace-left-open .left-col,
body.workspace-ui-ready.workspace-left-pinned .left-col{
  display:block!important;
  grid-column:1!important;
  position:sticky!important;
  top:58px!important;
  left:auto!important;
  right:auto!important;
  width:auto!important;
  height:auto!important;
  max-height:calc(100vh - 70px)!important;
  overflow:auto!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
body.workspace-ui-ready .center-col,
body.workspace-ui-ready.workspace-left-pinned .center-col,
body.workspace-ui-ready.workspace-right-pinned .center-col,
body.workspace-ui-ready.workspace-left-pinned.workspace-right-pinned .center-col{
  display:block!important;
  grid-column:2!important;
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
}
body.workspace-ui-ready .right-col,
body.workspace-ui-ready.workspace-right-pinned .right-col,
body.workspace-ui-ready.workspace-left-pinned.workspace-right-pinned .right-col{
  display:none!important;
}
body.workspace-ui-ready.workspace-right-open .right-col,
body.workspace-ui-ready.workspace-right-open:not(.workspace-right-pinned) .right-col,
body.workspace-ui-ready.workspace-right-open.workspace-right-pinned .right-col{
  display:block!important;
  position:fixed!important;
  z-index:820!important;
  top:var(--workspace-panel-top)!important;
  right:14px!important;
  bottom:10px!important;
  left:auto!important;
  grid-column:auto!important;
  width:var(--workspace-right-float-width)!important;
  height:auto!important;
  max-height:none!important;
  overflow:auto!important;
  padding:10px!important;
  border:1px solid #d5e0e7!important;
  border-radius:13px!important;
  background:#f5f8fa!important;
  box-shadow:0 24px 64px rgba(17,39,58,.25)!important;
  scrollbar-gutter:stable;
}
body.workspace-ui-ready .workspace-panel-backdrop{display:none!important;}

.workspace-quickbar-right-only{
  grid-template-columns:minmax(210px,auto) 1fr auto;
}
.workspace-quickbar-left-status{
  display:flex;
  align-items:center;
  gap:7px;
  min-width:0;
  color:#41596c;
  font-size:11px;
  font-weight:760;
}
.workspace-permanent-label{
  padding:2px 6px;
  border-radius:999px;
  background:#eef3f6;
  color:#758694;
  font-size:9px;
  font-weight:700;
}
.workspace-quickbar-right-only .workspace-focus-label{font-size:11px;}
.workspace-quickbar-right-only .workspace-panel-toggle-right{min-width:168px;}

/* La fenêtre de droite seule possède une barre de fenêtre. */
body.workspace-ui-ready .right-col > .workspace-floating-head{
  position:sticky;
  top:0;
  z-index:3;
  margin-bottom:9px;
}

@media(max-width:1180px){
  :root{
    --workspace-left-fixed-width:330px;
    --workspace-right-float-width:min(700px,calc(100vw - 28px));
  }
}

@media(max-width:920px){
  body.workspace-ui-ready .workspace-layout,
  body.workspace-ui-ready.workspace-right-open .workspace-layout{
    grid-template-columns:minmax(0,1fr)!important;
  }
  body.workspace-ui-ready .left-col,
  body.workspace-ui-ready.workspace-left-open .left-col,
  body.workspace-ui-ready.workspace-left-pinned .left-col{
    grid-column:1!important;
    position:static!important;
    max-height:none!important;
    overflow:visible!important;
  }
  body.workspace-ui-ready .center-col,
  body.workspace-ui-ready.workspace-left-pinned .center-col,
  body.workspace-ui-ready.workspace-right-pinned .center-col,
  body.workspace-ui-ready.workspace-left-pinned.workspace-right-pinned .center-col{
    grid-column:1!important;
  }
  .workspace-permanent-label{display:none;}
}

@media(max-width:760px){
  :root{--workspace-right-float-width:calc(100vw - 16px);}
  .workspace-quickbar-right-only{grid-template-columns:auto 1fr auto;}
  .workspace-quickbar-left-status span:not(.workspace-panel-toggle-icon){display:none;}
  .workspace-quickbar-right-only .workspace-panel-toggle-right{min-width:0;}
  body.workspace-ui-ready.workspace-right-open .right-col,
  body.workspace-ui-ready.workspace-right-open:not(.workspace-right-pinned) .right-col{
    right:8px!important;
  }
}

/* =========================================================
   GO-CCTB V3.11.1D — Scroll réellement visible de la fenêtre Outils
   Le panneau est borné à la hauteur de la fenêtre et possède son
   propre ascenseur vertical, sans déplacer son contenu ni ses états.
   ========================================================= */
body.workspace-ui-ready.workspace-right-open .right-col,
body.workspace-ui-ready.workspace-right-open:not(.workspace-right-pinned) .right-col,
body.workspace-ui-ready.workspace-right-open.workspace-right-pinned .right-col{
  top:var(--workspace-panel-top)!important;
  right:14px!important;
  bottom:10px!important;
  height:auto!important;
  max-height:none!important;
  min-height:0!important;
  box-sizing:border-box!important;
  overflow-y:scroll!important;
  overflow-x:hidden!important;
  overscroll-behavior-y:contain;
  scrollbar-gutter:stable;
  scrollbar-width:auto;
  scrollbar-color:#8fa2b0 #e7eef3;
  -webkit-overflow-scrolling:touch;
}

/* En-tête toujours accessible pendant le défilement du panneau. */
body.workspace-ui-ready.workspace-right-open .right-col > .workspace-floating-head{
  position:sticky!important;
  top:-10px!important;
  z-index:8!important;
  margin:-10px -10px 9px!important;
  padding:10px 14px 10px 10px!important;
  background:#f5f8fa!important;
  border-bottom:1px solid #d9e3ea!important;
}

/* Ascenseur volontairement visible sur Chrome / Edge / Safari. */
body.workspace-ui-ready.workspace-right-open .right-col::-webkit-scrollbar{
  width:14px!important;
}
body.workspace-ui-ready.workspace-right-open .right-col::-webkit-scrollbar-track{
  background:#e7eef3!important;
  border-radius:999px!important;
}
body.workspace-ui-ready.workspace-right-open .right-col::-webkit-scrollbar-thumb{
  min-height:44px!important;
  background:#8fa2b0!important;
  border:3px solid #e7eef3!important;
  border-radius:999px!important;
}
body.workspace-ui-ready.workspace-right-open .right-col::-webkit-scrollbar-thumb:hover{
  background:#6f8595!important;
}

@media(max-width:760px){
  body.workspace-ui-ready.workspace-right-open .right-col,
  body.workspace-ui-ready.workspace-right-open:not(.workspace-right-pinned) .right-col{
    right:8px!important;
    bottom:8px!important;
  }
}

/* =========================================================
   GO-CCTB V3.11.1E — Outils : zone de défilement dédiée
   Le panneau flottant est un cadre fixe. Son contenu devient le
   seul élément scrollable et un ascenseur GO-CCTB reste visible,
   indépendamment des barres de défilement masquées par Windows/Chrome.
   ========================================================= */
body.workspace-ui-ready.workspace-right-open .right-col,
body.workspace-ui-ready.workspace-right-open:not(.workspace-right-pinned) .right-col,
body.workspace-ui-ready.workspace-right-open.workspace-right-pinned .right-col{
  display:flex!important;
  flex-direction:column!important;
  overflow:hidden!important;
  padding:0!important;
  isolation:isolate;
}

body.workspace-ui-ready.workspace-right-open .right-col > .workspace-floating-head{
  position:relative!important;
  top:auto!important;
  flex:0 0 auto!important;
  margin:0!important;
  padding:11px 18px 10px 12px!important;
  background:#f5f8fa!important;
  border-bottom:1px solid #d9e3ea!important;
  border-radius:13px 13px 0 0!important;
  z-index:6!important;
}

body.workspace-ui-ready.workspace-right-open .right-col > .project-tools-card{
  position:relative!important;
  flex:1 1 auto!important;
  min-height:0!important;
  height:0!important;
  margin:0!important;
  padding:10px 28px 14px 10px!important;
  border:0!important;
  border-radius:0 0 13px 13px!important;
  box-shadow:none!important;
  overflow-y:scroll!important;
  overflow-x:hidden!important;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none!important;
}
body.workspace-ui-ready.workspace-right-open .right-col > .project-tools-card::-webkit-scrollbar{
  width:0!important;
  height:0!important;
  display:none!important;
}

/* Ancien ascenseur natif du conteneur externe : neutralisé. */
body.workspace-ui-ready.workspace-right-open .right-col::-webkit-scrollbar{
  width:0!important;
  height:0!important;
  display:none!important;
}

/* Ascenseur permanent GO-CCTB. */
.workspace-tools-scroll-rail{
  position:absolute;
  z-index:12;
  top:52px;
  right:7px;
  bottom:9px;
  width:13px;
  border-radius:999px;
  background:#dce6ec;
  border:1px solid #c9d6de;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.45);
  cursor:pointer;
  touch-action:none;
}
.workspace-tools-scroll-thumb{
  position:absolute;
  left:2px;
  right:2px;
  top:2px;
  min-height:44px;
  border-radius:999px;
  background:#718797;
  box-shadow:0 1px 3px rgba(17,39,58,.22);
  cursor:grab;
  touch-action:none;
}
.workspace-tools-scroll-thumb:hover,
.workspace-tools-scroll-rail:hover .workspace-tools-scroll-thumb{
  background:#526b7c;
}
.workspace-tools-scroll-thumb.is-dragging{
  cursor:grabbing;
  background:#3f596b;
}
.workspace-tools-scroll-rail.is-disabled{
  opacity:.5;
  cursor:default;
}
.workspace-tools-scroll-rail.is-disabled .workspace-tools-scroll-thumb{
  cursor:default;
  background:#aebcc6;
}

/* Petit repère visuel : l'utilisateur voit immédiatement que la
   fenêtre possède sa propre zone de défilement. */
.workspace-tools-scroll-rail::before,
.workspace-tools-scroll-rail::after{
  position:absolute;
  left:50%;
  transform:translateX(-50%);
  color:#6d8291;
  font-size:8px;
  line-height:1;
  pointer-events:none;
}
.workspace-tools-scroll-rail::before{content:'▲';top:-11px;}
.workspace-tools-scroll-rail::after{content:'▼';bottom:-11px;}

@media(max-width:760px){
  .workspace-tools-scroll-rail{right:5px;width:12px;}
  body.workspace-ui-ready.workspace-right-open .right-col > .project-tools-card{
    padding-right:25px!important;
  }
}


/* =========================================================
   GO-CCTB V3.11.1F — Curseur Outils réellement permanent
   Le rail et le curseur sont présents directement dans le HTML.
   Ils ne dépendent donc plus de la création dynamique par JavaScript.
   ========================================================= */
body.workspace-ui-ready.workspace-right-open .right-col{
  position:fixed!important;
  overflow:hidden!important;
}
body.workspace-ui-ready.workspace-right-open .right-col > .project-tools-card{
  overflow-y:auto!important;
  overflow-x:hidden!important;
  padding-right:40px!important;
  scrollbar-width:thin!important;
  scrollbar-color:#7890a0 #dbe5eb!important;
}
body.workspace-ui-ready.workspace-right-open .right-col > .project-tools-card::-webkit-scrollbar{
  display:block!important;
  width:10px!important;
}
body.workspace-ui-ready.workspace-right-open .right-col > .project-tools-card::-webkit-scrollbar-track{
  background:#dbe5eb!important;
}
body.workspace-ui-ready.workspace-right-open .right-col > .project-tools-card::-webkit-scrollbar-thumb{
  background:#7890a0!important;
  border:2px solid #dbe5eb!important;
  border-radius:999px!important;
}

/* Rail GO-CCTB : volontairement très visible. */
.workspace-tools-scroll-rail{
  display:none;
  position:absolute!important;
  z-index:50!important;
  top:55px!important;
  right:7px!important;
  bottom:12px!important;
  width:19px!important;
  min-height:80px!important;
  border:1px solid #aebfca!important;
  border-radius:999px!important;
  background:#d4e0e7!important;
  box-shadow:inset 0 0 0 2px rgba(255,255,255,.55),0 1px 4px rgba(29,53,69,.16)!important;
  cursor:pointer!important;
  touch-action:none!important;
}
body.workspace-ui-ready.workspace-right-open .workspace-tools-scroll-rail{
  display:block!important;
}
.workspace-tools-scroll-thumb{
  display:block!important;
  position:absolute!important;
  z-index:51!important;
  left:3px!important;
  right:3px!important;
  top:3px!important;
  min-height:64px!important;
  border-radius:999px!important;
  background:#3f5d70!important;
  border:1px solid #2e4a5c!important;
  box-shadow:0 2px 5px rgba(17,39,58,.28)!important;
  cursor:grab!important;
  touch-action:none!important;
}
.workspace-tools-scroll-thumb::after{
  content:'≡';
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%) rotate(90deg);
  color:#fff;
  font-size:13px;
  line-height:1;
  opacity:.95;
  pointer-events:none;
}
.workspace-tools-scroll-thumb:hover,
.workspace-tools-scroll-rail:hover .workspace-tools-scroll-thumb{
  background:#294c61!important;
}
.workspace-tools-scroll-rail.is-disabled{
  opacity:.8!important;
}
.workspace-tools-scroll-rail.is-disabled .workspace-tools-scroll-thumb{
  background:#748b99!important;
}
.workspace-tools-scroll-rail::before,
.workspace-tools-scroll-rail::after{
  display:none!important;
}

@media(max-width:760px){
  .workspace-tools-scroll-rail{right:5px!important;width:17px!important;}
  body.workspace-ui-ready.workspace-right-open .right-col > .project-tools-card{padding-right:34px!important;}
}

/* =========================================================
   GO-CCTB V3.11.1G — Fenêtre Outils presque pleine hauteur
   La fenêtre flottante exploite désormais presque toute la hauteur
   du viewport. Le contenu et le curseur restent inchangés.
   ========================================================= */
body.workspace-ui-ready.workspace-right-open .right-col,
body.workspace-ui-ready.workspace-right-open:not(.workspace-right-pinned) .right-col,
body.workspace-ui-ready.workspace-right-open.workspace-right-pinned .right-col{
  top:8px!important;
  bottom:8px!important;
  height:auto!important;
  min-height:0!important;
  max-height:calc(100dvh - 16px)!important;
}

/* Le panneau peut recouvrir la barre supérieure : son propre en-tête
   et son bouton de fermeture restent toujours accessibles. */
body.workspace-ui-ready.workspace-right-open .right-col > .workspace-floating-head{
  flex:0 0 auto!important;
}
body.workspace-ui-ready.workspace-right-open .right-col > .project-tools-card{
  flex:1 1 auto!important;
  min-height:0!important;
}

@media(max-width:760px){
  body.workspace-ui-ready.workspace-right-open .right-col,
  body.workspace-ui-ready.workspace-right-open:not(.workspace-right-pinned) .right-col{
    top:6px!important;
    bottom:6px!important;
    max-height:calc(100dvh - 12px)!important;
  }
}

/* =========================================================
   GO-CCTB V3.11.1H — Hauteur Outils fiabilisée
   Correction : le panneau flottant reçoit une hauteur explicite de
   viewport. On ne dépend plus du couple top+bottom avec height:auto,
   qui pouvait être résolu trop court selon le navigateur/contexte.
   ========================================================= */
body.workspace-ui-ready.workspace-right-open .right-col,
body.workspace-ui-ready.workspace-right-open:not(.workspace-right-pinned) .right-col,
body.workspace-ui-ready.workspace-right-open.workspace-right-pinned .right-col{
  top:8px!important;
  right:14px!important;
  bottom:auto!important;
  height:calc(100vh - 16px)!important;
  height:calc(100dvh - 16px)!important;
  min-height:420px!important;
  max-height:none!important;
  display:grid!important;
  grid-template-rows:auto minmax(0,1fr)!important;
  align-content:stretch!important;
  overflow:hidden!important;
  box-sizing:border-box!important;
}
body.workspace-ui-ready.workspace-right-open .right-col > .workspace-floating-head{
  grid-row:1!important;
  min-height:44px!important;
}
body.workspace-ui-ready.workspace-right-open .right-col > .project-tools-card{
  grid-row:2!important;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  flex:none!important;
  align-self:stretch!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
}
.workspace-tools-scroll-rail{
  top:58px!important;
  bottom:12px!important;
}

@media(max-height:520px){
  body.workspace-ui-ready.workspace-right-open .right-col,
  body.workspace-ui-ready.workspace-right-open:not(.workspace-right-pinned) .right-col,
  body.workspace-ui-ready.workspace-right-open.workspace-right-pinned .right-col{
    min-height:0!important;
    height:calc(100vh - 12px)!important;
    height:calc(100dvh - 12px)!important;
    top:6px!important;
  }
}

@media(max-width:760px){
  body.workspace-ui-ready.workspace-right-open .right-col,
  body.workspace-ui-ready.workspace-right-open:not(.workspace-right-pinned) .right-col{
    top:6px!important;
    right:8px!important;
    bottom:auto!important;
    height:calc(100vh - 12px)!important;
    height:calc(100dvh - 12px)!important;
    min-height:0!important;
    max-height:none!important;
  }
}


/* ==========================================================================
   V3.11.2 — Landing page publique (index.html)
   Classes namespacées "lp-" pour ne jamais interférer avec l'app (app.html).
   ========================================================================== */

.lp-body{
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:Inter,Segoe UI,Arial,sans-serif;
}

.lp-nav{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:16px 28px;
  background:#fff;
  border-bottom:1px solid var(--line);
  position:sticky;
  top:0;
  z-index:5;
}
.lp-nav-brand{
  display:flex;
  align-items:center;
  gap:10px;
  font-weight:900;
  font-size:18px;
  color:var(--dark);
}
.lp-nav-brand img{height:32px;width:auto}
.lp-nav-cta{
  padding:9px 16px;
  font-size:14px;
}

.lp-main{
  max-width:1080px;
  margin:0 auto;
  padding:0 24px;
}

.lp-hero{
  text-align:center;
  padding:72px 0 56px;
}
.lp-eyebrow{
  display:inline-block;
  padding:4px 12px;
  border-radius:999px;
  background:rgba(43,74,207,.12);
  color:#2B4ACF;
  font-weight:800;
  font-size:12.5px;
  letter-spacing:.02em;
  margin-bottom:18px;
}
.lp-hero h1{
  font-size:clamp(28px,4.4vw,44px);
  line-height:1.15;
  margin:0 auto 18px;
  max-width:780px;
  color:var(--dark);
}
.lp-hero-sub{
  max-width:600px;
  margin:0 auto 30px;
  color:var(--muted);
  font-size:17px;
  line-height:1.6;
}
.lp-hero-actions{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:12px;
}
.lp-cta-primary{
  display:inline-flex;
  justify-content:center;
  min-width:230px;
  padding:14px 26px;
  font-size:15.5px;
  font-weight:900;
  text-decoration:none;
  border-radius:12px;
}
.lp-hero-note{
  font-size:13px;
  color:var(--muted);
}

.lp-steps{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
  margin:0 0 56px;
}
.lp-step{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:18px;
  padding:24px 20px;
  box-shadow:0 10px 30px rgba(2,8,23,.05);
}
.lp-step-num{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:30px;
  height:30px;
  border-radius:999px;
  background:var(--dark);
  color:#fff;
  font-weight:800;
  font-size:14px;
  margin-bottom:12px;
}
.lp-step h3{
  margin:0 0 8px;
  font-size:16.5px;
  color:var(--dark);
}
.lp-step p{
  margin:0;
  color:var(--muted);
  font-size:14px;
  line-height:1.55;
}

.lp-pricing{margin:0 0 40px}
.lp-pricing-card{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:20px;
  padding:32px;
  box-shadow:0 10px 30px rgba(2,8,23,.05);
  text-align:center;
}
.lp-pricing-card h2{
  margin:0 0 10px;
  font-size:23px;
  color:var(--dark);
}
.lp-pricing-lead{
  max-width:560px;
  margin:0 auto 26px;
  color:var(--muted);
  font-size:14.5px;
  line-height:1.6;
}
.lp-pricing-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
  text-align:left;
}
.lp-pricing-item{
  border:1px solid var(--line);
  border-radius:14px;
  padding:20px;
}
.lp-pricing-item b{
  display:block;
  font-size:13px;
  color:var(--muted);
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.03em;
  margin-bottom:6px;
}
.lp-price{
  display:block;
  font-size:26px;
  font-weight:900;
  color:var(--dark);
  margin-bottom:8px;
}
.lp-pricing-item p{
  margin:0;
  font-size:13.5px;
  color:var(--muted);
  line-height:1.5;
}
.lp-pricing-item-highlight{
  border-color:var(--accent);
  background:rgba(43,74,207,.05);
}
.lp-pricing-item-highlight .lp-price{color:var(--accent)}

.lp-spw-notice{margin:0 0 56px}

.lp-final-cta{
  text-align:center;
  padding:48px 0 64px;
}
.lp-final-cta h2{
  font-size:24px;
  color:var(--dark);
  margin:0 0 20px;
}

.lp-footer{
  text-align:center;
  padding:22px 16px 32px;
  color:var(--muted);
  font-size:12.5px;
}

@media(max-width:800px){
  .lp-steps{grid-template-columns:1fr}
  .lp-pricing-grid{grid-template-columns:1fr}
  .lp-hero{padding:48px 0 40px}
}


/* ==========================================================================
   V3.11.2 — Petits accents UX additifs (n'écrasent aucune règle existante)
   ========================================================================== */

/* Fait ressortir "Aide rapide" quand elle est ouverte (ex. première visite). */
.quick-help-details[open]{
  border-color:var(--accent);
  box-shadow:0 0 0 3px rgba(43,74,207,.10);
}
.quick-help-details[open] > summary{
  color:var(--accent);
}


/* ==========================================================================
   V3.11.3 — Rafraîchissement design général
   Bloc ajouté en fin de fichier : grâce à la cascade CSS, ces règles
   l'emportent sur les déclarations plus anciennes de même spécificité,
   sans qu'il ait fallu modifier une seule ligne existante ailleurs.
   Rien n'est renommé ni déplacé : zéro risque pour le JavaScript.
   ========================================================================== */

:root{
  /* Le polices Inter est désormais réellement chargée (Google Fonts) :
     jusqu'ici la CSS la demandait mais aucun <link> ne la fournissait,
     donc tout le site s'affichait avec la police système par défaut. */
  --font-sans:'Inter',Segoe UI,Arial,sans-serif;

  /* Échelle d'ombres et de rayons cohérente, pour remplacer les valeurs
     ad hoc dispersées dans le fichier (14px par-ci, 18px par-là...). */
  --shadow-sm:0 1px 2px rgba(6,36,67,.06), 0 1px 1px rgba(6,36,67,.04);
  --shadow-md:0 8px 24px rgba(6,36,67,.08);
  --shadow-lg:0 20px 48px rgba(6,36,67,.12);
  --radius-sm:10px;
  --radius-md:14px;
  --radius-lg:20px;

  /* Teinte d'accent légèrement plus profonde au survol/actif. */
  --accent-hover:#233F9E;
  --accent-soft:#E8ECFB;
}

/* Note : pas de "scroll-behavior:smooth" global — la fenêtre Outils a un
   système de scroll/curseur personnalisé très sensible (6 correctifs
   successifs dans le changelog), et un scroll animé au niveau du
   document pourrait interférer avec son calcul de position. */

body{
  font-family:var(--font-sans);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

/* Transitions douces et cohérentes sur tous les éléments interactifs. */
button,.button,input,select,textarea,a,
.card,details>summary,.model-btn{
  transition:background-color .15s ease, border-color .15s ease,
             color .15s ease, box-shadow .15s ease, transform .1s ease;
}

/* États clavier visibles partout (accessibilité) — l'ancien fichier
   n'avait pas de :focus-visible dédié, seul le contour navigateur
   par défaut, souvent invisible sur fond blanc. */
button:focus-visible,.button:focus-visible,
input:focus-visible,select:focus-visible,textarea:focus-visible,
a:focus-visible{
  outline:2px solid var(--accent);
  outline-offset:2px;
}

/* Boutons : relief au survol, retour tactile au clic. */
button,.button{
  font-family:var(--font-sans);
  box-shadow:var(--shadow-sm);
}
button:hover,.button:hover{
  background:var(--accent-hover);
  box-shadow:var(--shadow-md);
  transform:translateY(-1px);
}
button:active,.button:active{
  transform:translateY(0);
  box-shadow:none;
}
button.secondary:hover,.button.secondary:hover{
  background:#d9edee;
  color:var(--dark);
}
button.danger:hover{
  background:#fdd0cb;
}
button:disabled,.button:disabled{
  opacity:.55;
  cursor:not-allowed;
  transform:none;
  box-shadow:none;
}

/* Champs de saisie : bordure plus nette au focus. */
input:focus,select:focus,textarea:focus{
  border-color:var(--accent);
  box-shadow:0 0 0 3px var(--accent-soft);
}

/* Cartes : ombre un peu plus douce et homogène, coin légèrement plus
   arrondi pour un rendu moins "boîte à formulaire". */
.card{
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-sm);
}

/* En-tête : séparation nette du corps de page + meilleure lisibilité
   du titre. */
.site-header{
  box-shadow:0 4px 20px rgba(6,36,67,.15);
  position:relative;
  z-index:2;
}
.site-header h1{
  font-weight:800;
  letter-spacing:-.01em;
}

/* Liens/boutons "pilule" du header un peu plus lisibles sur le dégradé. */
.header-account .account-pill,
.header-account .header-projects-btn,
.header-account .header-pay-btn{
  box-shadow:none;
}

/* Titres généraux : meilleure hiérarchie visuelle. */
h1,h2,h3{
  font-family:var(--font-sans);
  letter-spacing:-.01em;
}
.card h2{font-size:19px;font-weight:800;color:var(--dark)}
.card h3{font-size:15.5px;font-weight:750}

/* Panneaux repliables (détails/summary) : indicateur plus doux au survol. */
details>summary{cursor:pointer}
details>summary:hover{color:var(--accent)}

/* Scrollbar de page (hors fenêtre Outils, qui a déjà son propre curseur
   custom conservé tel quel) légèrement plus discrète. */
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{
  background:#c7d3e0;
  border-radius:999px;
  border:2px solid var(--bg);
}
::-webkit-scrollbar-thumb:hover{background:#aebcce}


/* ==========================================================================
   V3.11.4 — Choix de formule de crédit + affichage du solde réel
   ========================================================================== */

.credit-pack-choices{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  margin-top:14px;
}
.credit-pack-btn{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:2px;
  padding:14px 16px;
  border-radius:var(--radius-md,14px);
  border:1px solid var(--line);
  background:#fff;
  cursor:pointer;
  text-align:left;
}
.credit-pack-btn b{font-size:14px;color:var(--dark)}
.credit-pack-btn span{font-size:19px;font-weight:900;color:var(--dark)}
.credit-pack-btn small{font-size:11.5px;color:var(--muted)}
.credit-pack-btn-highlight{
  border-color:var(--accent);
  background:var(--accent-soft,#E8ECFB);
}
.credit-pack-btn-highlight span{color:var(--accent)}

@media(max-width:520px){
  .credit-pack-choices{grid-template-columns:1fr}
}

.account-credits-status{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px 16px;
  margin:12px 0;
  padding:12px 14px;
  border:1px solid var(--line);
  border-radius:var(--radius-md,14px);
  background:var(--bg);
}
.account-credits-status > div{
  display:flex;
  justify-content:space-between;
  gap:8px;
  font-size:13px;
}
.account-credits-status span{color:var(--muted)}
.account-credits-status b{color:var(--dark)}


/* ==========================================================================
   V3.11.12 — Assistant IA de rédaction
   ========================================================================== */

.ai-assist-toolbar{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px;
  margin:-8px 0 14px;
  padding:10px 12px;
  border-radius:12px;
  background:linear-gradient(135deg,rgba(43,74,207,.07),rgba(43,74,207,.02));
  border:1px dashed rgba(43,74,207,.35);
}
.ai-assist-toolbar button{
  font-size:12.5px;
  padding:7px 11px;
}
.ai-assist-toolbar button[data-ai-mode]{
  background:#fff;
  border:1px solid var(--accent);
  color:var(--accent);
  box-shadow:none;
}
.ai-assist-toolbar button[data-ai-mode]:hover{
  background:var(--accent);
  color:#fff;
}
.ai-assist-undo{
  font-size:12px;
  color:var(--muted);
}
.ai-assist-status{
  font-size:12px;
  color:var(--accent);
  font-style:italic;
}

.ai-assist-toolbar-compact{
  margin:8px 0 0;
  padding:6px 8px;
}
.ai-assist-toolbar-compact button{
  font-size:11.5px;
  padding:5px 9px;
}


/* ==========================================================================
   V3.11.18 — Vignettes de projet + dossiers
   ========================================================================== */

.project-thumb{
  position:relative;
  width:52px;
  height:52px;
  border-radius:12px;
  flex:0 0 auto;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  margin-right:12px;
  color:#fff;
  font-weight:800;
  font-size:16px;
}
.project-thumb img{
  width:100%;
  height:100%;
  object-fit:contain;
  background:#f4f6f8;
}
.project-card-main{
  display:flex;
  align-items:flex-start;
}
.thumb-edit-btn{
  position:absolute;
  right:2px;
  bottom:2px;
  width:20px;
  height:20px;
  padding:0;
  border-radius:999px;
  background:rgba(6,36,67,.65);
  color:#fff;
  border:none;
  font-size:11px;
  line-height:20px;
  cursor:pointer;
}

.project-folders-panel{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:6px;
  margin:0 0 10px;
}
.folder-tab{
  padding:6px 12px;
  border-radius:999px;
  border:1px solid var(--line);
  background:#fff;
  font-size:12.5px;
  cursor:pointer;
}
.folder-tab span{color:var(--muted); font-size:11px}
.folder-tab.active{
  background:var(--dark);
  color:#fff;
  border-color:var(--dark);
}
.folder-tab.active span{color:rgba(255,255,255,.75)}
.folder-tab-group{
  display:inline-flex;
  align-items:center;
  gap:2px;
}
.folder-tab-edit{
  width:22px;
  height:22px;
  padding:0;
  border-radius:999px;
  border:1px solid var(--line);
  background:#fff;
  font-size:11px;
  cursor:pointer;
  color:var(--muted);
}
.folder-tab-new{
  border-radius:999px;
  font-size:12.5px;
  padding:6px 12px;
}
.project-folder-select-label{
  display:flex;
  flex-direction:column;
  gap:4px;
  font-size:12px;
  color:var(--muted);
}
.project-folder-select-label select{
  padding:6px 8px;
  border-radius:8px;
  border:1px solid var(--line);
}
