/* ===========================================================
   workplace.css — My Workplace (view "myview") and the Custom
   Dashboard (js/workplace.js, spec §4). Namespace: .mw-*
   Layout classes are CONTAINER queries on .mw-root (§4.5):
     L ≥ 960 · M 720–959 · S 560–719 · XS < 560 (content width).
   Tokens only (styles.css §2.1); no raw status colours.
   =========================================================== */

.mw-root{container-type:inline-size;container-name:mw;--mw-gap:20px;--mw-pad:18px;position:relative;display:flex;flex-direction:column;min-width:0}
.mw-root .mw-flex{flex:1 1 auto}
.mw-muted{color:var(--muted)}
.mw-nowrap{white-space:nowrap}
.mw-ellip{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mw-plain{display:block;width:100%;padding:0;border:0;background:none;text-align:inherit;font:inherit;color:inherit;cursor:pointer;border-radius:8px}
.mw-plain:focus-visible,.mw-linkish:focus-visible,.mw-cell-link:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.mw-linkish{display:inline-flex;align-items:center;gap:6px;padding:4px 2px;border:0;background:none;color:var(--brand-text);font:600 12.5px/1.2 var(--fb);cursor:pointer;border-radius:6px}
.mw-linkish:hover{text-decoration:underline;text-underline-offset:3px}
.mw-note{margin:10px 0 0;font:400 12px/17px var(--fb);color:var(--muted)}
.mw-sub-h{margin:16px 0 8px;font:600 12px/16px var(--fb);color:var(--muted)}
.mw-access-note{margin:12px 0 0;font:italic 400 12px/16px var(--fb);color:var(--faint)}
.mw-kicker{display:flex;align-items:center;gap:6px;font:var(--t-kicker);text-transform:uppercase;letter-spacing:.07em;color:var(--nav-ink-soft)}
.mw-click{cursor:pointer}

/* ---------- header (§4.3): one sticky toolbar row, glass over the page ---------- */
.mw-head{position:sticky;top:0;z-index:calc(var(--z-sticky) + 2);display:flex;align-items:center;flex-wrap:wrap;gap:10px 14px;min-height:44px;
  margin:calc(-1 * var(--gutter)) calc(-1 * var(--gutter)) 0;padding:calc(var(--gutter) - 12px) var(--gutter) 12px;
  background:rgb(245 247 251 / .9);-webkit-backdrop-filter:saturate(1.5) blur(12px);backdrop-filter:saturate(1.5) blur(12px);border-bottom:1px solid transparent;transition:border-color var(--dur-2)}
.mw-root.is-past-a .mw-head{border-bottom-color:var(--line)}
.mw-head-l,.mw-head-c,.mw-head-r{display:flex;align-items:center;gap:10px;min-width:0}
.mw-head-c{flex:1 1 auto;flex-wrap:wrap}
.mw-head-r{margin-left:auto}
.mw-scope{display:inline-flex;align-items:center;gap:8px;height:34px;max-width:min(320px,26vw);padding:0 10px 0 10px;border:1px solid var(--line-2);border-radius:var(--radius-sm);background:var(--card);color:var(--ink);font:600 13.5px/1 var(--fh);letter-spacing:-.005em;cursor:pointer;box-shadow:0 1px 2px rgba(15,23,42,.05);transition:border-color var(--dur-1),box-shadow var(--dur-1)}
@media (max-width:767px){.mw-scope{max-width:min(320px,62vw)}}
.mw-scope:hover{border-color:var(--line-3)}
.mw-scope:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.mw-scope-ico{display:inline-flex;color:var(--muted)}
.mw-scope-ico .flag-img{width:18px;height:13px;border-radius:2px;box-shadow:0 0 0 1px rgba(15,23,42,.12);object-fit:cover}
.mw-scope-l{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mw-scope-caret{color:var(--muted)}
.mw-asat{font:500 12.5px/1.2 var(--fb);color:var(--muted);white-space:nowrap}
.mw-scope-pop{padding:6px;min-width:300px}
.mw-scope-list{display:grid;gap:1px;max-height:min(420px,70vh);overflow:auto;outline:none}
.mw-scope-sep{padding:10px 10px 4px;font:var(--t-kicker);text-transform:uppercase;letter-spacing:.06em;color:var(--faint)}
.mw-scope-opt{display:grid;grid-template-columns:20px auto minmax(0,1fr) auto auto 16px;align-items:center;gap:8px;min-height:38px;padding:0 10px;border-radius:8px;color:var(--ink-2);font:500 13px/1.2 var(--fb);cursor:pointer}
.mw-scope-opt:hover,.mw-scope-opt.is-active{background:var(--hover)}
.mw-scope-opt.is-active{box-shadow:inset 0 0 0 2px var(--focus)}
.mw-scope-opt.is-sel{color:var(--ink);font-weight:600}
.mw-scope-flag{display:inline-flex;color:var(--muted)}
.mw-scope-flag .flag-img{width:18px;height:13px;border-radius:2px;box-shadow:0 0 0 1px rgba(15,23,42,.12);object-fit:cover}
.mw-scope-code{font:700 11.5px/1 var(--fb);letter-spacing:.04em;color:var(--ink-2)}
.mw-scope-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mw-scope-d{font:600 11.5px/1 var(--fb);font-variant-numeric:tabular-nums;color:var(--muted)}
.mw-scope-tick{color:var(--brand-text)}
.mw-focus{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 4px 0 10px;border:1px solid var(--brand-line);border-radius:var(--radius-pill);background:var(--brand-softer);color:var(--brand-text);font:600 12px/1 var(--fb);white-space:nowrap}
.mw-focus-x{display:inline-grid;place-items:center;width:20px;height:20px;padding:0;border:0;border-radius:50%;background:none;color:inherit;cursor:pointer}
.mw-focus-x:hover{background:var(--card)}
.mw-focus-x:focus-visible{outline:2px solid var(--focus);outline-offset:1px}
.mw-live{display:inline-flex;align-items:center;gap:7px;min-width:0;max-width:280px;font:500 12px/1.2 var(--fb);color:var(--muted);white-space:nowrap}
.mw-live-t{overflow:hidden;text-overflow:ellipsis}
/* a tight L toolbar (e.g. 1366 with the full sidebar) keeps one row: the live status folds to "Live" (full text in the title) */
@container mw (min-width:960px) and (max-width:1119.98px){.mw-live-b{display:none}}
.mw-bp .btn-icon-right{margin-left:-2px;opacity:.7}
.mw-banner{display:flex;align-items:center;gap:8px;margin:14px 0 0;padding:10px 14px;border:1px solid var(--violet-line,#DDD6FE);border-radius:10px;background:var(--violet-soft,#EDE9FE);color:var(--violet-text,#6D28D9);font:500 13px/1.3 var(--fb)}

/* ---------- section jump chips: a second sticky row once section A has scrolled away (≥ 768) ---------- */
.mw-jump{position:absolute;left:0;right:0;top:100%;display:flex;align-items:center;gap:4px;height:40px;padding:0 var(--gutter);overflow-x:auto;scrollbar-width:none;
  background:rgb(245 247 251 / .92);-webkit-backdrop-filter:saturate(1.5) blur(12px);backdrop-filter:saturate(1.5) blur(12px);border-bottom:1px solid var(--line);
  opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity var(--dur-2),transform var(--dur-2),visibility 0s var(--dur-2)}
.mw-jump::-webkit-scrollbar{display:none}
.mw-root.is-past-a .mw-jump{opacity:1;visibility:visible;transform:none;transition:opacity var(--dur-2),transform var(--dur-2),visibility 0s}
.mw-jump-a{display:inline-flex;align-items:center;height:28px;padding:0 11px;border-radius:var(--radius-pill);color:var(--muted);font:500 12.5px/1 var(--fb);text-decoration:none;white-space:nowrap;transition:background-color var(--dur-1),color var(--dur-1)}
.mw-jump-a:hover{background:var(--hover);color:var(--ink)}
.mw-jump-a[aria-current="true"]{background:var(--card);color:var(--ink);font-weight:600;box-shadow:var(--shadow-sm),inset 0 0 0 1px var(--line)}
.mw-jump-a:focus-visible{outline:2px solid var(--focus);outline-offset:1px}

/* ---------- sections + the 12-column grid ---------- */
.mw-sec{scroll-margin-top:112px}
.mw-sec-h{display:flex;align-items:center;gap:12px;margin:30px 0 12px}
.mw-sec-A .mw-sec-h{margin-top:18px}
.mw-sec-h::after{content:"";flex:1 1 auto;height:1px;background:linear-gradient(90deg,var(--line),transparent)}
.mw-sec-title{display:flex;align-items:baseline;gap:8px;margin:0;font:var(--t-title);letter-spacing:-.01em;color:var(--ink);outline:none;white-space:nowrap}
.mw-sec-title:focus-visible{outline:2px solid var(--focus);outline-offset:4px;border-radius:4px}
.mw-sec-count{display:inline-flex;align-items:center;height:20px;padding:0 8px;border-radius:var(--radius-pill);background:var(--bg-2);color:var(--ink-2);font:600 11.5px/1 var(--fb);font-variant-numeric:tabular-nums;align-self:center}
.mw-sec-sub{font:500 12.5px/1 var(--fb);color:var(--muted);align-self:center}
.mw-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-flow:row dense;gap:var(--mw-gap);align-items:stretch}
.mw-grid>*{grid-column:span var(--mw-s,12);min-width:0}
.mw-grid>[hidden]{display:none}
.mw-grid>.vne-card{padding:var(--mw-pad);min-height:320px}
.mw-grid>.mw-band,.mw-grid>.mw-bare,.mw-grid>.mw-w4,.mw-grid>.mw-w5{min-height:0}
.mw-grid .ui-skel.mw-skel{grid-column:span var(--mw-l,12);min-height:260px}
.mw-root.is-compact{--mw-pad:14px}
.mw-root.is-compact .mw-grid>.vne-card{min-height:280px}
.mw-grid>.vne-card .card-body{margin-top:12px;container-type:inline-size}
.mw-grid>.vne-card .card-head{min-height:30px}
.mw-grid>.vne-card .card-control .ui-seg{height:30px}
.mw-grid>.vne-card .card-control .ui-seg-btn{height:26px}
.mw-scope-badge{display:inline-flex;align-items:center;height:20px;padding:0 7px;border-radius:var(--radius-pill);background:var(--bg-2);color:var(--ink-2);font:700 10.5px/1 var(--fb);letter-spacing:.04em}
.mw-badges[hidden]{display:none}
.mw-grid>.vne-card .card-foot{margin-top:auto;padding-top:12px}
.mw-grid>.vne-card>.card-body+.card-foot{margin-top:14px}
.mw-grid>.vne-card .card-foot[hidden]{display:none}
.mw-foot{display:flex;align-items:center;gap:12px;flex:1 1 auto;min-width:0}
.mw-foot .card-link{margin-left:auto}
.mw-root .ui-ent{flex:none}
.mw-grid>.vne-card .card-headline{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.mw-grid>.vne-card .card-sub{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 10px}
.mw-grid>.vne-card .card-caption{order:-1;flex:none;font:500 11px/16px var(--fb);color:var(--faint);text-transform:none}
.mw-grid>.vne-card .card-sub[hidden],.mw-grid>.vne-card .card-caption[hidden]{display:none}
@container mw (min-width:960px){.mw-grid>*{grid-column:span var(--mw-l,12)}}
@container mw (min-width:720px) and (max-width:959.98px){.mw-root{--mw-gap:16px}.mw-grid>*{grid-column:span var(--mw-m,12)}}
@container mw (min-width:560px) and (max-width:719.98px){.mw-root{--mw-gap:14px}.mw-grid>*{grid-column:span var(--mw-s,12)}}
@container mw (max-width:559.98px){
  .mw-root{--mw-gap:12px;--mw-pad:14px}
  .mw-grid>*{grid-column:1/-1;order:var(--mw-xs-order,0)}
  .mw-grid>.vne-card{min-height:0}
  .mw-sec-h{margin:22px 0 10px}
}

/* ---------- W1 · health band (the one loud element) ---------- */
.mw-band{position:relative;isolation:isolate;overflow:hidden;min-height:168px;padding:22px 24px;border-radius:var(--radius-lg);color:var(--nav-ink-strong);
  background:radial-gradient(90% 160% at 0% 0%,rgb(var(--brand-rgb) / .26) 0%,rgb(var(--brand-rgb) / 0) 58%),linear-gradient(125deg,var(--nav) 0%,var(--nav) 45%,var(--nav-2) 100%);
  border:1px solid rgba(255,255,255,.06);box-shadow:0 18px 40px -28px rgba(15,23,42,.55)}
.mw-w1-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,4fr) minmax(0,3fr);gap:0;align-items:stretch;height:100%}
.mw-w1-l{display:flex;flex-direction:column;gap:8px;min-width:0;padding-right:24px}
.mw-w1-verdict{display:inline-flex;align-items:center;gap:12px;align-self:flex-start;margin:2px 0 0;padding:2px 4px 2px 0;border:0;border-radius:10px;background:none;color:var(--nav-ink-strong);font:var(--t-display);letter-spacing:-.02em;text-align:left;cursor:pointer}
.mw-w1-verdict:focus-visible{outline:2px solid #fff;outline-offset:3px}
.mw-w1-vicon{display:inline-flex}
.mw-w1-verdict.rag-green .mw-w1-vicon{color:var(--nav-ok)}.mw-w1-verdict.rag-amber .mw-w1-vicon{color:var(--nav-warn)}
.mw-w1-verdict.rag-red .mw-w1-vicon{color:#F87171}.mw-w1-verdict.rag-grey .mw-w1-vicon{color:var(--nav-ink-soft)}
.mw-w1-why{display:inline-flex;align-items:center;gap:3px;height:24px;padding:0 8px 0 10px;border:1px solid rgba(255,255,255,.18);border-radius:var(--radius-pill);font:600 12px/1 var(--fb);letter-spacing:0;color:var(--nav-ink);transition:background-color var(--dur-1),border-color var(--dur-1)}
.mw-w1-verdict:hover .mw-w1-why{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.3);color:#fff}
.mw-w1-trend{display:flex;align-items:center;gap:6px;font:500 13px/18px var(--fb);color:var(--nav-ink)}
.mw-w1-trend .i{color:var(--nav-ink-soft)}
.mw-w1-counts{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}
.mw-w1-count{padding:0;border:0;background:none;border-radius:var(--radius-pill);cursor:pointer}
.mw-w1-count:hover .ui-rag{background:rgba(255,255,255,.08)}
.mw-w1-count:focus-visible{outline:2px solid #fff;outline-offset:2px}
.mw-w1-narr{margin:4px 0 0;max-width:62ch;font:400 13px/19px var(--fb);color:var(--nav-ink);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.mw-w1-muted{font:400 13px/18px var(--fb);color:var(--nav-ink-soft)}
.mw-w1-dims{display:flex;flex-direction:column;justify-content:center;gap:2px;min-width:0;padding:0 24px;border-left:1px solid rgba(255,255,255,.09)}
.mw-w1-dim{display:grid;grid-template-columns:92px auto minmax(0,1fr);align-items:center;gap:10px;min-height:28px;padding:2px 8px;margin:0 -8px;border:0;border-radius:8px;background:none;color:var(--nav-ink);font:500 13px/1.2 var(--fb);text-align:left;cursor:pointer}
.mw-w1-dim:hover{background:rgba(255,255,255,.06)}
.mw-w1-dim:focus-visible{outline:2px solid #fff;outline-offset:0}
.mw-w1-dl{color:var(--nav-ink-strong);font-weight:500}
.mw-w1-dr{min-width:0;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;font:400 12px/1.25 var(--fb);color:var(--nav-ink-soft)}
.mw-w1-dcode{font:700 11px/1 var(--fb);letter-spacing:.04em;color:var(--nav-ink)}
.mw-golive-banner{display:flex;flex-direction:column;justify-content:center;gap:7px;min-width:0;padding:0 0 0 24px;margin:0;border:0;border-left:1px solid rgba(255,255,255,.09);background:none;color:inherit;font:inherit;text-align:left;cursor:pointer;border-radius:0}
.mw-golive-banner:focus-visible{outline:2px solid #fff;outline-offset:4px;border-radius:8px}
.mw-golive-banner.is-empty{cursor:default}
.mw-kick-dot{width:7px;height:7px;border-radius:50%;background:var(--nav-warn);box-shadow:0 0 0 3px rgb(251 191 36 / .18)}
.mw-golive-when{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.mw-golive-d{font:var(--t-display);letter-spacing:-.02em;color:#fff;font-variant-numeric:tabular-nums}
.mw-golive-date{font:600 13px/1.2 var(--fb);color:var(--nav-ink)}
.mw-golive-banner .ui-bullet{margin-top:2px}
.mw-golive-r{font:500 12px/16px var(--fb);color:var(--nav-ink-soft)}
.mw-golive-banner:hover .mw-golive-r{color:var(--nav-ink)}
/* light navigation theme: the band becomes a soft brand panel with ink */
.mw-band.is-light{color:var(--ink);background:linear-gradient(125deg,var(--brand-softer),var(--card));border-color:var(--brand-line);box-shadow:none}
.mw-band.is-light .mw-kicker,.mw-band.is-light .mw-w1-trend .i,.mw-band.is-light .mw-w1-dr,.mw-band.is-light .mw-golive-r,.mw-band.is-light .mw-w1-muted{color:var(--muted)}
.mw-band.is-light .mw-w1-verdict,.mw-band.is-light .mw-golive-d,.mw-band.is-light .mw-w1-dl{color:var(--ink)}
.mw-band.is-light .mw-w1-trend,.mw-band.is-light .mw-w1-narr,.mw-band.is-light .mw-w1-dim,.mw-band.is-light .mw-golive-date{color:var(--ink-2)}
.mw-band.is-light .mw-w1-dims,.mw-band.is-light .mw-golive-banner{border-left-color:var(--line)}
.mw-band.is-light .mw-w1-verdict.rag-green .mw-w1-vicon{color:var(--st-complete-text)}.mw-band.is-light .mw-w1-verdict.rag-amber .mw-w1-vicon{color:var(--st-atrisk-text)}.mw-band.is-light .mw-w1-verdict.rag-red .mw-w1-vicon{color:var(--st-delayed-text)}
.mw-band.is-light .mw-w1-why{border-color:var(--line-2);color:var(--ink-2)}
.mw-band.is-light .mw-w1-dim:hover{background:var(--card)}
.mw-band.is-light .mw-kick-dot{background:var(--st-atrisk)}
@container mw (min-width:720px) and (max-width:959.98px){
  .mw-w1-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);row-gap:16px}
  .mw-golive-banner{grid-column:1/-1;flex-direction:row;flex-wrap:wrap;align-items:center;gap:8px 18px;padding:14px 0 0;border-left:0;border-top:1px solid rgba(255,255,255,.09)}
  .mw-golive-banner .ui-bullet{flex:1 1 200px;max-width:320px;margin:0}
  .mw-band.is-light .mw-golive-banner{border-top-color:var(--line)}
}
@container mw (max-width:719.98px){
  .mw-band{padding:18px 18px 16px;min-height:0}
  .mw-w1-grid{grid-template-columns:minmax(0,1fr);row-gap:14px}
  .mw-w1-l{padding-right:0}
  .mw-w1-dims{padding:12px 0 0;border-left:0;border-top:1px solid rgba(255,255,255,.09)}
  .mw-golive-banner{padding:12px 0 0;border-left:0;border-top:1px solid rgba(255,255,255,.09)}
  .mw-band.is-light .mw-w1-dims,.mw-band.is-light .mw-golive-banner{border-top-color:var(--line)}
}
@container mw (max-width:559.98px){
  .mw-w1-verdict{font-size:26px;line-height:30px}
  /* EX-16: a two-column list of "Schedule · [Off track]" — label and a RAG chip with its word */
  .mw-w1-dims{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
  .mw-w1-dim{grid-template-columns:minmax(0,1fr);gap:4px;margin:0;padding:6px 10px;border:1px solid rgba(255,255,255,.12);border-radius:10px;min-height:44px}
  .mw-w1-dim .ui-rag{justify-self:start}
  .mw-band.is-light .mw-w1-dim{border-color:var(--line)}
  .mw-golive-when{gap:8px}
  .mw-golive-d{font-size:26px;line-height:30px}
}

/* ---------- W2 · KPI tiles: value + delta, a full-bleed sparkline, context ---------- */
.mw-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:var(--mw-gap)}
.mw-kpis .kpi.kpi-card{min-height:124px;padding:14px 16px 13px;transition:border-color var(--dur-1),box-shadow var(--dur-1),transform var(--dur-1)}
.mw-kpis .kpi-card .kpi-grid{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto auto auto;grid-template-areas:"label label" "value delta" "spark spark" "ctx ctx";row-gap:3px;column-gap:8px;min-height:0}
.mw-kpis .kpi-grid>.kpi-label{grid-area:label;order:0;flex:none}
.mw-kpis .kpi-grid>.kpi-valwrap{grid-area:value;align-self:end}
.mw-kpis .kpi-grid>.kpi-delta{grid-area:delta;align-self:center;justify-self:end}
.mw-kpis .kpi-grid>.kpi-spark{grid-area:spark;align-self:end}
.mw-kpis .kpi-grid>.kpi-context{grid-area:ctx}
/* The context line may wrap once (the same 2-line clamp as the Overview's KPI row), so a six-across row at 1366–1440 never
   cuts "1 blocked · 1 on critical path" mid-word; the full text stays in the tile's title and accessible name. */
.mw-kpis .kpi-grid>.kpi-context{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.mw-kpis .kpi-card .kpi-spark.mw-spark{display:block;width:100%;height:auto;margin:6px 0 2px}
.mw-kpis .mw-spark .ui-spark{display:block;width:100%}
.mw-kpis .mw-spark .ui-spark-svg{width:100%;height:auto}
.mw-kpis .mw-spark.is-none{height:26px;margin:6px 0 2px;background:linear-gradient(var(--line-soft),var(--line-soft)) left 70%/100% 1px no-repeat}
.mw-kpis .kpi-card.is-na .v.kpi-value{color:var(--faint)}
.mw-kpis.is-mine .kpi-card{min-height:104px}
.mw-kpis.is-mine .kpi-spark{display:none!important}
/* six tiles on a tight L row (1366 with the full sidebar ≈ 160 px each): a notch smaller so "+3.6%" and its delta never touch */
@container mw (min-width:960px) and (max-width:1099.98px){.mw-kpis .kpi.kpi-card{padding-left:14px;padding-right:14px}.mw-kpis .kpi-card .v.kpi-value{font-size:28px;line-height:32px}}
@container mw (min-width:560px) and (max-width:959.98px){.mw-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}
@container mw (max-width:559.98px){
  .mw-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .mw-kpis .kpi.kpi-card{min-height:104px;padding:12px 12px 11px}
  .mw-kpis .kpi-card .kpi-spark.mw-spark{display:none}
  .mw-kpis .kpi-card .v.kpi-value{font-size:24px;line-height:28px}
}

/* ---------- W4 · Needs attention ---------- */
.mw-att-tabs{margin:-2px 0 8px}
.mw-att-tabs .ui-tab{height:28px;padding:0 10px;font-size:12.5px}
.mw-att-list{display:flex;flex-direction:column;margin:0 -8px}
.mw-att-row{position:relative;display:flex;align-items:stretch;border-radius:10px}
.mw-att-row+.mw-att-row::before{content:"";position:absolute;left:8px;right:8px;top:0;height:1px;background:var(--line-soft)}
.mw-att-main{display:grid;grid-template-columns:20px 58px minmax(0,1fr) auto 148px 52px;align-items:center;gap:10px;flex:1 1 auto;min-width:0;min-height:50px;padding:6px 8px;border:0;border-radius:10px;background:none;color:var(--ink-2);font:inherit;text-align:left;cursor:pointer;transition:background-color var(--dur-1)}
.mw-att-main:hover{background:var(--hover)}
.mw-att-main:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}
.mw-att-sev{display:inline-flex;align-items:center}
.mw-att-sev.sev-red{color:var(--st-delayed)}.mw-att-sev.sev-amber{color:var(--st-atrisk)}.mw-att-sev.sev-grey{color:var(--ns)}
.mw-att-ent{min-width:0}
.mw-att-title{min-width:0;font:500 13px/18px var(--fb);color:var(--ink);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.mw-att-reason{justify-self:start;display:inline-flex;align-items:center;height:22px;max-width:190px;padding:0 9px;border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--card-2);color:var(--ink-2);font:500 12px/1 var(--fb);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mw-att-owner{min-width:0;overflow:hidden}
/* EX-18: "Unassigned" is a dashed placeholder avatar; its word hides with the person names in a narrow card */
.mw-att-un{display:inline-flex;align-items:center;gap:6px;min-width:0;max-width:100%;color:var(--muted);font:400 12.5px/1.2 var(--fb)}
.mw-att-un-av{display:inline-grid;place-items:center;flex:none;width:24px;height:24px;border-radius:50%;border:1.5px dashed var(--line-2);color:var(--faint)}
.mw-att-un-n{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mw-att-owner .ui-person-n{font-size:12.5px}
.mw-att-due{justify-self:end;font:500 12px/1 var(--fb);font-variant-numeric:tabular-nums;color:var(--muted);white-space:nowrap}
.mw-att-due.is-past{color:var(--st-delayed-text)}
.mw-att-acts{position:absolute;right:6px;top:50%;display:flex;align-items:center;gap:2px;padding:3px 3px 3px 26px;transform:translateY(-50%);opacity:0;pointer-events:none;border-radius:8px;
  background:linear-gradient(90deg,rgb(241 245 249 / 0),var(--hover) 22px);transition:opacity var(--dur-1)}
.mw-att-row:hover .mw-att-acts,.mw-att-row:focus-within .mw-att-acts{opacity:1;pointer-events:auto}
.mw-att-row.is-acked .mw-att-title{color:var(--muted)}
.mw-att-foot{display:flex;align-items:center;gap:10px;margin-top:12px}
.mw-att-list.is-full{margin-top:12px}
.mw-w4 .card-body{container-type:inline-size;container-name:att}
@container att (max-width:620px){.mw-att-main{grid-template-columns:20px 58px minmax(0,1fr) auto 30px 50px}.mw-att-owner .ui-person-n,.mw-att-un-n{display:none}}
@container att (max-width:480px){.mw-att-main{grid-template-columns:20px minmax(0,1fr) auto 46px}.mw-att-ent,.mw-att-owner{display:none}}
@container mw (max-width:559.98px){
  .mw-att-main{grid-template-columns:20px auto minmax(0,1fr) auto;grid-template-areas:"sev title title title" ". ent reason due";row-gap:5px;column-gap:8px;min-height:56px;padding:8px 40px 8px 8px}
  .mw-att-sev{grid-area:sev;align-self:start;padding-top:1px}
  .mw-att-title{grid-area:title}
  .mw-att-ent{grid-area:ent;display:block}
  .mw-att-ent .flag-img,.mw-att-ent .flag-iso,.mw-att-ent .flag-ico{display:none}
  .mw-att-ent .ui-ent-code{font-size:11px;color:var(--muted)}
  .mw-att-owner{display:none}
  .mw-att-reason{grid-area:reason;height:20px;font-size:11.5px;max-width:100%}
  .mw-att-due{grid-area:due;justify-self:end;align-self:center}
  .mw-att-acts{opacity:1;pointer-events:auto;background:none;padding:0;right:2px}
}

/* ---------- W5 · overdue ageing ---------- */
.mw-w5 .ui-bl-row{grid-template-columns:76px minmax(0,1fr) 30px}
.mw-legend{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;margin-top:14px;font:400 12px/16px var(--fb);color:var(--ink-2)}
.mw-legend-i{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.mw-legend.is-interactive .mw-legend-i{height:26px;padding:0 9px;border:1px solid var(--line-2);border-radius:var(--radius-pill);background:var(--card);font:500 12px/1 var(--fb);color:var(--ink-2);cursor:pointer}
.mw-legend.is-interactive .mw-legend-i:hover{border-color:var(--line-3)}
.mw-legend.is-interactive .mw-legend-i.is-on{background:var(--brand-soft);border-color:var(--brand-line);color:var(--brand-text);font-weight:600}
.mw-legend.is-interactive .mw-legend-i:focus-visible{outline:2px solid var(--focus);outline-offset:2px}

.mw-old{display:flex;flex-direction:column;margin:0 -8px}
.mw-old-row{display:grid;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:10px;min-height:34px;padding:4px 8px;border:0;border-radius:8px;background:none;text-align:left;font:inherit;color:inherit;cursor:pointer}
.mw-old-row:hover{background:var(--hover)}
.mw-old-row:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}
.mw-old-age{justify-self:start;display:inline-flex;align-items:center;height:20px;padding:0 6px;border-radius:6px;background:var(--st-delayed-soft);color:var(--st-delayed-text);font:700 11px/1 var(--fb);font-variant-numeric:tabular-nums}
.mw-old-t{min-width:0;font:500 12.5px/16px var(--fb);color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mw-sub-h.is-first{margin-top:0}

/* ---------- W6 · cutover readiness ---------- */
.mw-co-list{display:flex;flex-direction:column}
.mw-co-row{display:flex;flex-direction:column;gap:12px;padding:14px 0}
.mw-co-row:first-child{padding-top:2px}
.mw-co-row+.mw-co-row{border-top:1px solid var(--line-soft)}
.mw-co-top{display:flex;align-items:center;gap:10px;min-width:0}
.mw-co-ent{display:inline-flex;align-items:center;gap:8px;min-width:0;padding:2px 4px;margin:-2px -4px;border:0;border-radius:8px;background:none;cursor:pointer}
.mw-co-ent:hover{background:var(--hover)}
.mw-co-ent:focus-visible{outline:2px solid var(--focus);outline-offset:1px}
.mw-co-name{font:600 13.5px/1.2 var(--fh);color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mw-dpill{display:inline-flex;align-items:center;height:20px;padding:0 7px;border-radius:6px;background:var(--bg-2);color:var(--ink-2);font:700 11px/1 var(--fb);font-variant-numeric:tabular-nums;letter-spacing:.01em;white-space:nowrap}
.mw-dpill.is-near{background:var(--ink-2);color:#fff}
.mw-co-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:22px}
.mw-co-lab{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:7px;font:500 12px/16px var(--fb);color:var(--muted)}
.mw-co-val{font-weight:600;color:var(--ink-2);font-variant-numeric:tabular-nums;white-space:nowrap}
.mw-co-next{display:flex;align-items:center;gap:6px;font:500 12px/16px var(--fb);color:var(--ink-2)}
.mw-co-next .i{color:var(--muted)}
.mw-cats{display:flex;flex-wrap:wrap;gap:4px}
.mw-cat{display:inline-flex;align-items:center;justify-content:center;gap:5px;width:24px;height:24px;padding:0;border:0;border-radius:7px;font:500 11.5px/1 var(--fb);cursor:default}
button.mw-cat{cursor:pointer}
button.mw-cat:hover{filter:brightness(.96);box-shadow:inset 0 0 0 1px currentColor}
button.mw-cat:focus-visible{outline:2px solid var(--focus);outline-offset:1px}
.mw-cat.st-complete{background:var(--st-complete-soft);color:var(--st-complete-text)}
.mw-cat.st-active{background:var(--st-active-soft);color:var(--st-active-text)}
.mw-cat.st-future{background:var(--st-future-soft);color:var(--st-future-text);box-shadow:inset 0 0 0 1px var(--line)}
.mw-cat.st-blocked{background:var(--st-blocked-soft);color:var(--st-blocked-text);box-shadow:inset 0 0 0 1px rgba(153,27,27,.25)}
.mw-verdict{flex:none}
@container mw (max-width:559.98px){.mw-co-grid{grid-template-columns:minmax(0,1fr);gap:12px}}
.mw-rw{display:grid;grid-template-columns:minmax(0,1fr) 292px;gap:28px;align-items:start}
.mw-rw-main{min-width:0}
.mw-rw-side{display:flex;flex-direction:column;gap:12px;padding-left:24px;border-left:1px solid var(--line-soft)}
.mw-rw-gauge{margin:-6px 0 -4px}
.mw-rw-verdict{display:flex;align-items:center;justify-content:space-between;gap:10px}
.mw-rw-verdict .mw-co-lab{margin:0}
.mw-rw-why{margin:-4px 0 0;font:400 12px/17px var(--fb);color:var(--muted)}
.mw-rw-legend{margin-top:6px}
.mw-diamond{display:inline-block;width:9px;height:9px;transform:rotate(45deg);border-radius:1.5px;background:var(--mark-golive)}
.mw-diamond.is-hollow{background:var(--card);box-shadow:inset 0 0 0 1.75px var(--ms-upcoming)}
.mw-diamond.is-done{background:var(--ms-done)}.mw-diamond.is-risk{background:var(--ms-risk)}.mw-diamond.is-late{background:var(--ms-late)}
.mw-rw-xs{display:flex;flex-direction:column;gap:10px}
.mw-rw-list{display:flex;flex-direction:column;margin:4px 0 0;padding:0;list-style:none}
.mw-rw-list li{display:grid;grid-template-columns:78px minmax(0,1fr) auto;gap:10px;align-items:baseline;padding:8px 0;border-top:1px solid var(--line-soft);font:400 13px/18px var(--fb)}
.mw-rw-d{font-weight:600;color:var(--ink-2);font-variant-numeric:tabular-nums}
.mw-rw-n{min-width:0;color:var(--ink)}
@container mw (min-width:720px) and (max-width:959.98px){.mw-rw{grid-template-columns:minmax(0,1fr) 250px;gap:20px}.mw-rw-side{padding-left:18px}}
@container mw (max-width:719.98px){.mw-rw{grid-template-columns:minmax(0,1fr)}.mw-rw-side{padding:14px 0 0;border-left:0;border-top:1px solid var(--line-soft)}}

/* ---------- W7 · testing: a KPI strip under the burn-up ---------- */
.mw-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;margin-top:12px;overflow:hidden;border:1px solid var(--line-soft);border-radius:10px;background:var(--line-soft)}
.mw-stat{display:flex;flex-direction:column;gap:2px;min-width:0;padding:10px 12px;border:0;background:var(--card);text-align:left;font:inherit;color:inherit}
.mw-stat.is-link{cursor:pointer;transition:background-color var(--dur-1)}
.mw-stat.is-link:hover{background:var(--hover)}
.mw-stat.is-link:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}
.mw-stat-l{font:500 11.5px/15px var(--fb);color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mw-stat-v{font:600 19px/24px var(--fh);letter-spacing:-.01em;color:var(--ink);font-variant-numeric:tabular-nums}
.mw-stat-s{font:400 11px/14px var(--fb);color:var(--faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@container (max-width:440px){.mw-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
.mw-w7 .ui-bl-row{grid-template-columns:96px minmax(0,1fr) 30px}

/* ---------- W8 · training ---------- */
.mw-w8-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:18px}
.mw-w8-top{display:grid;grid-template-columns:auto minmax(0,1fr);gap:26px;align-items:center}
.mw-w8-col{display:flex;flex-direction:column;min-width:0}
@container (min-width:880px){.mw-w8-grid{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:36px;align-items:start}.mw-w8-next{padding-left:28px;border-left:1px solid var(--line-soft)}}
.mw-w8-ring{width:auto;padding:4px}
.mw-w8-segs{display:flex;flex-direction:column;gap:9px;min-width:0}
.mw-w8-seg{display:grid;grid-template-columns:minmax(0,150px) minmax(0,1fr);align-items:center;gap:12px}
.mw-w8-sl{display:flex;align-items:center;gap:6px;min-width:0}
.mw-w8-sn{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:500 12.5px/16px var(--fb);color:var(--ink-2)}
.mw-w8-sess{display:flex;flex-direction:column;margin:0 -8px}
.mw-w8-s{display:grid;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:12px;padding:7px 8px;border:0;border-radius:10px;background:none;text-align:left;font:inherit;color:inherit;cursor:pointer}
.mw-w8-s:hover{background:var(--hover)}
.mw-w8-s:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}
.mw-date-tile{display:flex;flex-direction:column;align-items:center;justify-content:center;width:40px;height:42px;border:1px solid var(--line);border-radius:9px;background:var(--card);box-shadow:0 1px 2px rgba(15,23,42,.04)}
.mw-dt-m{font:700 9.5px/1 var(--fb);letter-spacing:.06em;text-transform:uppercase;color:var(--st-delayed-text)}
.mw-dt-d{margin-top:3px;font:700 16px/1 var(--fh);color:var(--ink)}
.mw-w8-st{display:flex;flex-direction:column;gap:2px;min-width:0}
.mw-w8-t{font:500 13px/17px var(--fb);color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mw-w8-m{font:400 12px/16px var(--fb);color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mw-w8-cap{font:600 11.5px/1 var(--fb);color:var(--ink-2);white-space:nowrap;font-variant-numeric:tabular-nums}
.mw-w8-cap.is-full{color:var(--muted)}
@container (max-width:440px){.mw-w8-top{grid-template-columns:minmax(0,1fr);justify-items:center;gap:16px}.mw-w8-segs{width:100%}.mw-w8-seg{grid-template-columns:minmax(0,120px) minmax(0,1fr)}}

/* ---------- W9 · release pipeline ---------- */
.mw-rel-list{display:flex;flex-direction:column;margin:0 -10px}
.mw-rel{display:flex;flex-direction:column;gap:8px;padding:12px 10px;border:0;border-radius:10px;background:none;text-align:left;font:inherit;color:inherit;cursor:pointer;transition:background-color var(--dur-1)}
.mw-rel+.mw-rel{box-shadow:inset 0 1px 0 var(--line-soft)}
.mw-rel:hover{background:var(--hover)}
.mw-rel:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}
.mw-rel-top{display:flex;align-items:center;gap:8px;min-width:0}
.mw-rel-l{font:600 14px/1.2 var(--fh);color:var(--ink);white-space:nowrap}
.mw-kind{display:inline-flex;align-items:center;height:20px;padding:0 7px;border-radius:6px;background:var(--bg-2);color:var(--ink-2);font:600 11px/1 var(--fb);white-space:nowrap}
.mw-rel-ents{display:inline-flex;flex:none;gap:6px;min-width:0}
.mw-rel-sub{display:flex;align-items:center;flex-wrap:wrap;gap:4px 10px;min-width:0}
.mw-rel-t{min-width:0;font:400 12.5px/17px var(--fb);color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mw-steps-wrap{display:flex;flex-direction:column;gap:6px}
.mw-steps{display:flex;align-items:center;min-width:0}
.mw-step{position:relative;flex:none;width:10px;height:10px;border-radius:50%;background:var(--card);box-shadow:inset 0 0 0 1.5px var(--st-future-line)}
.mw-step.is-done{background:var(--st-complete);box-shadow:none}
.mw-step.is-late{background:var(--st-delayed);box-shadow:none}
.mw-step.is-current{width:14px;height:14px;background:var(--card);box-shadow:inset 0 0 0 3px var(--st-active),0 0 0 3px var(--st-active-soft)}
.mw-step-line{position:relative;flex:1 1 auto;min-width:6px;height:2px;margin:0 3px;border-radius:1px;background:var(--line)}
.mw-step-line.is-done{background:color-mix(in srgb,var(--st-complete) 45%,var(--card))}
.mw-step-line.has-today::after{content:"";position:absolute;left:50%;top:-5px;width:2px;height:12px;margin-left:-1px;border-radius:1px;background:var(--ink-2)}
.mw-step-cur{font:500 12px/16px var(--fb);color:var(--st-active-text)}

/* ---------- Projects (W3 + W14) ---------- */
.mw-proj-filter{display:flex;align-items:center;flex-wrap:wrap;gap:10px 16px;margin-bottom:14px}
.mw-proj-dist{flex:1 1 200px;max-width:360px}
.mw-proj-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(248px,1fr));gap:14px}
.mw-pc{position:relative;display:flex;flex-direction:column;gap:10px;min-width:0;padding:14px 14px 12px;border:1px solid var(--line);border-radius:12px;background:var(--card);text-align:left;font:inherit;color:inherit;transition:border-color var(--dur-1),box-shadow var(--dur-1),opacity var(--dur-2)}
.mw-pc:hover{border-color:var(--line-2);box-shadow:var(--shadow-sm)}
.mw-pc.is-faded{opacity:.4}
.mw-pc.is-focus{border-color:var(--brand-line);box-shadow:0 0 0 3px var(--brand-soft)}
.mw-pc-hit{position:absolute;inset:0;z-index:0;padding:0;border:0;border-radius:inherit;background:none;cursor:pointer}
.mw-pc-hit:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.mw-pc>*:not(.mw-pc-hit){position:relative;z-index:1;pointer-events:none}
.mw-pc .mw-pc-menu,.mw-pc .ui-ragstrip{pointer-events:auto}
.mw-ws{cursor:pointer}
.mw-ws>*{pointer-events:none}
.mw-ws:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.mw-pc-r1{display:flex;align-items:center;gap:8px;min-width:0}
.mw-pc-code .ui-ent-code{font:700 14px/1 var(--fh);letter-spacing:.02em;color:var(--ink)}
.mw-pc-code .flag-img{width:20px;height:14px}
.mw-pc-name{min-width:0;font:500 13px/1.2 var(--fb);color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mw-pc-mine{margin-top:-4px}
.mw-pc-menu{margin:-6px -8px -6px -2px;color:var(--muted)}
.mw-pc-r2{display:flex;align-items:center;gap:8px;min-width:0;font:500 12px/1 var(--fb)}
.mw-pc-r2 .mw-phase{margin-left:auto}
.mw-phase{display:inline-flex;align-items:center;height:20px;padding:0 8px;border-radius:6px;background:var(--bg-2);color:var(--ink-2);font:600 11.5px/1 var(--fb);white-space:nowrap}
.mw-mine-badge{display:inline-flex;align-items:center;height:20px;padding:0 8px;border-radius:var(--radius-pill);background:var(--brand-softer);color:var(--brand-text);font:600 11px/1 var(--fb);white-space:nowrap}
.mw-pc-r3 .mw-co-lab{margin-bottom:5px}
.mw-pc-r4{display:flex;align-items:center;gap:6px;font:500 12.5px/1.2 var(--fb);color:var(--ink-2)}
.mw-pc-r4 .i{color:var(--muted)}
.mw-pc-r4 .mw-dpill{margin-left:auto}
.mw-pc-r5{display:flex;flex-wrap:wrap;gap:4px 12px;font:400 12px/16px var(--fb);color:var(--muted)}
.mw-pc-count b{font-weight:600;color:var(--muted)}
.mw-pc-count.has b{color:var(--ink)}
.mw-pc-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:2px;padding-top:10px;border-top:1px solid var(--line-soft);font:400 11.5px/1 var(--fb)}
.mw-pcx{display:flex;flex-direction:column}
.mw-pcx-row{display:grid;grid-template-columns:62px 24px minmax(0,1fr) 50px;align-items:center;gap:10px;min-height:48px;padding:6px 2px;border:0;border-top:1px solid var(--line-soft);background:none;text-align:left;font:inherit;color:inherit;cursor:pointer}
.mw-pcx-row:first-child{border-top:0}
.mw-pcx-row .mw-dpill{justify-self:end}
.mw-pcx-row:focus-visible{outline:2px solid var(--focus);outline-offset:-2px;border-radius:8px}
.mw-tcell-ent{display:inline-flex;align-items:center;gap:8px;min-width:0}
.mw-tname{font:500 13px/1.2 var(--fb);color:var(--ink);white-space:nowrap}
.mw-cell-link{display:inline-flex;align-items:center;justify-content:flex-end;width:100%;padding:2px 0;border:0;background:none;font:inherit;color:inherit;cursor:pointer;border-radius:4px}
.mw-cell-link:hover{color:var(--brand-text);text-decoration:underline;text-underline-offset:2px}
.mw-w3 .ui-table .ui-bullet{min-width:120px}
.mw-inline-ctl{display:flex;align-items:center;gap:8px;margin:-2px 0 8px}
.mw-inline-ctl label{font:500 12px/1 var(--fb)}
.mw-select{height:30px;padding:0 28px 0 10px;border:1px solid var(--line-2);border-radius:var(--radius-sm);background-color:var(--card);color:var(--ink);font:500 12.5px/1 var(--fb)}
.mw-select:focus-visible{outline:2px solid var(--focus);outline-offset:1px}

/* ---------- Progress over time: status-history grid ---------- */
.mw-hgrid{display:flex;flex-direction:column;gap:10px;margin-top:6px}
.mw-hgrid-row{display:grid;grid-template-columns:70px auto;align-items:center;gap:14px}
.mw-hgrid-row.is-faded{opacity:.35}
.mw-hgrid-x{display:flex;justify-content:space-between;max-width:260px;margin:8px 0 0 84px;font:400 11px/1 var(--fb)}

/* ---------- W10 · stage gates ---------- */
.mw-gates-wrap{overflow-x:auto;margin:0 -4px;padding:0 4px}
.mw-gates{width:100%;border-collapse:separate;border-spacing:0}
.mw-gates th{height:28px;padding:0 3px;font:600 11px/1 var(--fb);color:var(--muted);text-align:center;white-space:nowrap}
.mw-gates th.mw-g-rh{text-align:left;padding-left:0}
.mw-gates tbody th,.mw-gates tbody td{height:42px;padding:0 3px;border-top:1px solid var(--line-soft);text-align:center;vertical-align:middle}
.mw-gates tbody th.mw-g-rh{padding-left:0;text-align:left;white-space:nowrap}
.mw-gates td.is-today-after{position:relative}
.mw-gates td.is-today-after::after{content:"";position:absolute;right:-1px;top:6px;bottom:6px;width:2px;border-radius:1px;background:var(--mark-today);opacity:.55}
.mw-g-n{font:600 12px/1 var(--fb);color:var(--ink-2);font-variant-numeric:tabular-nums;text-align:right!important;padding-left:8px!important}
.mw-g-cell{display:inline-grid;place-items:center;width:28px;height:28px;padding:0;border:0;border-radius:8px;background:none;cursor:pointer;vertical-align:middle}
span.mw-g-cell{cursor:default}
.mw-g-cell:focus-visible{outline:2px solid var(--focus);outline-offset:1px}
.mw-g-cell.tone-done{background:var(--st-complete-soft);color:var(--st-complete-text)}
.mw-g-cell.tone-upcoming{background:var(--card);color:var(--ink-2);box-shadow:inset 0 0 0 1px var(--line-2)}
.mw-g-cell.tone-upcoming .i{width:10px;height:10px}
.mw-g-cell.is-golive.tone-upcoming{background:var(--bg-2);box-shadow:none}
.mw-g-cell.is-golive.tone-upcoming .i{width:14px;height:14px}
.mw-g-cell.tone-risk{background:var(--st-atrisk-soft);color:var(--st-atrisk-text);box-shadow:inset 0 0 0 1px var(--st-atrisk)}
.mw-g-cell.tone-late{background:var(--st-delayed-soft);color:var(--st-delayed-text);box-shadow:inset 0 0 0 1px var(--st-delayed)}
.mw-g-cell.tone-golive{background:var(--ink);color:#fff}
.mw-g-cell.tone-none{box-shadow:inset 0 0 0 1.5px var(--line-2);background:repeating-linear-gradient(135deg,transparent 0 4px,var(--line-soft) 4px 5px)}
.mw-g-cell:not(span):hover{filter:brightness(.97);transform:translateY(-1px)}
.mw-g-cell.is-mini{width:14px;height:14px;border-radius:4px}
.mw-g-todaykey{display:inline-block;width:2px;height:12px;border-radius:1px;background:var(--mark-today);opacity:.55}
.mw-g-legend{margin-top:10px}
.mw-gsx{display:flex;flex-direction:column}
.mw-gsx-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px solid var(--line-soft)}
.mw-gsx-row:first-child{border-top:0}
.mw-gsx-h{display:flex;align-items:center;gap:8px}
.mw-gsx-dots{display:flex;gap:5px}
.mw-g-dot{width:12px;height:12px;border-radius:4px;background:var(--bg-2);box-shadow:inset 0 0 0 1px var(--line-2)}
.mw-g-dot.tone-done{background:var(--st-complete);box-shadow:none}.mw-g-dot.tone-late{background:var(--st-delayed);box-shadow:none}
.mw-g-dot.tone-risk{background:var(--st-atrisk);box-shadow:none}.mw-g-dot.tone-upcoming{background:var(--card);box-shadow:inset 0 0 0 1.5px var(--line-3)}
.mw-g-dot.tone-golive{background:var(--ink);box-shadow:none}
/* project scope: the milestone track */
.mw-mst{position:relative;height:56px;margin:18px 12px 4px}
.mw-mst-line{position:absolute;left:0;right:0;top:20px;height:4px;border-radius:2px;background:var(--track);overflow:hidden}
.mw-mst-fill{position:absolute;left:0;top:0;bottom:0;background:color-mix(in srgb,var(--st-complete) 55%,var(--card))}
.mw-mst-today{position:absolute;top:8px;width:2px;height:28px;margin-left:-1px;border-radius:1px;background:var(--mark-today)}
.mw-mst-d{position:absolute;top:15px;width:14px;height:14px;margin-left:-7px;padding:0;border:0;background:none;cursor:pointer}
.mw-mst-d::before{content:"";position:absolute;inset:1px;transform:rotate(45deg);border-radius:2px;background:var(--card);box-shadow:inset 0 0 0 1.75px var(--ms-upcoming)}
.mw-mst-d.tone-done::before{background:var(--ms-done);box-shadow:0 0 0 1.5px var(--card)}
.mw-mst-d.tone-late::before{background:var(--ms-late);box-shadow:0 0 0 1.5px var(--card)}
.mw-mst-d.tone-risk::before{background:var(--ms-risk);box-shadow:0 0 0 1.5px var(--card)}
.mw-mst-d:focus-visible{outline:2px solid var(--focus);outline-offset:3px;border-radius:4px}
.mw-mst-d:not(.is-gate){width:11px;height:11px;margin-left:-5.5px;top:16.5px}   /* gates read first; other milestones are smaller */
.mw-mst-d.is-gate{z-index:1}
.mw-mst-d.is-up{top:1px}   /* lifted above the line when it would sit on a neighbour */
.mw-mst-g{position:absolute;top:22px;left:50%;transform:translateX(-50%);font:600 10px/1 var(--fb);color:var(--muted);white-space:nowrap}
.mw-ms-list{display:flex;flex-direction:column}
.mw-ms-row{display:flex;align-items:center;gap:10px;min-height:38px;padding:4px 0;border-top:1px solid var(--line-soft);font:400 13px/18px var(--fb);color:var(--ink)}
.mw-ms-row:first-child{border-top:0}
.mw-ms-row.is-btn{width:100%;border-left:0;border-right:0;border-bottom:0;background:none;text-align:left;cursor:pointer}
.mw-ms-row.is-btn:hover{background:var(--hover)}
.mw-ms-row.is-btn:focus-visible{outline:2px solid var(--focus);outline-offset:-2px;border-radius:6px}
.mw-ms-n{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mw-ms-dia{flex:none;display:inline-block;width:10px;height:10px;margin:0 2px;transform:rotate(45deg);border-radius:2px;background:var(--card);box-shadow:inset 0 0 0 1.75px var(--ms-upcoming)}
.mw-ms-dia.tone-done{background:var(--ms-done);box-shadow:none}
.mw-ms-dia.tone-late{background:var(--ms-late);box-shadow:none}
.mw-ms-dia.tone-risk{background:var(--ms-risk);box-shadow:none}
.mw-ms-dia.tone-golive{background:var(--mark-golive);box-shadow:none;width:11px;height:11px}
.mw-freeze-key{display:inline-block;width:18px;height:10px;border-radius:2px;background:repeating-linear-gradient(135deg,rgb(var(--grey-rgb) / .45) 0 1.5px,rgb(var(--grey-rgb) / .10) 1.5px 5px)}
.mw-wk-list{display:flex;flex-direction:column;gap:12px}
.mw-wk-h{margin-bottom:2px;font:600 12px/16px var(--fb);color:var(--muted)}

/* ---------- W15 · RAID ---------- */
.mw-w15-hm{margin:0 0 4px}
.mw-types{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-top:6px}
.mw-type{display:flex;flex-direction:column;align-items:flex-start;gap:1px;min-width:0;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--card);text-align:left;font:inherit;color:inherit;cursor:pointer;transition:border-color var(--dur-1),background-color var(--dur-1)}
.mw-type:hover{border-color:var(--line-2);background:var(--card-2)}
.mw-type:focus-visible{outline:2px solid var(--focus);outline-offset:1px}
.mw-type-v{font:600 18px/22px var(--fh);color:var(--ink);font-variant-numeric:tabular-nums}
.mw-type-l{font:500 11.5px/14px var(--fb);color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.mw-type-s{font:400 10.5px/13px var(--fb);color:var(--faint)}
.mw-top{display:flex;flex-direction:column;margin:10px -8px 0}
.mw-top-row{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:10px;padding:8px;border:0;border-radius:10px;background:none;text-align:left;font:inherit;color:inherit;cursor:pointer}
.mw-top-row:hover{background:var(--hover)}
.mw-top-row:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}
.mw-top-row .ui-sev{margin-top:1px}
.mw-top-main{display:flex;flex-direction:column;gap:3px;min-width:0}
.mw-top-t{font:500 13px/17px var(--fb);color:var(--ink);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.mw-top-m{display:flex;align-items:center;gap:8px;min-width:0;font:400 12px/16px var(--fb)}
.mw-top-m .mw-muted{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mw-dec{margin-top:6px}
@container (max-width:380px){.mw-types{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ---------- W16 · utilisation at XS: mini week bars ---------- */
.mw-ubars{display:flex;flex-direction:column}
.mw-ubar{display:flex;flex-direction:column;gap:6px;padding:9px 0;border:0;border-top:1px solid var(--line-soft);background:none;text-align:left;font:inherit;color:inherit;cursor:pointer}
.mw-ubar:first-child{border-top:0}
.mw-ubar:focus-visible{outline:2px solid var(--focus);outline-offset:-2px;border-radius:6px}
.mw-ubar-n{display:flex;justify-content:space-between;gap:10px;font:500 13px/16px var(--fb);color:var(--ink)}
.mw-ubar-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mw-ubar-pk{font:600 12px/16px var(--fb);color:var(--muted);font-variant-numeric:tabular-nums}
.mw-ubar-pk.is-over{color:var(--st-delayed-text)}
.mw-ubar-w{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:3px;align-items:end;height:22px}
.mw-ub{height:var(--h,10%);min-height:3px;border-radius:2px;background:var(--seq-2)}
.mw-ub.band-none{background:var(--line-soft)}.mw-ub.band-under{background:var(--line-2)}.mw-ub.band-ok{background:var(--seq-3)}
.mw-ub.band-warn{background:var(--st-atrisk-soft);box-shadow:inset 0 0 0 1px var(--st-atrisk)}.mw-ub.band-over{background:var(--st-delayed)}

/* ---------- W18 · agenda ---------- */
.mw-fam-chips{margin:-2px 0 10px}
.mw-fam-chips .ui-chips{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding-bottom:2px;padding-right:24px;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent)}
.mw-fam-chips .ui-chips::-webkit-scrollbar{display:none}
.mw-agenda{position:relative;max-height:432px;overflow:auto;margin:0 calc(-1 * var(--mw-pad));padding:0 var(--mw-pad) 4px;scrollbar-width:thin}
.mw-ag-day{position:sticky;top:0;z-index:2;display:flex;align-items:baseline;gap:8px;padding:10px 0 6px;background:var(--card);font:600 12px/16px var(--fb);color:var(--ink);border-bottom:1px solid var(--line-soft)}
.mw-ag-dd{font-weight:500;color:var(--muted)}
.mw-feed .mw-ag-day{position:static}
.mw-ev{display:grid;grid-template-columns:86px 28px minmax(0,1fr) auto auto;align-items:center;gap:10px;width:100%;min-height:48px;padding:6px 8px;margin:0 -8px;width:calc(100% + 16px);border:0;border-radius:10px;background:none;text-align:left;font:inherit;color:inherit;cursor:pointer}
.mw-ev:hover{background:var(--hover)}
.mw-ev:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}
.mw-ev-time{font:600 11.5px/16px var(--fb);color:var(--ink-2);font-variant-numeric:tabular-nums;white-space:nowrap}
.mw-ev-ico{display:grid;place-items:center;width:28px;height:28px;border-radius:8px;color:var(--fam,var(--muted));background:color-mix(in srgb,var(--fam,var(--muted)) 11%,var(--card))}
.mw-ev.fam-governance{--fam:var(--cat-1)}.mw-ev.fam-milestones{--fam:var(--cat-2)}.mw-ev.fam-cutover{--fam:var(--cat-3)}
.mw-ev.fam-releases{--fam:var(--cat-4)}.mw-ev.fam-people{--fam:var(--cat-5)}.mw-ev.fam-constraints{--fam:var(--cat-6)}
.mw-ev-main{display:flex;flex-direction:column;gap:1px;min-width:0}
.mw-ev-t{font:500 13px/17px var(--fb);color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mw-ev-m{font:400 11.5px/15px var(--fb);color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mw-ev-ents{display:inline-flex;gap:6px}
.mw-ev-ents .ui-ent-code{font-size:11px;color:var(--muted)}
.mw-ev-all{font:600 11px/1 var(--fb);color:var(--faint)}
.mw-for-you{display:inline-flex;align-items:center;height:20px;padding:0 7px;border-radius:var(--radius-pill);background:var(--brand-softer);color:var(--brand-text);font:600 10.5px/1 var(--fb);white-space:nowrap}
.mw-for-you.is-empty{visibility:hidden;width:0;padding:0}
@container (max-width:470px){.mw-ev{grid-template-columns:64px 28px minmax(0,1fr) auto}.mw-ev-ents{display:none}}

/* ---------- W19 · activity feed ---------- */
.mw-feed{display:flex;flex-direction:column;max-height:470px;overflow:auto;margin:0 calc(-1 * var(--mw-pad));padding:0 var(--mw-pad) 4px;scrollbar-width:thin}
.mw-fd{display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:start;gap:10px;padding:9px 8px;margin:0 -8px;width:calc(100% + 16px);border:0;border-radius:10px;background:none;text-align:left;font:inherit;color:inherit;cursor:pointer;animation:mw-in 200ms var(--ease-out)}
.mw-fd:hover{background:var(--hover)}
.mw-fd:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}
.mw-fd.is-mention{background:var(--brand-softer)}
.mw-fd-main{display:flex;flex-direction:column;gap:3px;min-width:0}
.mw-fd-line{font:400 13px/18px var(--fb);color:var(--ink-2)}
.mw-fd-line b{font-weight:600;color:var(--ink)}
.mw-fd-id{font-variant-numeric:tabular-nums}
.mw-fd-sub{display:flex;align-items:center;gap:8px;min-width:0}
.mw-fd-title{min-width:0;font:400 12px/16px var(--fb);color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mw-fd-when{font:500 11.5px/18px var(--fb);color:var(--faint);white-space:nowrap}
.mw-fd-new{display:flex;align-items:center;gap:10px;margin:8px 0;font:600 11px/1 var(--fb);color:var(--brand-text)}
.mw-fd-new::before,.mw-fd-new::after{content:"";flex:1;height:1px;background:var(--brand-line)}
@keyframes mw-in{from{opacity:0}to{opacity:1}}
@media (prefers-reduced-motion:reduce){.mw-fd{animation:none}}

/* ---------- drawers: attention "View all", data tables, customise ---------- */
.mw-drawer{display:flex;flex-direction:column;gap:14px;min-width:0}
.mw-drawer-head h2{margin:0;font:var(--t-title);letter-spacing:-.01em;color:var(--ink)}
.mw-drawer-head p{margin:4px 0 0;font:400 13px/18px var(--fb)}
.mw-att-drawer .mw-att-list{margin:0 -8px}
.mw-dt-title{margin:0;font:var(--t-title);color:var(--ink)}
.mw-dt-sub{margin:0;font:400 13px/18px var(--fb);color:var(--muted)}
.mw-dt{display:flex;flex-direction:column;gap:12px}
.mw-cust-sec{display:flex;flex-direction:column;gap:6px}
.mw-cust-h{margin:6px 0 0;font:600 12px/16px var(--fb);color:var(--muted);text-transform:none}
.mw-cust-list{display:flex;flex-direction:column;gap:4px;margin:0;padding:0;list-style:none}
.mw-cust-row{display:grid;grid-template-columns:18px minmax(0,1fr) auto auto;align-items:center;gap:8px;min-height:44px;padding:0 8px;border:1px solid var(--line);border-radius:10px;background:var(--card)}
.mw-cust-row.is-off .mw-cust-l span{color:var(--faint)}
.mw-cust-row.is-over{border-color:var(--focus);box-shadow:0 0 0 3px var(--brand-soft)}
.mw-cust-grip{color:var(--faint);cursor:grab}
.mw-cust-l{display:flex;align-items:center;gap:10px;min-width:0;font:500 13px/1.2 var(--fb);color:var(--ink);cursor:pointer}
.mw-cust-l input{width:16px;height:16px;accent-color:var(--brand)}
.mw-why{display:flex;flex-direction:column;gap:10px;width:min(620px,calc(100vw - 32px));padding:8px}
.mw-why-h{display:flex;flex-direction:column;gap:3px}
.mw-why-h strong{font:var(--t-title-sm);color:var(--ink)}
.mw-why-t:focus{outline:none}.mw-why-t:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.mw-why-h span,.mw-why-f{margin:0;font:400 12px/17px var(--fb);color:var(--muted)}
.mw-why .ui-hm-wrap{border:1px solid var(--line);border-radius:10px}
.mw-fallback{width:100%;border-collapse:collapse;font:400 12px/16px var(--fb)}
.mw-fallback th,.mw-fallback td{padding:4px 8px;border-bottom:1px solid var(--line-soft);text-align:right}
.mw-fallback th:first-child{text-align:left}

/* ---------- Custom Dashboard (§4.10) ---------- */
.mw-dash .ui-toolbar{margin:0 0 14px}
.mw-dash-intro{margin:0;font:400 13.5px/20px var(--fb);color:var(--muted)}
.mw-dash-pal{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin:0 0 14px;padding:10px 12px;border:1px dashed var(--line-2);border-radius:12px;background:var(--card-2)}
.mw-dash-grid{margin-top:2px}
.mw-dash-empty{grid-column:1/-1;border:1px dashed var(--line-2);border-radius:12px;background:var(--card)}
.mw-widget.is-editing{outline:1px dashed var(--line-3);outline-offset:3px}
.mw-dash-ctl{display:flex;align-items:center;justify-content:flex-end;gap:2px;margin:-6px -6px 8px 0;padding:0 0 6px;border-bottom:1px dashed var(--line-2)}
.mw-dash-ctl-l{flex:1 1 auto;min-width:0;font:600 11.5px/16px var(--fb);letter-spacing:.04em;text-transform:uppercase;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mw-dash-pal-l{font:600 12.5px/18px var(--fb);color:var(--ink-2);margin-right:4px}
.mw-dash-pal .mw-flex{flex:1 1 auto}
.mw-dash-added.btn:disabled{opacity:1;color:var(--muted);background:none;border-color:transparent;cursor:default}
.mw-dash-added .i{color:var(--st-complete-text, var(--muted))}
.mw-bare.mw-widget.is-editing>.mw-dash-ctl{margin:0 0 8px}
.mw-dash-ctl+.card-head{margin-top:0}

/* ---------- Present mode ---------- */
body.mw-present .sidebar,body.mw-present .topbar,body.mw-present .mobile-tabbar,body.mw-present .sidebar-backdrop{display:none!important}
body.mw-present .app{grid-template-columns:minmax(0,1fr)!important}
body.mw-present .mw-root{font-size:115%}
body.mw-present .mw-head .mw-head-r .mw-bp,body.mw-present .mw-more{display:none}
body.mw-present .mw-grid>.vne-card .card-title{font-size:16px;line-height:22px}
body.mw-present .mw-w1-verdict{font:var(--t-display-lg)}
body.mw-present .mw-kpis .kpi-card .v.kpi-value{font-size:32px;line-height:36px}
.mw-present-controls{position:fixed;right:20px;bottom:20px;z-index:var(--z-toast);display:flex;align-items:center;gap:8px;padding:8px 8px 8px 14px;border:1px solid var(--line);border-radius:14px;background:var(--card);box-shadow:var(--shadow)}
.mw-present-l{font:500 12.5px/1.2 var(--fb);color:var(--muted);white-space:nowrap}

/* ---------- XS (content < 560): static header, inline jump chips ---------- */
@container mw (max-width:559.98px){
  .mw-head{position:relative;top:auto;margin:calc(-1 * var(--gutter)) calc(-1 * var(--gutter)) 0;padding:12px var(--gutter) 10px;background:var(--bg);-webkit-backdrop-filter:none;backdrop-filter:none;gap:10px}
  .mw-head-l{flex:1 1 100%;justify-content:space-between}
  /* three tidy rows, nothing clipped: scope + as-at · lens + board pack + ⋯ · window + live (then focus, jump chips) */
  .mw-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center}
  .mw-head-l{grid-column:1/-1}
  .mw-head-c,.mw-head-r{display:contents}
  .mw-head-c>[data-mw-lens]{grid-row:2;grid-column:1}
  .mw-head-r>.mw-bp{grid-row:2;grid-column:3}
  .mw-head-r>.mw-more{grid-row:2;grid-column:4}
  .mw-head-c>[data-mw-window]{grid-row:3;grid-column:1/3;justify-self:start}
  .mw-head-r>.mw-live{grid-row:3;grid-column:3/5;justify-self:end}
  .mw-head-c>.mw-focus{grid-column:1/-1;justify-self:start}
  .mw-head>.mw-jump{grid-column:1/-1}
  .mw-scope{max-width:220px;min-width:0;flex:0 1 auto}
  .mw-asat{flex:none}
  .mw-live{max-width:120px}
  .mw-live-b{display:none}
  .mw-bp .btn-label{display:none}
  .mw-jump{position:static;flex:1 1 100%;height:auto;opacity:1;visibility:visible;transform:none;overflow-x:auto;margin:0 calc(-1 * var(--gutter));padding:0 var(--gutter);background:none;-webkit-backdrop-filter:none;backdrop-filter:none;border:0!important;transition:none}
  .mw-jump::-webkit-scrollbar{display:none}
  .mw-jump-a{flex:none;height:30px;border:1px solid var(--line);background:var(--card)}
  .mw-sec{scroll-margin-top:12px}
  .mw-att-acts .btn{width:32px;height:32px}
  .mw-grid>.vne-card .card-head{row-gap:8px}
  .mw-grid>.vne-card .card-head .card-menu{order:2}
  .mw-grid>.vne-card .card-head .card-control{order:3;flex:1 1 100%}
}
@media (max-width:767px) and (pointer:coarse){
  .mw-att-acts .btn{min-width:44px;min-height:44px}
  .mw-jump-a,.mw-w1-dim,.mw-ev,.mw-fd,.mw-ms-row.is-btn{min-height:44px}
}
@media (prefers-reduced-motion:reduce){.mw-head,.mw-jump,.mw-att-acts,.mw-pc{transition:none}}
@media print{
  .mw-head,.mw-jump,.mw-att-acts,.card-menu,.mw-present-controls{display:none!important}
  .mw-band{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .mw-agenda,.mw-feed{max-height:none;overflow:visible}
}
/* EX-13: capacity named when it is off the chart's scale */
.mw-cap-note{display:flex;align-items:center;gap:6px;margin:6px 0 0;font:var(--t-caption);color:var(--muted)}
/* EX-26: secondary cards take their content's height (no stretched blank areas) */
.mw-widget.mw-w17,.mw-widget.mw-w16,.mw-widget.mw-w18{align-self:start}
.mw-dash-grid>.mw-widget{align-self:start}   /* custom Dashboard: every card takes its content's height */
