@layer modules{
/* ============================================================================
   Dataset - onglet projet « Données » (CDC_FACTORY.md, Partie A · D6)
   Réutilise les tokens globaux (--bg/--panel/--line/--accent/--muted…).
   ========================================================================= */
.ds-wrap{display:flex;flex-direction:column;gap:var(--sp-12);height:100%}
.ds-wrap-empty{justify-content:center;align-items:center;flex:1}
.ds-empty-state{display:flex;flex-direction:column;align-items:center;gap:var(--sp-16);max-width:380px;text-align:center;padding:var(--sp-40) var(--sp-24)}
.ds-empty-icon{flex-shrink:0}
.ds-empty-title{font-size:var(--fs-lg);font-weight:var(--fw-bold)}
.ds-empty-desc{font-size:var(--fs-md);color:var(--muted);line-height:1.6}
.ds-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-12);padding-bottom:var(--sp-4);border-bottom:1px solid var(--line)}
.ds-up{cursor:pointer;display:inline-flex;align-items:center;gap:var(--sp-6);white-space:nowrap;flex-shrink:0}
.ds-up.busy{opacity:.5;pointer-events:none}
.ds-hint{font-size:var(--fs-sm)}
.ds-body{display:flex;gap:var(--sp-14);align-items:flex-start;min-height:0;flex:1;padding-top:var(--sp-4)}
.ds-list{width:220px;flex:0 0 220px;display:flex;flex-direction:column;gap:var(--sp-6)}
.ds-item{display:flex;flex-direction:column;align-items:flex-start;gap:var(--sp-2);position:relative;
  text-align:left;padding:var(--sp-10) var(--sp-12);border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);cursor:pointer;transition:border-color .15s}
.ds-item:hover{border-color:var(--accent)}
.ds-item.on{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 30%,transparent)}
.ds-i-name{font-weight:var(--fw-strong)}
.ds-i-meta{font-size:var(--fs-xs);color:var(--muted)}
.ds-i-del{position:absolute;top:8px;right:10px;color:var(--muted);opacity:0;font-size:var(--fs-sm);transition:opacity .1s}
.ds-item:hover .ds-i-del{opacity:1}
.ds-i-del:hover{color:var(--err)}
.ds-pick{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-12);flex:1;min-height:200px;color:var(--muted);text-align:center}
.ds-pick-icon{opacity:.5}
.ds-pick-text{font-size:var(--fs-md)}
.ds-main{flex:1;min-width:0;display:flex;flex-direction:column}
.ds-detail{display:flex;flex-direction:column;gap:var(--sp-14)}
.ds-d-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-12)}
.ds-d-title{font-size:var(--fs-base);font-weight:var(--fw-bold)}
.ds-d-meta{font-size:var(--fs-sm)}
.ds-cols{display:flex;flex-wrap:wrap;gap:var(--sp-6)}
.ds-col{display:inline-flex;align-items:center;gap:var(--sp-4);padding:var(--sp-2) var(--sp-8);border:1px solid var(--line);
  border-radius:var(--radius-pill);font-size:var(--fs-sm);background:var(--panel)}
.ds-col i{font-style:normal;font-size:var(--fs-2xs);color:var(--muted)}
.ds-sel{border:1px solid var(--line);border-radius:var(--radius);padding:var(--sp-14);background:var(--panel);display:flex;flex-direction:column;gap:var(--sp-10)}
.ds-sec{font-weight:var(--fw-bold);font-size:var(--fs-base)}
.ds-crit{width:100%;resize:vertical;border:1px solid var(--line);border-radius:var(--radius);padding:var(--sp-10);
  background:var(--bg);color:inherit;font:inherit}
.ds-row{display:flex;align-items:center;gap:var(--sp-14);flex-wrap:wrap}
.ds-row label{display:flex;align-items:center;gap:var(--sp-6);font-size:var(--fs-md)}
.ds-row input[type=number]{width:80px;border:1px solid var(--line);border-radius:var(--radius);padding:var(--sp-6) var(--sp-8);background:var(--bg);color:inherit}
.ds-note{font-size:var(--fs-xs)}
.ds-res{margin-top:var(--sp-6);display:flex;flex-direction:column;gap:var(--sp-8)}
.ds-res-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-12)}
.ds-table-wrap{overflow:auto;max-height:60vh;border:1px solid var(--line);border-radius:var(--radius)}
.ds-table{border-collapse:collapse;width:100%;font-size:var(--fs-md)}
.ds-table th,.ds-table td{padding:var(--sp-6) var(--sp-10);border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}
.ds-table thead th{position:sticky;top:0;background:var(--panel);z-index:1;font-weight:var(--fw-strong)}
.ds-table tbody tr:hover{background:color-mix(in srgb,var(--accent) 8%,transparent)}
.ds-score{font-weight:var(--fw-bold);text-align:right}
.ds-why{white-space:normal;max-width:340px;color:var(--muted);font-size:var(--fs-sm)}
@media(max-width:860px){.ds-body{flex-direction:column}.ds-list{width:100%;flex:none;flex-direction:row;flex-wrap:wrap}}

}
