@layer modules{
/* ============================================================================
   Factory - tableau de bord plein écran #factory (CDC_FACTORY.md, Partie B · F6)
   Réutilise les tokens globaux. Vue plein écran (body.in-factory).
   ========================================================================= */
body.in-factory .col-profile,body.in-factory .col-report{display:none}
body.in-factory .split{grid-template-columns:1fr}
body.in-factory #grid{display:block;max-width:none}
.fx-wrap{display:flex;flex-direction:column;gap:var(--sp-14)}
.fx-wrap.fx-full{padding:var(--sp-18) var(--sp-22);max-width:1280px;margin:0 auto}
.fx-head{display:flex;align-items:center;gap:var(--sp-12);flex-wrap:wrap}
.fx-title{font-size:var(--fs-xl);font-weight:var(--fw-bold);margin:0}
.fx-sub{font-size:var(--fs-md);font-weight:var(--fw-regular);color:var(--muted)}
.fx-projsel{display:flex;align-items:center;gap:var(--sp-6);font-size:var(--fs-sm);color:var(--muted)}
.fx-projsel select{margin-left:var(--sp-4)}
.fx-body{display:flex;gap:var(--sp-16);align-items:flex-start}
.fx-list{width:250px;flex:0 0 250px;display:flex;flex-direction:column;gap:var(--sp-6)}
.fx-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-28) var(--sp-10) var(--sp-12);border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);cursor:pointer}
.fx-item:hover{border-color:var(--accent)}
.fx-item.on{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 30%,transparent)}
.fx-i-name{font-weight:var(--fw-bold)}
.fx-i-meta{font-size:var(--fs-xs);color:var(--muted)}
.fx-dot{position:absolute;top:12px;right:12px;width:9px;height:9px;border-radius:50%;background:var(--muted)}
.fx-dot.fx-on{background:var(--ok)}
.fx-dot.fx-pause{background:var(--warn)}
.fx-dot.fx-arch{background:var(--muted)}
.fx-main{flex:1;min-width:0}
.fx-pick{padding:var(--sp-16)}
.fx-detail{display:flex;flex-direction:column;gap:var(--sp-14)}
.fx-d-title{font-size:var(--fs-lg);font-weight:var(--fw-bold)}
.fx-kpis{display:flex;gap:var(--sp-10);flex-wrap:wrap}
.fx-kpi{flex:1;min-width:110px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);padding:var(--sp-12) var(--sp-14);text-align:center}
.fx-k-n{display:block;font-size:var(--fs-xl);font-weight:var(--fw-bold)}
.fx-k-l{font-size:var(--fs-xs);color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.fx-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);padding:var(--sp-14);display:flex;flex-direction:column;gap:var(--sp-10)}
.fx-sec{font-weight:var(--fw-bold);font-size:var(--fs-base)}
.fx-grid2{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-10)}
.fx-grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:var(--sp-10)}
.fx-card label{display:flex;flex-direction:column;gap:var(--sp-4);font-size:var(--fs-sm);color:var(--muted)}
.fx-card input,.fx-card textarea,.fx-card select{border:1px solid var(--line);border-radius:var(--radius);padding:var(--sp-8);background:var(--bg);color:inherit;font:inherit}
.fx-card textarea{resize:vertical}
.fx-row{display:flex;align-items:center;gap:var(--sp-10);flex-wrap:wrap}
.fx-note{font-size:var(--fs-xs)}
.fx-del{color:var(--err)}
.fx-procs{display:flex;flex-direction:column;gap:var(--sp-8)}
.fx-proc{display:flex;align-items:center;gap:var(--sp-10);border:1px solid var(--line);border-radius:var(--radius);padding:var(--sp-10) var(--sp-12)}
.fx-proc-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--sp-2)}
.fx-proc-main span{font-size:var(--fs-sm);margin-left:var(--sp-8)}
.fx-proc-goal{font-size:var(--fs-sm);margin-left:0!important}
.fx-proc-acts{display:flex;gap:var(--sp-6)}
.fx-jobs{display:flex;flex-direction:column;gap:var(--sp-4)}
.fx-job{display:flex;gap:var(--sp-10);align-items:center;font-size:var(--fs-sm);padding:var(--sp-4) 0;border-bottom:1px solid var(--line)}
.fx-job span:first-child{font-weight:var(--fw-bold);text-transform:uppercase;font-size:var(--fs-2xs);padding:var(--sp-2) var(--sp-6);border-radius:var(--radius-sm);background:color-mix(in srgb,var(--muted) 25%,transparent)}
.fx-job-done span:first-child{background:color-mix(in srgb,var(--ok) 30%,transparent)}
.fx-job-skipped span:first-child{background:color-mix(in srgb,var(--warn) 30%,transparent)}
.mono{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--muted)}
@media(max-width:900px){.fx-body{flex-direction:column}.fx-list{width:100%;flex:none;flex-direction:row;flex-wrap:wrap}.fx-grid2,.fx-grid3{grid-template-columns:1fr}}

}
