:root{font-family:Segoe UI,Arial,sans-serif;color:#172033;background:#f5f7fa}body{margin:0}header{background:white;border-bottom:1px solid #dde3ec;padding:14px 5%;display:flex;justify-content:space-between;align-items:center}header strong{font-size:22px}header span{margin-left:12px;color:#637083}nav a{margin-left:18px;color:#244b7a;text-decoration:none}main{max-width:1200px;margin:28px auto;padding:0 20px}.card{background:white;border:1px solid #dde3ec;border-radius:12px;padding:22px;margin-bottom:20px;box-shadow:0 2px 10px #00000008}.narrow{max-width:420px;margin:70px auto}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:20px}.row{display:flex;justify-content:space-between;gap:20px;align-items:center}label{display:block;margin:14px 0;font-weight:600}input,select{display:block;width:100%;box-sizing:border-box;padding:10px;margin-top:6px;border:1px solid #cbd4df;border-radius:7px;background:white}button,.button{display:inline-block;background:#235b96;color:white;border:0;border-radius:7px;padding:10px 16px;text-decoration:none;cursor:pointer;margin-right:8px}.secondary{background:#64748b}.flash{padding:12px 16px;border-radius:8px;margin-bottom:18px}.flash.success{background:#e9f8ef}.flash.error{background:#fdecec}.tablewrap{overflow:auto;max-height:420px}table{border-collapse:collapse;width:100%;font-size:13px}th,td{border-bottom:1px solid #e6eaf0;padding:7px 9px;text-align:left;white-space:nowrap}code{background:#eef2f7;padding:2px 5px;border-radius:4px}.or{text-align:center;color:#798699;margin:8px}@media(max-width:800px){.grid2{grid-template-columns:1fr}.row{display:block}header{display:block}nav{margin-top:10px}nav a{margin-left:0;margin-right:14px}}
.contextbar{background:#eaf1f8;border:1px solid #ccd9e7;padding:10px 14px;border-radius:9px;margin-bottom:18px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.contextbar span{margin-right:auto}.small{padding:6px 10px;font-size:12px}.inline{display:inline}.danger{background:#a93636}.confirm{font-weight:600;background:#fff8e6;border:1px solid #ecd69b;padding:10px;border-radius:7px}.confirm input{display:inline;width:auto;margin-right:8px}.graph img{width:100%;min-height:420px}.hint{color:#637083;font-size:13px}select[multiple]{min-height:220px}
.graph-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:10px}
.graph-actions strong{margin-right:auto}
.zoom-frame{overflow:hidden;border:1px solid #d6dde7;border-radius:8px;background:white;cursor:grab;min-height:420px;touch-action:none}
.zoom-frame:active{cursor:grabbing}
.zoom-frame img{width:100%;display:block;transform-origin:0 0;transition:transform .03s linear;user-select:none;-webkit-user-drag:none}

.config-top-grid{display:grid;grid-template-columns:1fr 1fr 1.15fr;gap:16px;margin:14px 0 20px}.config-top-grid>div{border:1px solid #d9e0ea;border-radius:9px;padding:14px;min-width:0}.config-top-grid h3{margin-top:0}.source-line{display:flex;gap:8px;align-items:center;font-weight:500;margin:9px 0}.source-line input{width:auto}.config-section{border-top:1px solid #dde3eb;padding-top:17px;margin-top:17px}.section-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.section-head h3{margin:0}.config-review-grid{display:grid;grid-template-columns:minmax(280px,.8fr) minmax(360px,1.2fr);gap:18px;margin-top:14px}.summary-box{background:#f6f8fb;border-radius:8px;padding:14px}.summary-box h4{margin:0 0 12px}.summary-grid{display:grid;grid-template-columns:125px 1fr;gap:8px 12px;font-size:14px}.json-status{margin-top:10px;border:1px solid #b9c7d8;border-radius:8px;padding:10px 12px}.json-status.ok{background:#eef8f1;border-color:#9bc8a7}.json-status.error{background:#fff0f0;border-color:#d6a1a1}.json-panel textarea{min-height:260px;font-family:Consolas,monospace;font-size:13px}.effective-json{white-space:pre-wrap;overflow:auto;background:#f6f8fb;border:1px solid #d9e0ea;border-radius:8px;padding:14px;max-height:420px}.confirm-box{margin-top:14px;background:#fff8e6;border:1px solid #e2c26e;border-radius:8px;padding:14px}.final-action{text-align:right;margin-top:16px}.hidden{display:none!important}.muted{color:#67758a;font-size:13px}.actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:10px}
@media(max-width:850px){.config-top-grid,.config-review-grid{grid-template-columns:1fr}.summary-grid{grid-template-columns:110px 1fr}}
/* V0.3.1 - JSON BUILD/EVAL pleine largeur */
.config-review-grid{
  display:block;
  margin-top:14px;
}
.config-review-grid > div:first-child{
  max-width:520px;
}
.config-review-grid .json-panel{
  width:100%;
  margin-top:16px;
}
.config-review-grid .json-panel textarea{
  width:100%;
  min-height:420px;
  box-sizing:border-box;
}

.csv-name{
    max-width:100%;
    overflow-wrap:anywhere;
    word-break:break-word;
    line-height:1.25;
}


/* Jeu de données : nom utilisateur + identifiant technique */
.dataset-identity{min-width:0;max-width:780px}
.dataset-name-form{display:flex;align-items:end;gap:10px;flex-wrap:wrap;margin-top:12px}
.dataset-name-form label{margin:0;min-width:280px;flex:1}
.dataset-name-form input{margin-top:5px}
.dataset-name-form button{margin-bottom:0}

/* Multi-utilisateurs */
.account-chip{display:inline-block;margin-left:14px;padding:4px 8px;border-radius:999px;background:#eef2f7;color:#445166;font-size:12px}
.badge{display:inline-block;padding:3px 7px;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.03em}.badge.public{background:#e8f2ff;color:#15528a}.badge.private{background:#eef2f7;color:#566274}
.inline-input{display:inline-block!important;width:190px!important;margin:0 6px 0 0!important;padding:6px 8px!important}
@media(max-width:800px){.tablewrap{max-height:none}.inline-input{width:150px!important}.account-chip{margin-left:0;margin-right:10px;margin-top:8px}}

/* V1.1 — tableaux ressources : actions visibles en tête */
.resource-table .actions-col{position:sticky;left:0;z-index:2;background:#fff;min-width:190px;white-space:normal}
.resource-table thead .actions-col{z-index:3;background:#f8fafc}
.resource-table .name-col{width:220px;max-width:220px;white-space:normal;overflow-wrap:anywhere;word-break:break-word}
.action-stack{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.action-stack .button,.action-stack button{margin-right:0}
.narrow-account{max-width:560px}
@media(max-width:800px){.resource-table .actions-col{min-width:158px}.resource-table .name-col{width:170px;max-width:170px}.action-stack{gap:4px}}
.narrow-tech{max-width:780px}.narrow-tech input[type=text],.narrow-tech input:not([type]){width:100%}.check-line{display:flex;align-items:center;gap:8px}.check-line input{width:auto;margin:0}

/* V5 — page Simulation */
.json-editor{width:100%;min-height:360px;font-family:Consolas,"Courier New",monospace;font-size:.92rem;line-height:1.35;white-space:pre;tab-size:2;box-sizing:border-box}
.editor-actions{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;margin:.5rem 0 1rem}
.success-text{color:#1f7a39;font-weight:600}.error-text{color:#a32828;font-weight:600}.result-card{border-width:2px}
