/* REGEN SITE MANAGER · wall.css
   Account 1, ÉCRAN ATELIER. Designed at 1920 x 1080 and scaled to the window.
   Sizes for a wall read from 4 to 6 m: where (poste number 44 px) and what (key figure 86 px, action to do 50 px) first,
   then the state word and the action lines (26 px and more); labels 18 px and more.
   State is never carried by colour alone: every tile prints the state word. */

.wall .w-frame{position:absolute;inset:0;padding:22px 36px 20px;display:grid;grid-template-rows:76px minmax(0,1fr) 98px;gap:16px;background:var(--ink)}
.wall .mono{font-size:18px}

/* ---------- top bar */
.w-top{display:flex;align-items:center;gap:24px;border-bottom:1px solid var(--steel);padding-bottom:14px;min-width:0}
.w-brand{display:flex;align-items:center;gap:22px;flex:none}
.w-site{display:flex;flex-direction:column;gap:3px;padding-left:22px;border-left:1px solid var(--steel)}
.w-site .mono{letter-spacing:.08em;text-transform:uppercase;color:var(--silver);line-height:1.25;white-space:nowrap}
.w-site .prod{color:var(--paper);font-weight:700}
.w-top h1{font-family:var(--display);font-weight:400;font-size:46px;line-height:1;text-transform:uppercase;letter-spacing:.01em;margin:0;white-space:nowrap}
.w-nav{margin-left:auto;display:flex;gap:14px;flex:none}
.w-ind{display:block;width:150px;text-decoration:none;color:var(--dim)}
.w-ind .mono{display:block;text-transform:uppercase;letter-spacing:.02em;margin-bottom:8px;white-space:nowrap}
.w-ind .mono b{font-weight:700;margin-right:4px}
.w-ind i{display:block;height:6px;background:var(--graphite)}
.w-ind u{display:block;height:100%;width:0;background:var(--green);text-decoration:none}
.w-ind.on{color:var(--paper)}
.w-ind:not(.on) u{width:0 !important}
.w-ind.past u{width:100% !important;background:var(--steel)}

/* ---------- role switch: a thin strip in the top margin, shown when the mouse moves (it covers nothing) */
.wall .roles{position:absolute;right:36px;top:0;background:var(--ink);border-top:0;opacity:0;pointer-events:none;transition:opacity .2s}
.wall.show-roles .roles{opacity:1;pointer-events:auto}
.wall .roles .rs{height:21px;padding:0 12px;font-size:12px}

.w-main{min-height:0;min-width:0}

/* ---------- slide 1: the 10 postes and the next actions */
.w-s1{display:grid;grid-template-columns:minmax(0,1fr) 524px;gap:18px;height:100%}
.w-tiles{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:12px;min-height:0}
.w-tile{display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden;background:var(--graphite);border:1px solid var(--steel)}
.w-tile .band{display:flex;align-items:center;justify-content:space-between;height:52px;padding:0 12px;flex:none;background:var(--idle);color:var(--paper)}
.w-tile .band b{font-family:var(--display);font-weight:400;font-size:44px;letter-spacing:.01em;text-transform:uppercase;line-height:1;white-space:nowrap}
.w-tile .band .mono{letter-spacing:.04em}
html[lang="en"] .w-tile .band b{font-size:38px}                 /* "STATION 10" is longer than "POSTE 10" */
html[lang="en"] .w-tile .band .mono{font-size:15px;letter-spacing:0}
.w-tile.cat-run .band{background:var(--green);color:var(--ink)}
.w-tile.cat-act .band{background:var(--amber);color:var(--ink)}
.w-tile.cat-err .band{background:var(--red);color:var(--white)}
.w-tile.cat-err{border-color:var(--red)}
.w-tile.cat-act{border-color:var(--amber)}
.w-tile .body{flex:1;display:flex;flex-direction:column;min-height:0;padding:8px 12px 11px}
.w-tile .word{font-size:30px;font-weight:700;line-height:1.15;white-space:nowrap}
.w-tile.cat-run .word{color:var(--green)}
.w-tile.cat-act .word{color:var(--amber)}
.w-tile.cat-idle .word{color:var(--silver)}
.w-tile.cat-err .word{color:var(--white)}
.w-tile .camp{font-size:22px;font-weight:500;line-height:1.2;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.w-tile .lot{color:var(--silver);line-height:1.3;white-space:nowrap}
.w-tile .rec{font-size:18px;color:var(--silver);line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.w-tile .pal{font-weight:700;letter-spacing:.06em;text-transform:uppercase;line-height:1.3;margin-top:3px;white-space:nowrap}
.w-voies{display:grid;grid-template-columns:repeat(24,minmax(0,1fr));gap:2px;height:10px;margin-top:4px;flex:none}
.w-voies i{display:block;background:var(--steel)}
.w-voies i.r{background:var(--green)}
.w-voies i.w{background:var(--amber)}
.w-voies i.d{background:var(--paper)}
.w-voies i.e{background:transparent;border:1px solid var(--steel)}
.w-tile .fig{font-family:var(--display);font-weight:400;font-synthesis:none;font-size:86px;line-height:.95;margin-top:auto;white-space:nowrap}
.w-tile .fig small{font-size:38px;color:var(--silver);margin-left:8px}
.w-tile .fig.is-word{color:var(--silver)}
.w-tile .fig.is-act{font-size:47px;line-height:1;letter-spacing:0;text-transform:uppercase;color:var(--amber)}
.w-tile.cat-err .fig{color:var(--white)}
.w-tile .low{margin-top:7px;min-height:84px;display:flex;flex-direction:column;justify-content:flex-end;gap:6px}
.w-tile .bar{display:block;background:var(--ink)}
.w-tile .bar u{display:block;height:100%;text-decoration:none}
.w-prog .bar{height:10px}
.w-prog .bar u{background:var(--green)}
.w-prog .mono{display:flex;justify-content:space-between;margin-top:4px;color:var(--silver);line-height:1.2;white-space:nowrap}
.w-prog .mono b{color:var(--paper);font-weight:700}
.w-temp{display:grid;grid-template-columns:auto auto 1fr;align-items:baseline;column-gap:8px;line-height:1.1}
.w-temp .mono{color:var(--silver);white-space:nowrap}
.w-temp b{font-family:var(--mono);font-size:26px;font-weight:700;white-space:nowrap}
.w-temp .lim{font-size:20px}
.w-temp .bar{grid-column:1 / -1;height:6px;margin-top:3px}
.w-temp .bar u{background:var(--silver)}
.w-temp.near b{color:var(--amber)}
.w-temp.near .bar u{background:var(--amber)}
.w-tile.warn{border-color:var(--amber)}
.w-note b{display:block;font-size:22px;font-weight:500;line-height:1.2;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.w-note .mono{display:block;color:var(--silver);line-height:1.3;margin-top:3px;white-space:nowrap}
.w-note .mono.lotn{font-size:22px;color:var(--paper)}
.w-note .mono.hl{display:flex;justify-content:space-between;gap:8px;font-size:26px;letter-spacing:0;line-height:1.2;margin-top:4px;color:var(--amber);font-weight:700;text-transform:uppercase}
.w-tile.cat-err .w-note .mono.hl{color:var(--paper)}

.w-next{display:flex;flex-direction:column;min-height:0;padding:14px 22px 12px;background:var(--graphite);border:1px solid var(--steel);border-top:6px solid var(--green)}
.w-next > .hd{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:10px;flex:none}
.w-next h2{font-family:var(--display);font-weight:400;font-size:42px;line-height:1;text-transform:uppercase;letter-spacing:.01em;margin:0;white-space:nowrap}
.w-next > .hd .mono{color:var(--silver);text-transform:uppercase;white-space:nowrap;line-height:1.2;font-size:15px;letter-spacing:.02em}
.w-next ol{list-style:none;margin:0;padding:0;flex:1;min-height:0;overflow:hidden}
.w-next li{display:grid;grid-template-columns:36px minmax(0,1fr);column-gap:12px;padding:10px 0 11px;border-top:1px solid var(--steel)}
.w-next .rank{font-family:var(--display);font-size:46px;line-height:1;color:var(--paper)}
.w-next .what .hd{display:flex;align-items:center;gap:10px;margin-bottom:5px;white-space:nowrap}
.w-next .chip{font-family:var(--display);font-weight:400;font-size:30px;line-height:1;letter-spacing:.02em;padding:4px 10px 3px;flex:none}
.w-next .kind{color:var(--silver);text-transform:uppercase;letter-spacing:.02em;font-size:17px;overflow:hidden;text-overflow:ellipsis;min-width:0}
.w-next .wait{margin-left:auto;color:var(--amber);font-weight:700;font-size:20px;flex:none}
.w-next p{margin:0;font-size:28px;line-height:1.15}
.w-next li.k-ended .chip,.w-next li.k-between .chip,.w-next li.k-confirm .chip,.w-next li.k-temp .chip{background:var(--amber)}
.w-next li.k-error .chip{background:var(--red);color:var(--white)}
.w-next li.k-load .chip{background:var(--idle);color:var(--paper)}
.w-next li.k-temp .kind{color:var(--amber)}
.w-next li.none p{color:var(--silver)}
.w-next .more{flex:none;padding-top:8px;border-top:1px solid var(--steel);color:var(--silver);text-transform:uppercase}

/* ---------- bottom bar, common to the four slides */
.w-bot{display:flex;align-items:stretch;border-top:1px solid var(--steel);padding-top:12px;min-width:0}
.w-stat{display:flex;flex-direction:column;justify-content:space-between;padding-right:20px;margin-right:20px;border-right:1px solid var(--graphite);flex:none}
.w-stat .mono{color:var(--silver);text-transform:uppercase;white-space:nowrap;line-height:1.2}
.w-stat b{font-family:var(--display);font-weight:400;font-size:54px;line-height:1;white-space:nowrap}
.w-stat b small{font-family:var(--mono);font-size:20px;font-weight:500;color:var(--silver);margin-left:10px;letter-spacing:.02em}
.w-end{margin-left:auto;display:flex;flex-direction:column;align-items:flex-end;justify-content:space-between;padding:2px 0;min-width:0}
.w-end .illus{font-size:15px;letter-spacing:.06em;padding:3px 10px;color:var(--silver);border-color:var(--steel)}
.w-end .date{color:var(--silver);white-space:nowrap}
.w-clock{font-family:var(--display);font-size:86px;line-height:1;align-self:center;margin-left:28px;flex:none}

/* ---------- slide 2: production of the day */
.w-s2{display:grid;grid-template-columns:minmax(0,1fr) 452px;gap:18px;height:100%}
.w-tl{display:flex;flex-direction:column;min-height:0;padding:12px 24px 8px;background:var(--graphite);border:1px solid var(--steel)}
.w-tlh,.w-row{display:grid;grid-template-columns:176px minmax(0,1fr) 214px;column-gap:36px;align-items:center}
.w-tlh{flex:none;height:38px;color:var(--silver);text-transform:uppercase}
.w-tlh .r{text-align:right;white-space:nowrap;letter-spacing:0}
.w-tlh .axis{position:relative;height:24px;text-transform:none}
.w-tlh .axis span{position:absolute;top:0;transform:translateX(-50%);white-space:nowrap}
.w-row{flex:1;min-height:0;border-top:1px solid var(--steel)}
.w-row .who b{display:block;font-size:28px;font-weight:700;line-height:1.1}
.w-row .who .mono{display:block;color:var(--silver);line-height:1.2}
.w-row .track{position:relative;height:38px;background:var(--ink)}
.w-row .track i{position:absolute;top:0;bottom:0}
.sg-run{background:var(--green)}
.sg-wait{background:var(--amber)}
.sg-idle{background:var(--steel)}
.sg-indispo{background:var(--red)}
.sg-down{background:transparent;box-shadow:inset 0 0 0 3px var(--red)}
.w-row .track .now{width:3px;margin-left:-1px;top:-9px;bottom:-9px;background:var(--paper)}
.w-row .cnt{text-align:right;white-space:nowrap}
.w-row .cnt b{font-family:var(--display);font-weight:400;font-size:50px;line-height:1}
.w-row .cnt .mono{font-size:24px;color:var(--silver);margin-left:10px}
.w-side{display:flex;flex-direction:column;gap:12px;min-height:0}
.w-side .blk{padding:16px 22px;background:var(--graphite);border:1px solid var(--steel)}
.w-side .blk.main{border-top:6px solid var(--green)}
.w-side .blk > .mono{display:block;color:var(--silver);text-transform:uppercase}
.w-side .big{font-family:var(--display);font-size:132px;line-height:.98;margin-top:6px}
.w-side .big small{font-size:56px;color:var(--silver);margin-left:14px}
.w-side .bar{display:block;height:12px;background:var(--ink);margin:12px 0 8px}
.w-side .bar u{display:block;height:100%;background:var(--green)}
.w-side .units{display:flex;flex-wrap:wrap;gap:0 30px;margin-top:4px}
.w-side .mid{font-family:var(--display);font-size:84px;line-height:1;white-space:nowrap}
.w-side .mid small{font-family:var(--body);font-weight:500;font-size:26px;color:var(--silver);margin-left:10px}
.w-side .blk.shares{flex:1;display:flex;flex-direction:column;min-height:0}
.w-side .sh{flex:1;display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;column-gap:14px;font-size:28px;border-top:1px solid var(--steel)}
.w-side .sh:first-of-type{margin-top:10px}
.w-side .sh .key{width:28px;height:28px}
.w-side .sh b{font-family:var(--display);font-weight:400;font-size:40px}

/* ---------- slide 3: current campaigns */
.w-s3{display:grid;grid-template-rows:repeat(5,minmax(0,1fr));gap:12px;height:100%}
.w-s3.n4{grid-template-rows:repeat(4,minmax(0,1fr))}
.w-s3.n3{grid-template-rows:repeat(3,minmax(0,1fr))}
.w-camp{display:grid;grid-template-columns:376px 424px repeat(3,minmax(0,1fr));column-gap:20px;align-items:center;min-height:0;
  padding:0 26px;background:var(--graphite);border:1px solid var(--steel);border-left:6px solid var(--green)}
.w-camp .id h3{font-family:var(--display);font-weight:400;font-size:46px;line-height:1;text-transform:uppercase;letter-spacing:.01em;margin:0 0 8px;white-space:nowrap}
.w-camp .id .mono{display:block;color:var(--silver);line-height:1.35;white-space:nowrap}
.w-camp .id .mono.dim{color:var(--dim)}
.w-camp .lots{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:16px;align-items:end;padding-left:20px;border-left:1px solid var(--steel)}
.w-camp .lots > .mono:first-child{grid-column:1 / -1;color:var(--silver);text-transform:uppercase;margin-bottom:4px}
.w-camp .lots .big{grid-row:2 / span 2;font-family:var(--display);font-size:88px;line-height:.95;white-space:nowrap}
.w-camp .lots .big small{font-size:40px;color:var(--silver);margin-left:8px}
.w-camp .segs{display:flex;gap:3px;height:14px;align-self:start;margin-top:10px}
.w-camp .segs u{flex:1;background:var(--ink);text-decoration:none}
.w-camp .segs u.done{background:var(--green)}
.w-camp .segs u.cur{background:var(--amber)}
.w-camp .cur{color:var(--silver);line-height:1.3;white-space:nowrap;padding-bottom:4px}
.w-camp .cur b{display:block;color:var(--paper);font-weight:700}
.w-camp .mma{padding-left:20px;border-left:1px solid var(--steel);min-width:0}
.w-camp .mma > .mono{display:block;color:var(--silver);text-transform:uppercase;white-space:nowrap;letter-spacing:0}
.w-camp .vals{display:flex;align-items:flex-end;gap:14px;margin-top:2px;white-space:nowrap}
.w-camp .vals i{font-style:normal;color:var(--dim);line-height:1.2;text-transform:uppercase}
.w-camp .vals b{font-family:var(--display);font-weight:400;font-size:86px;line-height:.95}
.w-camp .vals b i{display:block;color:var(--silver)}
.w-camp .vals .mm{display:flex;flex-direction:column;gap:4px;padding-bottom:4px}
.w-camp .vals .mm span{display:flex;align-items:baseline;gap:8px;font-family:var(--display);font-size:35px;line-height:1;color:var(--silver)}
.w-camp .vals .mm i{width:36px;letter-spacing:0}

/* ---------- slide 4: safety and availability */
.w-s4{display:flex;flex-direction:column;height:100%;padding:6px 26px 12px;background:var(--graphite);border:1px solid var(--steel)}
.w-srow{flex:1;min-height:0;display:grid;grid-template-columns:222px 226px 170px 290px 310px minmax(0,1fr) 180px;column-gap:22px;align-items:center;border-top:1px solid var(--steel)}
.w-srow.head{flex:none;height:42px;border-top:0;color:var(--silver);text-transform:uppercase;white-space:nowrap}
.w-srow.head div:last-child{text-align:right}
.w-srow .who{white-space:nowrap}
.w-srow .who b{font-size:28px;font-weight:700}
.w-srow .who .mono{color:var(--silver);margin-left:10px}
.w-srow .state{display:flex;align-items:center;gap:12px;font-size:28px;font-weight:500;white-space:nowrap}
.w-srow .sq{display:block;width:18px;height:18px;flex:none;background:var(--steel)}
.w-srow.cat-run .sq{background:var(--green)}
.w-srow.cat-act .sq{background:var(--amber)}
.w-srow.cat-err .sq{background:var(--red)}
.w-srow .chip{font-size:18px;padding:3px 12px}
.w-srow .marg{white-space:nowrap}
.w-srow .marg b{font-size:28px;font-weight:700}
.w-srow .marg b.near{color:var(--amber)}
.w-srow .marg .mono{margin-left:12px}
.w-srow .dim{font-size:24px;color:var(--dim)}
.w-srow .marg .mono.dim{font-size:18px}
.w-srow .alert{display:flex;align-items:center;gap:14px;min-width:0}
.w-srow .alert .when{flex:none;color:var(--silver);white-space:nowrap}
.w-srow .alert .what{font-size:28px;line-height:1.1;min-width:0;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.w-srow .alert .chip{vertical-align:3px;margin-left:6px}
/* P1 test (emergency stops, door): word, then its date line. Overdue amber, failed the fault red, up to date neutral */
.w-srow .ft{display:flex;flex-direction:column;align-items:flex-start;gap:3px;min-width:0;white-space:nowrap}
.w-srow .ft b{font-size:26px;font-weight:700;line-height:1.1}
.w-srow .ft .mono{max-width:100%;color:var(--silver);overflow:hidden;text-overflow:ellipsis;line-height:1.25}
.w-srow .ft-due b,.w-srow .ft-due .mono{color:var(--amber)}
.w-srow .ft-none b{font-size:24px;font-weight:500;color:var(--dim)}
.w-srow .ft .chip{font-size:20px;padding:3px 12px}
.w-srow .avail{text-align:right}
.w-srow .avail b{font-family:var(--display);font-weight:400;font-size:44px;line-height:1}
.w-foot{flex:none;margin:0;padding-top:10px;border-top:1px solid var(--steel);font-size:21px;line-height:1.3;color:var(--silver)}
