/* Cadence editorial shell — opt in with theme.shell = "editorial". */
body[data-shell="editorial"] {
  --cp-ink:#171716; --cp-paper:#f7f7f5; --cp-surface:#fff; --cp-muted:#6f706c;
  --cp-rule:#d9d9d4; --cp-soft:#ecece8; --cp-cadence:#361a4c; --cp-accent:var(--cp-cadence); --cp-tenant-accent:var(--tenant-accent,var(--cp-cadence));
  --cp-positive:#147a5a; --cp-warning:#a14e14; --cp-risk:#b23a48; --bg:var(--cp-paper); --canvas:var(--cp-paper);
  background:var(--cp-paper); color:var(--cp-ink); font-family:"Instrument Sans",Arial,sans-serif;
}
body[data-layout="topbar"][data-shell="editorial"] .app-shell { grid-template-rows:auto 1fr; }
body[data-layout="topbar"][data-shell="editorial"] .sidebar {
  min-height:78px; padding:0 30px; display:grid;
  grid-template-columns:minmax(230px,1fr) auto minmax(230px,1fr);
  align-items:center; gap:24px; background:var(--cp-surface);
  border-bottom:1px solid var(--cp-rule); box-shadow:none;
}
body[data-layout="topbar"][data-shell="editorial"] .sidebar::after { display:none; }
body[data-layout="topbar"][data-shell="editorial"] .sidebar-brand { justify-self:start; padding:0; margin:0; border:0; }
/* Lockup rules retired (jewel letters + hand-measured geometry): the lockup is now ONE
   canonical structure — .cp-lockup in retail-afa-v2.css, emitted by applyTenant(). */
body[data-layout="topbar"][data-shell="editorial"] .sidebar-nav { justify-self:center; height:100%; gap:22px; }
body[data-layout="topbar"][data-shell="editorial"] .nav-group,
body[data-layout="topbar"][data-shell="editorial"] .nav-group-flat { height:100%; }
body[data-layout="topbar"][data-shell="editorial"] .nav-group-label,
body[data-layout="topbar"][data-shell="editorial"] .nav-item-top,
body[data-layout="topbar"][data-shell="editorial"] .nav-group[style*="--nav-accent"] > .nav-group-label,
body[data-layout="topbar"][data-shell="editorial"] .nav-group[style*="--nav-accent"] .nav-item-top {
  height:100%; padding:0 1px; color:var(--cp-muted)!important;
  background:transparent!important; border-bottom:2px solid transparent!important;
  font-size:14px; font-weight:400;
}
body[data-layout="topbar"][data-shell="editorial"] .nav-group:hover > .nav-group-label,
body[data-layout="topbar"][data-shell="editorial"] .nav-group:focus-within > .nav-group-label,
body[data-layout="topbar"][data-shell="editorial"] .nav-item-top:hover { color:var(--cp-ink)!important; }
body[data-layout="topbar"][data-shell="editorial"] .nav-group:has(.nav-item.active) > .nav-group-label,
body[data-layout="topbar"][data-shell="editorial"] .nav-item-top.active {
  color:var(--cp-ink)!important; border-bottom-color:var(--cp-accent)!important; font-weight:500;
}
body[data-layout="topbar"][data-shell="editorial"] .nav-soon .nav-item-top { color:#aaa9a4!important; }
body[data-layout="topbar"][data-shell="editorial"] .nav-group-items {
  top:calc(100% + 1px); background:var(--cp-surface); border:1px solid var(--cp-rule);
  border-radius:8px; box-shadow:0 18px 45px rgba(23,23,22,.12);
}
body[data-layout="topbar"][data-shell="editorial"] .nav-group-items .nav-item { color:var(--cp-muted); font-weight:400; }
body[data-layout="topbar"][data-shell="editorial"] .nav-group-items .nav-item:hover,
body[data-layout="topbar"][data-shell="editorial"] .nav-group-items .nav-item.active {
  color:var(--cp-ink); background:var(--cp-paper);
}
/* PACE tenants under the editorial shell (Seviroli): phase groups carry --nav-accent and must
   render the canon PACE phase colors (demo/rwmercer parity: Plan #2f6b52, Act #44548f,
   Coordinate #4b2a63, Evaluate #a63d33), not the muted domain-tab gray above. Selectors are
   scoped to [style*="--nav-accent"], which only PACE phase groups emit — FV/NWO groups carry
   no color, so this block cannot touch them. Declared after the gray rules to win the
   !important order tie. */
body[data-layout="topbar"][data-shell="editorial"] .nav-group[style*="--nav-accent"] > .nav-group-label,
body[data-layout="topbar"][data-shell="editorial"] .nav-group[style*="--nav-accent"] .nav-item-top,
body[data-layout="topbar"][data-shell="editorial"] .nav-group[style*="--nav-accent"]:hover > .nav-group-label,
body[data-layout="topbar"][data-shell="editorial"] .nav-group[style*="--nav-accent"].open > .nav-group-label,
body[data-layout="topbar"][data-shell="editorial"] .nav-group[style*="--nav-accent"]:focus-within > .nav-group-label {
  color: var(--nav-accent) !important;
}
body[data-layout="topbar"][data-shell="editorial"] .nav-group[style*="--nav-accent"]:has(.nav-item.active) > .nav-group-label,
body[data-layout="topbar"][data-shell="editorial"] .nav-group[style*="--nav-accent"] .nav-item-top.active {
  color: var(--nav-accent) !important;
  border-bottom-color: var(--nav-accent) !important;
  font-weight: 600;
}
/* base hide moved to retail-afa-v2.css (leak fix 2026-08-11) */
body[data-layout="topbar"][data-shell="editorial"] .shell-actions {
  justify-self:end; display:flex; align-items:center; gap:18px;
}
body[data-layout="topbar"][data-shell="editorial"] .shell-actions button {
  border:0; padding:8px 0; background:transparent; color:var(--cp-muted);
  font:inherit; font-size:13px; cursor:pointer;
}
body[data-layout="topbar"][data-shell="editorial"] .shell-actions .shell-ask {
  padding:9px 16px; color:var(--cp-ink); border:1px solid var(--cp-rule); border-radius:999px;
}
body[data-layout="topbar"][data-shell="editorial"] .sidebar-footer { display:none; }
body[data-layout="topbar"][data-shell="editorial"] .topbar { display:none!important; }
body[data-shell="editorial"] .main, body[data-shell="editorial"] .view { background:var(--cp-paper); }
@media(max-width:1040px){
  body[data-layout="topbar"][data-shell="editorial"] .sidebar { grid-template-columns:auto 1fr auto; padding:0 20px; }
  body[data-layout="topbar"][data-shell="editorial"] .sidebar-nav { gap:14px; }
}
@media(max-width:820px){
  body[data-layout="topbar"][data-shell="editorial"] .sidebar { min-height:auto; grid-template-columns:1fr auto; padding:13px 18px; }
  body[data-layout="topbar"][data-shell="editorial"] .sidebar-nav { grid-column:1/-1; justify-self:stretch; overflow-x:auto; padding-top:8px; }
}
/* Executive editorial composition — live FV data, shared primitives. */
body[data-shell="editorial"] .view { padding:0 32px 42px; }
.cp-exec { max-width:1560px; margin:0 auto; color:var(--cp-ink); }
.cp-exec-context {
  min-height:72px; display:flex; align-items:center; justify-content:space-between; gap:24px;
  color:var(--cp-muted); border-bottom:1px solid var(--cp-rule); font-size:13px;
}
.cp-exec-context b { color:var(--cp-ink); font-weight:500; }
.cp-exec-context-right { display:flex; align-items:center; gap:16px; }
.cp-period .seg { display:flex; padding:3px; gap:2px; border:1px solid var(--cp-rule); border-radius:999px; background:var(--cp-surface); }
.cp-period .seg-btn {
  min-height:0; padding:7px 13px; border:0; border-radius:999px; background:transparent;
  color:var(--cp-muted); font-size:12px; font-weight:400;
}
.cp-period .seg-btn.active { color:#fff; background:var(--cp-ink); box-shadow:none; }
.cp-exec-hero {
  display:grid; grid-template-columns:minmax(0,1.5fr) minmax(320px,.64fr);
  gap:58px; align-items:start; padding:52px 0 42px;
}
.cp-kicker {
  margin:0 0 13px; color:var(--cp-accent); font-size:11px; font-weight:600;
  letter-spacing:.14em; text-transform:uppercase;
}
.cp-exec-hero h1 {
  max-width:850px; margin:0; color:var(--cp-ink);
  font-family:"Instrument Serif",Georgia,serif; font-size:clamp(44px,4.6vw,72px);
  font-weight:400; line-height:.98; letter-spacing:-.035em;
}
.cp-exec-hero h1 em { color:var(--cp-accent); font-style:normal; }
.cp-exec-read {
  max-width:760px; margin:22px 0 0; color:var(--cp-muted);
  font-size:15px; line-height:1.65;
}
.cp-cadence-read {
  padding:26px; color:#fff; background:var(--cp-ink); border-radius:10px;
  box-shadow:0 18px 50px rgba(18,18,17,.12);
}
.cp-ai-label {
  display:flex; align-items:center; gap:10px; margin:0 0 28px;
  color:#aaa9a4; font-size:10px; font-weight:600; letter-spacing:.13em; text-transform:uppercase;
}
.cp-ai-label i { width:9px; height:9px; background:var(--cp-cadence); transform:rotate(45deg); }
.cp-cadence-read h2 {
  margin:0 0 12px; color:#fff; font-family:"Instrument Serif",Georgia,serif;
  font-size:28px; font-weight:400; line-height:1.04;
}
.cp-cadence-read > p:not(.cp-ai-label) { margin:0; color:#c5c4bf; font-size:13px; line-height:1.58; }
.cp-cadence-read button {
  margin-top:22px; padding:0 0 5px; border:0; border-bottom:1px solid #777671;
  background:transparent; color:#fff; font:inherit; font-size:12px; cursor:pointer;
}
.cp-proof-strip {
  display:grid; grid-template-columns:repeat(5,minmax(0,1fr));
  border-top:1px solid var(--cp-rule); border-bottom:1px solid var(--cp-rule);
}
.cp-proof {
  position:relative; display:grid; gap:5px; min-width:0; padding:22px 20px;
  text-align:left; border:0; border-right:1px solid var(--cp-rule);
  background:transparent; cursor:pointer;
}
.cp-proof:first-child { padding-left:0; }
.cp-proof:last-child { border-right:0; }
.cp-proof.active::after {
  content:""; position:absolute; left:0; right:20px; bottom:-1px; height:3px; background:var(--cp-accent);
}
.cp-proof > span { color:var(--cp-muted); font-size:11px; }
.cp-proof > strong {
  color:var(--cp-ink); font-family:"Instrument Serif",Georgia,serif;
  font-size:32px; font-weight:400; letter-spacing:-.02em;
}
.cp-proof > small { font-size:11px; }
.cp-proof .positive { color:var(--cp-positive); }
.cp-proof .warning { color:var(--cp-warning); }
.cp-evidence {
  display:grid; grid-template-columns:minmax(0,1.46fr) minmax(310px,.54fr);
  gap:58px; padding-top:40px;
}
.cp-section-head {
  display:flex; align-items:baseline; justify-content:space-between; gap:16px; margin-bottom:16px;
}
.cp-section-head h2 { margin:0; color:var(--cp-ink); font-size:18px; font-weight:500; }
.cp-section-head span { color:var(--cp-muted); font-size:11px; }
.cp-trajectory .hl-chart { width:100%; max-height:315px; }
.cp-movers { padding-left:34px; border-left:1px solid var(--cp-rule); }
.cp-mover {
  display:block; width:100%; padding:13px 0 15px; text-align:left;
  border:0; border-bottom:1px solid var(--cp-rule); background:transparent; cursor:pointer;
}
.cp-mover-line { display:flex; justify-content:space-between; gap:16px; color:var(--cp-ink); font-size:12px; }
.cp-mover-line b { font-weight:600; }
.cp-mover-bar { display:block; height:5px; margin:9px 0 5px; overflow:hidden; background:var(--cp-soft); }
.cp-mover-bar i { display:block; height:100%; background:var(--cp-ink); }
.cp-mover.risk .cp-mover-bar i { background:var(--cp-risk); }
.cp-mover small { color:var(--cp-muted); font-size:10px; }
.cp-source { padding-top:34px; color:var(--cp-muted); font-size:10px; }
@media(max-width:920px){
  body[data-shell="editorial"] .view { padding-inline:20px; }
  .cp-exec-hero,.cp-evidence { grid-template-columns:1fr; }
  .cp-proof-strip { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .cp-proof { border-bottom:1px solid var(--cp-rule); }
  .cp-movers { padding:28px 0 0; border-left:0; border-top:1px solid var(--cp-rule); }
}
@media(max-width:620px){
  .cp-exec-context,.cp-exec-context-right { align-items:flex-start; flex-direction:column; }
  .cp-exec-context { padding:16px 0; }
  .cp-exec-hero { gap:30px; padding:36px 0 30px; }
  .cp-proof-strip { grid-template-columns:1fr; }
  .cp-proof { padding-left:0; border-right:0; }
}
/* Persistent product navigation */
/* base hide moved to retail-afa-v2.css (leak fix 2026-08-11) */
body[data-layout="topbar"][data-shell="editorial"] .shell-context-nav {
  position:sticky; top:78px; z-index:20; min-height:47px; padding:0 32px;
  display:flex; align-items:center; gap:24px; background:color-mix(in srgb,var(--cp-surface) 96%,transparent);
  border-bottom:1px solid var(--cp-rule); backdrop-filter:blur(12px);
}
body[data-layout="topbar"][data-shell="editorial"] .shell-context-nav[hidden] { display:none!important; }
body[data-shell="editorial"] .shell-context-label {
  flex:none; padding-right:23px; border-right:1px solid var(--cp-rule); color:var(--cp-muted);
  font-size:10px; font-weight:600; letter-spacing:.12em; text-transform:uppercase;
}
body[data-shell="editorial"] .shell-context-links { min-width:0; display:flex; align-self:stretch; gap:22px; overflow-x:auto; }
body[data-shell="editorial"] .shell-context-link {
  position:relative; flex:none; padding:0; border:0; background:transparent; color:var(--cp-muted);
  font:inherit; font-size:12px; font-weight:400; cursor:pointer; white-space:nowrap;
}
body[data-shell="editorial"] .shell-context-link:hover { color:var(--cp-ink); }
body[data-shell="editorial"] .shell-context-link.active { color:var(--cp-ink); font-weight:500; }
body[data-shell="editorial"] .shell-context-link.active::after {
  content:""; position:absolute; left:0; right:0; bottom:0; height:2px; background:var(--cp-cadence);
}
body[data-layout="topbar"][data-shell="editorial"] .shell-user {
  width:34px; height:34px; padding:0; display:grid; place-items:center; color:var(--cp-ink);
  background:var(--cp-paper); border:1px solid var(--cp-rule); border-radius:50%;
}
body[data-layout="topbar"][data-shell="editorial"] .shell-user span { font-size:11px; font-weight:600; }
body[data-layout="topbar"][data-shell="editorial"] .shell-user:hover { border-color:var(--cp-ink); }
/* PACE editorial tenants (Seviroli) render real dropdown groups whose module panels are
   .nav-group-items. Do NOT force-hide them: the base layer (retail-afa-v2.css) already keeps
   each panel visibility:hidden until its group is :hover/.open/:focus-within, then reveals it
   with pointer-events:auto. An earlier `display:none!important` here (from the flat one-tab
   editorial nav, which emits no .nav-group-items) zero-boxed every panel, so every hit-test
   landed on the top bar and the whole PACE nav was unclickable. Flat editorial tenants (FV/NWO)
   are unaffected — their nav-group-flat tabs carry no .nav-group-items child. */
@media(max-width:820px){
  body[data-layout="topbar"][data-shell="editorial"] .shell-context-nav { position:static; padding:0 18px; gap:16px; }
  body[data-shell="editorial"] .shell-context-label { padding-right:15px; }
}/* ===== Frances Valentine premium MFP workspace ===== */
body[data-shell="editorial"] .mfp-premium {
  --mfp-accent:var(--cp-accent,#361a4c);
  --mfp-ink:var(--cp-ink,#171716);
  --mfp-muted:var(--cp-muted,#6f6e69);
  --mfp-rule:var(--cp-rule,#deded8);
  --mfp-soft:var(--cp-soft,#f0f0ea);
  position:relative;
}
body[data-shell="editorial"] .mfp-premium .mfp-page-head {
  align-items:center;
  margin:0 0 2px;
  min-height:48px;
}
body[data-shell="editorial"] .mfp-premium .mfp-page-head h2 {
  font-size:24px;
  font-weight:620;
  letter-spacing:-.03em;
}
body[data-shell="editorial"] .mfp-premium .mfp-page-head p {
  margin-top:3px;
  font-size:11px;
}
body[data-shell="editorial"] .mfp-premium .mfp-tabs {
  min-height:36px;
  margin:0;
  gap:24px;
  border-bottom:1px solid var(--mfp-rule);
}
body[data-shell="editorial"] .mfp-premium .mfp-tab {
  padding:8px 0 7px;
  font-size:12px;
  font-weight:500;
}
body[data-shell="editorial"] .mfp-premium .mfp-tab.active {
  color:var(--mfp-ink);
  border-bottom-color:var(--mfp-accent);
}
body[data-shell="editorial"] .mfp-commandbar {
  position:sticky;
  top:125px;
  z-index:18;
  min-height:48px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:6px 0;
  background:color-mix(in srgb,var(--cp-paper,#f7f7f3) 94%,transparent);
  border-bottom:1px solid var(--mfp-rule);
  backdrop-filter:blur(16px);
}
body[data-shell="editorial"] .mfp-command-left,
body[data-shell="editorial"] .mfp-command-right {
  min-width:0;
  display:flex;
  align-items:center;
  gap:6px;
}
body[data-shell="editorial"] .mfp-command-left { flex:1; overflow-x:auto; scrollbar-width:none; }
body[data-shell="editorial"] .mfp-command-left::-webkit-scrollbar { display:none; }
body[data-shell="editorial"] .mfp-command-right { flex:none; }
body[data-shell="editorial"] .mfp-command-rule {
  width:1px;
  height:24px;
  margin:0 3px;
  background:var(--mfp-rule);
}
body[data-shell="editorial"] .mfp-commandbar .plan-ver {
  min-height:32px;
  border:0;
  border-radius:7px;
  background:var(--cp-surface,#fff);
  box-shadow:inset 0 0 0 1px var(--mfp-rule);
}
/* The version picker says what it is. It was hidden, leaving an unlabelled select in the corner of a
   bar full of unlabelled controls — the planner review couldn't tell it was the plan version at all,
   and it is the single most consequential control on the screen: it decides which plan you are
   editing. Small caps, quiet, but present. */
body[data-shell="editorial"] .mfp-commandbar .plan-ver-lbl {
  display:inline-block; margin-right:6px;
  font-size:8.5px; font-weight:700; letter-spacing:.09em; text-transform:uppercase; color:#8d8578;
}
body[data-shell="editorial"] .mfp-commandbar .plan-ver.sandbox .plan-ver-lbl { color:#9b3b3b; }
body[data-shell="editorial"] .mfp-commandbar .plan-ver-sel {
  max-width:150px;
  height:30px;
  border:0;
  background:transparent;
  font-size:11px;
  font-weight:650;
}
body[data-shell="editorial"] .mfp-commandbar .plan-ver-act {
  min-height:30px;
  padding-inline:8px;
  font-size:10.5px;
}
body[data-shell="editorial"] .mfp-commandbar .mfp-view-seg {
  margin:0;
  padding:2px;
  background:var(--mfp-soft);
  border-radius:7px;
}
body[data-shell="editorial"] .mfp-commandbar .mfp-view-seg .seg-btn {
  min-height:27px;
  padding:3px 9px;
  font-size:10.5px;
  border-radius:5px;
}
/* FY plan-year segment. inline-flex + flex:none so it never shrinks to min-content and wraps its
   buttons vertically the way a bare .seg block does in the flex command bar. */
body[data-shell="editorial"] .mfp-fy-seg {
  display:inline-flex; flex:none; margin:0; padding:2px; gap:2px; background:var(--mfp-soft); border-radius:7px; white-space:nowrap; width:auto;
}
body[data-shell="editorial"] .mfp-fy-seg .seg-btn {
  min-height:27px; padding:3px 10px; font-size:10.5px; border-radius:5px; white-space:nowrap;
}
/* "Data as of…" freshness stamp — understated, but goes amber when stale so it never hides staleness. */
body[data-shell="editorial"] .mfp-freshness {
  display:inline-flex; align-items:center; gap:7px; font-size:11.5px; font-weight:500; color:#475467;
  padding:6px 12px; border-radius:8px; background:#fff; border:0.5px solid rgba(43,33,52,.16);
  white-space:nowrap; align-self:center;
}
body[data-shell="editorial"] .mfp-freshness-dot { width:6px; height:6px; border-radius:50%; background:#16a34a; flex:none; box-shadow:0 0 0 3px rgba(22,163,74,.14); }
body[data-shell="editorial"] .mfp-freshness-rel { color:#98a2b3; }
body[data-shell="editorial"] .mfp-freshness-rel::before { content:"·"; margin:0 5px 0 3px; color:#c4c9d0; }
body[data-shell="editorial"] .mfp-freshness.stale { color:#92400e; background:#fffaf0; border-color:rgba(217,119,6,.30); }
body[data-shell="editorial"] .mfp-freshness.stale .mfp-freshness-dot { background:#d97706; box-shadow:0 0 0 3px rgba(217,119,6,.14); }
body[data-shell="editorial"] .mfp-command-btn,
body[data-shell="editorial"] .mfp-command-icon {
  min-height:30px;
  flex:none;
  border:1px solid transparent;
  border-radius:7px;
  background:transparent;
  color:var(--mfp-muted);
  font:inherit;
  font-size:10.5px;
  font-weight:600;
  cursor:pointer;
  transition:background .15s ease,border-color .15s ease,color .15s ease;
}
body[data-shell="editorial"] .mfp-command-btn { padding:5px 9px; }
body[data-shell="editorial"] .mfp-command-icon { width:30px; padding:0; font-size:14px; }
body[data-shell="editorial"] .mfp-command-btn:hover,
body[data-shell="editorial"] .mfp-command-icon:hover:not(:disabled) {
  color:var(--mfp-ink);
  background:var(--cp-surface,#fff);
  border-color:var(--mfp-rule);
}
body[data-shell="editorial"] .mfp-command-btn.active {
  color:#fff;
  background:var(--mfp-accent);
}
body[data-shell="editorial"] .mfp-command-btn.subtle { color:var(--mfp-muted); }
body[data-shell="editorial"] .mfp-command-icon:disabled { opacity:.28; cursor:default; }
body[data-shell="editorial"] .mfp-command-compare {
  min-height:30px;
  display:flex;
  align-items:center;
  gap:5px;
  padding-left:8px;
  border-left:1px solid var(--mfp-rule);
}
body[data-shell="editorial"] .mfp-command-compare > span {
  color:var(--mfp-muted);
  font-size:9px;
  font-weight:650;
  letter-spacing:.06em;
  text-transform:uppercase;
}
body[data-shell="editorial"] .mfp-command-compare select {
  max-width:145px;
  height:28px;
  border:0;
  background:transparent;
  font-size:10.5px;
}
body[data-shell="editorial"] .mfp-commandbar .plan-save {
  white-space:nowrap;
  font-size:10.5px;
  font-weight:600;
}
body[data-shell="editorial"] .mfp-scenario-composer {
  position:relative;
  z-index:17;
  margin:8px 0;
  padding:14px 16px;
  border:1px solid color-mix(in srgb,var(--mfp-accent) 32%,var(--mfp-rule));
  border-radius:10px;
  background:var(--cp-surface,#fff);
  box-shadow:0 18px 52px rgba(31,26,37,.12);
}
body[data-shell="editorial"] .mfp-scenario-head {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  margin-bottom:12px;
}
body[data-shell="editorial"] .mfp-scenario-head b { display:block; font-size:13px; }
body[data-shell="editorial"] .mfp-scenario-head span { display:block; margin-top:2px; color:var(--mfp-muted); font-size:11px; }
body[data-shell="editorial"] .mfp-scenario-head button {
  border:0;
  background:transparent;
  color:var(--mfp-muted);
  cursor:pointer;
}
body[data-shell="editorial"] .mfp-scenario-fields {
  display:grid;
  grid-template-columns:minmax(150px,1fr) 110px minmax(150px,1fr) auto;
  gap:10px;
  align-items:end;
}
body[data-shell="editorial"] .mfp-scenario-fields label {
  display:grid;
  gap:5px;
  color:var(--mfp-muted);
  font-size:9px;
  font-weight:650;
  letter-spacing:.06em;
  text-transform:uppercase;
}
body[data-shell="editorial"] .mfp-scenario-fields select,
body[data-shell="editorial"] .mfp-scenario-fields input {
  width:100%;
  max-width:none;
  min-height:34px;
  color:var(--mfp-ink);
  background:var(--cp-paper,#f7f7f3);
}
body[data-shell="editorial"] .mfp-scenario-foot {
  margin-top:9px;
  color:var(--mfp-muted);
  font-size:10px;
}
body[data-shell="editorial"] .mfp-previewbar,
body[data-shell="editorial"] .mfp-compare-active {
  min-height:42px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin:8px 0;
  padding:7px 10px 7px 13px;
  border-radius:8px;
  font-size:11px;
}
body[data-shell="editorial"] .mfp-previewbar {
  color:#443055;
  background:color-mix(in srgb,var(--mfp-accent) 9%,#fff);
  border:1px dashed color-mix(in srgb,var(--mfp-accent) 42%,transparent);
}
body[data-shell="editorial"] .mfp-previewbar span { display:flex; gap:9px; align-items:center; }
body[data-shell="editorial"] .mfp-previewbar span b {
  color:var(--mfp-accent);
  font-size:9px;
  letter-spacing:.08em;
  text-transform:uppercase;
}
body[data-shell="editorial"] .mfp-previewbar div { display:flex; gap:6px; }
body[data-shell="editorial"] .mfp-compare-active {
  justify-content:flex-start;
  color:var(--mfp-muted);
  background:var(--mfp-soft);
  border:1px solid var(--mfp-rule);
}
body[data-shell="editorial"] .mfp-compare-active button {
  border:0;
  background:transparent;
  color:var(--mfp-accent);
  font-size:10.5px;
  font-weight:650;
  cursor:pointer;
}
body[data-shell="editorial"] .mfp-compare-active button:last-child { margin-left:auto; color:var(--mfp-muted); }
body[data-shell="editorial"] .mfp-premium .mfp-kpis {
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:0;
  margin:6px 0;
  border-top:1px solid var(--mfp-rule);
  border-bottom:1px solid var(--mfp-rule);
}
body[data-shell="editorial"] .mfp-premium .mfp-kpi {
  min-width:0;
  min-height:62px;
  margin:0;
  padding:9px 13px;
  text-align:left;
  border:0;
  border-right:1px solid var(--mfp-rule);
  border-radius:0;
  background:transparent;
  cursor:pointer;
  box-shadow:none;
  transition:background .15s ease;
}
body[data-shell="editorial"] .mfp-premium .mfp-kpi:last-child { border-right:0; }
body[data-shell="editorial"] .mfp-premium .mfp-kpi:hover { background:var(--cp-surface,#fff); }
body[data-shell="editorial"] .mfp-premium .mfp-kpi label {
  font-size:9px;
  font-weight:600;
  letter-spacing:.06em;
  cursor:pointer;
}
body[data-shell="editorial"] .mfp-premium .mfp-kpi strong {
  margin:1px 0 0;
  font-family:"Instrument Serif",Georgia,serif;
  font-size:21px;
  font-weight:400;
  letter-spacing:-.02em;
}
body[data-shell="editorial"] .mfp-premium .mfp-kpi span { font-size:9.5px; }
body[data-shell="editorial"] .mfp-premium .mfp-kpi em {
  display:block;
  margin-top:2px;
  color:var(--mfp-accent);
  font-size:9px;
  font-style:normal;
  font-weight:650;
}
body[data-shell="editorial"] .mfp-formulabar {
  min-height:36px;
  display:flex;
  align-items:center;
  gap:8px;
  margin-top:7px;
  padding:4px 7px;
  color:var(--mfp-muted);
  background:var(--cp-surface,#fff);
  border:1px solid var(--mfp-rule);
  border-bottom:0;
  border-radius:9px 9px 0 0;
  font-size:10.5px;
}
body[data-shell="editorial"] .mfp-formula-name {
  width:150px;
  overflow:hidden;
  color:var(--mfp-ink);
  font-weight:650;
  text-overflow:ellipsis;
  white-space:nowrap;
}
body[data-shell="editorial"] .mfp-fx {
  width:24px;
  text-align:center;
  color:var(--mfp-accent);
  font-family:"Instrument Serif",Georgia,serif;
  font-size:15px;
  font-style:italic;
}
body[data-shell="editorial"] #mfp-formula-input {
  width:170px;
  min-height:27px;
  padding:3px 8px;
  color:var(--mfp-ink);
  background:var(--cp-paper,#f7f7f3);
  border:1px solid transparent;
  border-radius:5px;
  font:inherit;
  font-variant-numeric:tabular-nums;
}
body[data-shell="editorial"] #mfp-formula-input:focus { border-color:var(--mfp-accent); outline:none; }
body[data-shell="editorial"] .mfp-formula-source {
  flex:1;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
body[data-shell="editorial"] .mfp-formula-actions { display:flex; gap:2px; }
body[data-shell="editorial"] .mfp-formula-actions button {
  min-height:25px;
  padding:3px 7px;
  color:var(--mfp-muted);
  background:transparent;
  border:0;
  border-radius:5px;
  font:inherit;
  font-size:9.5px;
  cursor:pointer;
}
body[data-shell="editorial"] .mfp-formula-actions button:hover { color:var(--mfp-ink); background:var(--mfp-soft); }
body[data-shell="editorial"] .mfp-keyhint { color:#9a9993; font-size:9px; white-space:nowrap; }
body[data-shell="editorial"] .mfp-premium .mfp-grid-wrap {
  max-height:calc(100vh - 330px);
  margin:0;
  border-radius:0 0 10px 10px;
  border-color:var(--mfp-rule);
  box-shadow:0 12px 32px rgba(32,28,37,.06);
  scroll-behavior:smooth;
  /* No scroll snapping. The roll-up columns carried scroll-snap-align:start, so on open the browser
     snapped the nearest one to the left edge and dragged the grid right — FEB rendered clipped
     ("‚874,674"). A planning grid reads left-to-right from the first month; position 0 must be where
     it opens. */
}
body[data-shell="editorial"] .mfp-premium .mfp-grid {
  --mh:54,26,76;
  border-collapse:separate;
  border-spacing:0;
}
body[data-shell="editorial"] .mfp-premium .mfp-grid td,
body[data-shell="editorial"] .mfp-premium .mfp-grid th {
  height:32px;
  padding:6px 11px;
  border-bottom-color:#ecece7;
  font-size:11.5px;
}
body[data-shell="editorial"] .mfp-premium .mfp-grid thead th {
  height:32px;
  color:#777670;
  background:#fafaf7;
  font-size:9.5px;
  font-weight:650;
  letter-spacing:.045em;
}
body[data-shell="editorial"] .mfp-premium .mfp-grid .mfp-mcol,
body[data-shell="editorial"] .mfp-premium .mfp-grid .mfp-rlabel {
  min-width:176px;
  padding-left:14px;
  background:#fff;
  box-shadow:1px 0 0 var(--mfp-rule);
}
body[data-shell="editorial"] .mfp-premium .mfp-grid .mfp-fy {
  position:sticky;
  right:0;
  z-index:4;
  min-width:92px;
  background:#f2f1ed;
  border-left:1px solid #cbc9c2;
  box-shadow:-8px 0 16px rgba(28,25,31,.05);
}
body[data-shell="editorial"] .mfp-premium .mfp-grid thead .mfp-fy { z-index:8; }
body[data-shell="editorial"] .mfp-premium .mfp-grid .mfp-roll {
  border-left:1px solid #d8d7d1;
  background:#f8f8f5;
}
body[data-shell="editorial"] .mfp-premium .mfp-grid .mfp-current {
  color:var(--mfp-ink);
  background:color-mix(in srgb,var(--mfp-accent) 7%,#fafaf7);
  box-shadow:inset 0 -2px 0 var(--mfp-accent);
}
body[data-shell="editorial"] .mfp-premium .mfp-grid tbody.mfp-blk {
  --mh:54,26,76!important;
}
body[data-shell="editorial"] .mfp-premium .mfp-grid tbody.mfp-blk .mfp-mhead td {
  height:31px;
  color:var(--mfp-ink);
  background:#f6f6f2;
  border-top:1px solid #d8d7d1;
  box-shadow:inset 2px 0 0 color-mix(in srgb,var(--mfp-accent) 52%,transparent);
}
body[data-shell="editorial"] .mfp-premium .mfp-grid tbody.mfp-blk .mfp-mlabel {
  color:var(--mfp-ink);
  font-size:11.5px;
  font-weight:680;
}
body[data-shell="editorial"] .mfp-premium .mfp-editbadge {
  color:#777670;
  background:#e7e6e1!important;
  font-size:8px;
  font-weight:650;
}
body[data-shell="editorial"] .mfp-premium .mfp-grid tbody.mfp-blk td:not(.mfp-rlabel):not(.mfp-mcol):not(.mfp-roll):not(.mfp-fy) {
  background-color:#fff;
}
body[data-shell="editorial"] .mfp-premium .mfp-grid tbody.mfp-blk .mfp-editrow td:not(.mfp-rlabel):not(.mfp-mcol):not(.mfp-roll):not(.mfp-fy) {
  background:color-mix(in srgb,var(--mfp-accent) 5%,#fff)!important;
  box-shadow:inset 0 1px 0 color-mix(in srgb,var(--mfp-accent) 13%,transparent),inset 0 -1px 0 color-mix(in srgb,var(--mfp-accent) 13%,transparent);
}
body[data-shell="editorial"] .mfp-premium .mfp-editrow .mfp-rlabel::after { color:var(--mfp-accent); }
body[data-shell="editorial"] .mfp-premium .mfp-editrow .mfp-in {
  border-color:transparent;
  background:transparent;
  font-weight:650;
}
body[data-shell="editorial"] .mfp-premium .mfp-in:hover { border-color:#c9c7c0; background:#fff; }
body[data-shell="editorial"] .mfp-premium .mfp-in:focus {
  border-color:var(--mfp-accent);
  background:#fff;
  box-shadow:none;
}
body[data-shell="editorial"] .mfp-premium .mfp-cell-selected {
  position:relative;
  background:color-mix(in srgb,var(--mfp-accent) 8%,#fff)!important;
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--mfp-accent) 28%,transparent)!important;
}
body[data-shell="editorial"] .mfp-premium .mfp-cell-active {
  z-index:5;
  background:#fff!important;
  box-shadow:inset 0 0 0 2px var(--mfp-accent),0 2px 10px rgba(54,26,76,.14)!important;
}
body[data-shell="editorial"] .mfp-premium .mfp-row-focus td:not(.mfp-cell-active),
body[data-shell="editorial"] .mfp-premium .mfp-col-focus:not(.mfp-cell-active) {
  background:color-mix(in srgb,var(--mfp-accent) 2.5%,#fff)!important;
}
body[data-shell="editorial"] .mfp-premium .mfp-ghost {
  background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--mfp-accent) 7%,#fff),color-mix(in srgb,var(--mfp-accent) 7%,#fff) 6px,#fff 6px,#fff 12px)!important;
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--mfp-accent) 28%,transparent)!important;
}
body[data-shell="editorial"] .mfp-premium .mfp-ghost .mfp-in {
  color:var(--mfp-accent);
  font-weight:720;
}
body[data-shell="editorial"] .mfp-premium .mfp-has-audit::after {
  content:"";
  position:absolute;
  top:2px;
  right:2px;
  width:0;
  height:0;
  border-top:5px solid var(--mfp-accent);
  border-left:5px solid transparent;
}
body[data-shell="editorial"] .mfp-premium .mfp-why {
  min-width:25px;
  margin-left:6px;
  padding:2px 7px;
  opacity:0;
  color:var(--mfp-accent);
  background:transparent;
  border-color:transparent;
  transition:opacity .15s ease,background .15s ease;
}
body[data-shell="editorial"] .mfp-premium .mfp-mhead:hover .mfp-why,
body[data-shell="editorial"] .mfp-premium .mfp-why:focus-visible { opacity:1; }
body[data-shell="editorial"] .mfp-premium .mfp-why:hover { background:color-mix(in srgb,var(--mfp-accent) 7%,#fff); }
body[data-shell="editorial"] .mfp-premium .mfp-seed td { color:#756d7d; }
body[data-shell="editorial"] .mfp-premium .mfp-varrow td { color:#85847f; }
body[data-shell="editorial"] .mfp-premium .mfp-src {
  margin:8px 2px 0;
  color:#92918c;
  font-size:9.5px;
}
@media(max-width:1180px) {
  body[data-shell="editorial"] .mfp-commandbar { top:0; position:relative; flex-wrap:wrap; }
  body[data-shell="editorial"] .mfp-command-left { flex-basis:100%; }
  body[data-shell="editorial"] .mfp-command-right { margin-left:auto; }
  body[data-shell="editorial"] .mfp-keyhint,
  body[data-shell="editorial"] .mfp-formula-source { display:none; }
  body[data-shell="editorial"] .mfp-premium .mfp-grid-wrap { max-height:calc(100vh - 300px); }
}
@media(max-width:820px) {
  body[data-shell="editorial"] .mfp-premium .mfp-kpis { grid-template-columns:repeat(5,150px); overflow-x:auto; }
  body[data-shell="editorial"] .mfp-scenario-fields { grid-template-columns:1fr 100px; }
  body[data-shell="editorial"] .mfp-scenario-fields .primary-btn { min-height:34px; }
  body[data-shell="editorial"] .mfp-formulabar { overflow-x:auto; }
  body[data-shell="editorial"] .mfp-formula-name { min-width:130px; }
  body[data-shell="editorial"] #mfp-formula-input { min-width:140px; }
  body[data-shell="editorial"] .mfp-commandbar .plan-ver-act { display:none; }
}
@media(prefers-reduced-motion:reduce) {
  body[data-shell="editorial"] .mfp-premium *,
  body[data-shell="editorial"] .mfp-premium *::before,
  body[data-shell="editorial"] .mfp-premium *::after { scroll-behavior:auto!important; transition:none!important; animation:none!important; }
}

/* ===== Premium density and colour pass ===== */
body[data-shell="editorial"] {
  --cp-paper:#f5f1e9;
  --cp-surface:#fffdf9;
  --cp-muted:#6d685f;
  --cp-rule:#d8d0c3;
  --cp-soft:#ebe3d7;
  background:var(--cp-paper);
}
body[data-layout="topbar"][data-shell="editorial"] .sidebar {
  min-height:48px;
  padding:0 22px;
  grid-template-columns:minmax(210px,1fr) auto minmax(210px,1fr);
  border-bottom-color:#cfc4b5;
  box-shadow:inset 0 -3px 0 color-mix(in srgb,var(--cp-accent) 16%,transparent);
}
/* Lockup geometry retired — the lockup is .cp-lockup (retail-afa-v2.css): subtitle indent
   and gaps are grid structure now, not hand-measured margins. */
body[data-layout="topbar"][data-shell="editorial"] .sidebar-nav { gap:20px; }
body[data-layout="topbar"][data-shell="editorial"] .nav-group-label,
body[data-layout="topbar"][data-shell="editorial"] .nav-item-top,
body[data-layout="topbar"][data-shell="editorial"] .nav-group[style*="--nav-accent"] > .nav-group-label,
body[data-layout="topbar"][data-shell="editorial"] .nav-group[style*="--nav-accent"] .nav-item-top { font-size:12px; }
body[data-layout="topbar"][data-shell="editorial"] .shell-actions { gap:12px; }
body[data-layout="topbar"][data-shell="editorial"] .shell-actions .shell-ask { padding:6px 12px; font-size:11px; }
body[data-layout="topbar"][data-shell="editorial"] .shell-user { width:28px; height:28px; }
body[data-layout="topbar"][data-shell="editorial"] .shell-context-nav {
  top:48px;
  min-height:32px;
  padding:0 22px;
  gap:18px;
  background:color-mix(in srgb,#efe6f2 82%,var(--cp-surface));
  border-bottom-color:#d7cadd;
}
body[data-shell="editorial"] .shell-context-label { padding-right:18px; color:#765d7e; font-size:8.5px; }
body[data-shell="editorial"] .shell-context-links { gap:19px; }
body[data-shell="editorial"] .shell-context-link { font-size:10px; }
body[data-shell="editorial"] .view { padding:0 26px 28px; }

body[data-shell="editorial"] .mfp-premium {
  --mfp-accent:#4b2a63;
  --mfp-plum:#302039;
  --mfp-plum-deep:#24182c;
  --mfp-sand:#f2efe8;
  --mfp-rule:#d8d0c3;
  --mfp-soft:#efece4;
}
body[data-shell="editorial"] .mfp-workspace-head {
  position:relative;
  min-height:38px;
  display:grid;
  grid-template-columns:max-content minmax(0,1fr);
  align-items:stretch;
  gap:30px;
  padding-right:68px;
  border-bottom:1px solid var(--mfp-rule);
}
body[data-shell="editorial"] .mfp-workspace-head .mfp-page-head {
  min-height:38px;
  margin:0;
  align-items:center;
}
body[data-shell="editorial"] .mfp-workspace-head .mfp-page-head h2 { font-size:17.5px; letter-spacing:-.025em; }
body[data-shell="editorial"] .mfp-workspace-head .mfp-page-head p { display:none; }
body[data-shell="editorial"] .mfp-workspace-head .mfp-page-head .actions {
  position:absolute;
  right:0;
  top:5px;
}
body[data-shell="editorial"] .mfp-workspace-head .help-btn { min-height:26px; padding:3px 9px; font-size:10px; }
body[data-shell="editorial"] .mfp-workspace-head .mfp-tabs {
  min-height:38px;
  margin:0;
  gap:22px;
  align-self:stretch;
  border:0;
}
body[data-shell="editorial"] .mfp-workspace-head .mfp-tab { padding:11px 0 8px; font-size:10.5px; }
body[data-shell="editorial"] .mfp-commandbar {
  top:80px;
  min-height:36px;
  padding:3px 6px;
  margin:0 -6px;
  background:color-mix(in srgb,var(--mfp-sand) 90%,transparent);
  border-bottom-color:#d2c5b4;
  box-shadow:0 4px 14px rgba(57,40,65,.045);
}
body[data-shell="editorial"] .mfp-commandbar .plan-ver { min-height:28px; background:#fffaf4; }
body[data-shell="editorial"] .mfp-commandbar .plan-ver-sel { height:28px; }
body[data-shell="editorial"] .mfp-commandbar .mfp-view-seg { background:#ddd0c0; }
body[data-shell="editorial"] .mfp-commandbar .mfp-view-seg .seg-btn { min-height:25px; }
body[data-shell="editorial"] .mfp-command-btn,
body[data-shell="editorial"] .mfp-command-icon { min-height:28px; }
body[data-shell="editorial"] .mfp-focus-toggle { color:var(--mfp-accent); }
body[data-shell="editorial"] .mfp-focus-toggle::before { content:"↗"; margin-right:5px; font-size:11px; }
body[data-shell="editorial"] .mfp-focus-toggle.active::before { content:"↙"; }

body[data-shell="editorial"] .mfp-premium .mfp-kpis {
  min-height:48px;
  margin:6px 0;
  overflow:hidden;
  color:#fff;
  background:linear-gradient(112deg,var(--mfp-plum-deep),var(--mfp-plum) 58%,#40294b);
  border:0;
  border-radius:9px;
  box-shadow:0 8px 24px rgba(46,29,56,.13);
}
body[data-shell="editorial"] .mfp-premium .mfp-kpi {
  min-height:48px;
  padding:5px 13px;
  border-right-color:rgba(255,255,255,.13);
  color:#fff;
}
body[data-shell="editorial"] .mfp-premium .mfp-kpi:hover { background:rgba(255,255,255,.07); }
body[data-shell="editorial"] .mfp-premium .mfp-kpi label { color:#d9cce1; }
body[data-shell="editorial"] .mfp-premium .mfp-kpi strong { color:#fff; font-size:19px; }
body[data-shell="editorial"] .mfp-premium .mfp-kpi .mfp-pos { color:#9bd8b6!important; }
body[data-shell="editorial"] .mfp-premium .mfp-kpi .mfp-neg { color:#ffb7ae!important; }
body[data-shell="editorial"] .mfp-exc-strip { min-height:26px; margin:4px 0; }
body[data-shell="editorial"] .mfp-exc-clean {
  padding:3px 10px;
  color:#23654f;
  background:#e2eee6;
  border-color:#bfd8ca;
}
body[data-shell="editorial"] .mfp-formulabar {
  min-height:29px;
  margin-top:2px;
  padding:2px 7px;
  background:#fffaf4;
  border-color:#cec3b4;
}
body[data-shell="editorial"] #mfp-formula-input { min-height:25px; background:#f3ece2; }
body[data-shell="editorial"] .mfp-premium .mfp-grid-wrap {
  max-height:calc(100vh - 248px);
  border-color:#cfc4b5;
  box-shadow:0 12px 30px rgba(49,32,57,.10);
}
body[data-shell="editorial"] .mfp-premium .mfp-grid thead th {
  color:#5f554a;
  background:#e9dfd2;
  border-bottom-color:#cfc2b2;
}
body[data-shell="editorial"] .mfp-premium .mfp-grid .mfp-mcol,
body[data-shell="editorial"] .mfp-premium .mfp-grid .mfp-rlabel { background:#fffdf9; }
body[data-shell="editorial"] .mfp-premium .mfp-grid .mfp-fy {
  background:#eee2d2;
  border-left-color:#bcae9c;
  box-shadow:-9px 0 18px rgba(54,39,62,.09);
}
body[data-shell="editorial"] .mfp-premium .mfp-grid .mfp-roll { background:#f7f0e7; border-left-color:#d2c5b5; }
body[data-shell="editorial"] .mfp-premium .mfp-grid .mfp-current {
  background:#e9ddf0;
  box-shadow:inset 0 -3px 0 var(--mfp-accent);
}
body[data-shell="editorial"] .mfp-premium .mfp-grid tbody.mfp-blk .mfp-mhead td {
  height:29px;
  color:var(--mfp-band-ink,var(--mfp-ink));
  background:var(--mfp-band,#eee8df)!important;
  border-top-color:color-mix(in srgb,var(--mfp-band-ink,var(--mfp-accent)) 28%,#fff);
  box-shadow:inset 4px 0 0 var(--mfp-band-ink,var(--mfp-accent));
}
body[data-shell="editorial"] .mfp-premium .mfp-grid tbody.mfp-blk .mfp-mlabel { color:inherit; }
body[data-shell="editorial"] .mfp-premium .mfp-grid tbody.mfp-blk .mfp-editrow td:not(.mfp-rlabel):not(.mfp-mcol):not(.mfp-roll):not(.mfp-fy) {
  background:color-mix(in srgb,var(--mfp-band,#ede2f2) 42%,#fff)!important;
}
body[data-shell="editorial"] .mfp-premium .mfp-editbadge {
  color:var(--mfp-band-ink,var(--mfp-accent));
  background:color-mix(in srgb,var(--mfp-band,#ede2f2) 74%,#fff)!important;
  border:1px solid color-mix(in srgb,var(--mfp-band-ink,var(--mfp-accent)) 22%,transparent);
}
body[data-shell="editorial"] .mfp-premium .mfp-editbadge.derived { color:#665f56; background:#e3dbcf!important; border-color:#d0c4b4; }
body[data-shell="editorial"] .mfp-premium .mfp-seed td { color:#6f587b; background:#faf7fb; }
body[data-shell="editorial"] .mfp-premium .mfp-varrow td { color:#746e66; background:#f8f4ed; }

body[data-layout="topbar"][data-shell="editorial"]:has(.mfp-focus-grid) .sidebar,
body[data-layout="topbar"][data-shell="editorial"]:has(.mfp-focus-grid) .shell-context-nav { display:none!important; }
body[data-layout="topbar"][data-shell="editorial"]:has(.mfp-focus-grid) .app-shell { grid-template-rows:1fr; }
body[data-shell="editorial"] .mfp-focus-grid .mfp-workspace-head,
body[data-shell="editorial"] .mfp-focus-grid .mfp-kpis,
body[data-shell="editorial"] .mfp-focus-grid .mfp-exc-strip { display:none; }
body[data-shell="editorial"] .mfp-focus-grid .mfp-commandbar { top:0; margin-top:0; }
body[data-shell="editorial"] .mfp-focus-grid .mfp-formulabar { margin-top:2px; }
body[data-shell="editorial"] .mfp-focus-grid .mfp-grid-wrap { max-height:calc(100vh - 78px); }

@media(max-width:1180px) {
  body[data-layout="topbar"][data-shell="editorial"] .sidebar { grid-template-columns:auto 1fr auto; padding:0 18px; }
  body[data-shell="editorial"] .mfp-commandbar { top:80px; position:sticky; flex-wrap:nowrap; }
  body[data-shell="editorial"] .mfp-command-left { flex-basis:auto; }
  body[data-shell="editorial"] .mfp-premium .mfp-grid-wrap { max-height:calc(100vh - 248px); }
}
@media(max-width:820px) {
  body[data-layout="topbar"][data-shell="editorial"] .sidebar {
    min-height:50px;
    grid-template-columns:auto minmax(0,1fr) auto;
    padding:0 12px;
    gap:12px;
  }
  body[data-layout="topbar"][data-shell="editorial"] .sidebar-brand > span { display:none; }
  body[data-layout="topbar"][data-shell="editorial"] .sidebar-nav {
    grid-column:auto;
    justify-self:stretch;
    padding:0;
    gap:12px;
    overflow-x:auto;
  }
  body[data-layout="topbar"][data-shell="editorial"] .shell-actions .shell-ask { display:none; }
  body[data-layout="topbar"][data-shell="editorial"] .shell-context-nav { top:50px; min-height:34px; padding:0 14px; }
  body[data-shell="editorial"] .view { padding-inline:14px; }
  body[data-shell="editorial"] .mfp-workspace-head { gap:18px; padding-right:0; }
  body[data-shell="editorial"] .mfp-workspace-head .mfp-page-head .actions { display:none; }
  body[data-shell="editorial"] .mfp-workspace-head .mfp-tabs { gap:16px; overflow-x:auto; }
  body[data-shell="editorial"] .mfp-commandbar { top:84px; }
  body[data-shell="editorial"] .mfp-premium .mfp-kpis { grid-template-columns:repeat(5,145px); }
}
@media(max-width:620px) {
  body[data-shell="editorial"] .mfp-workspace-head { grid-template-columns:1fr; gap:0; }
  body[data-shell="editorial"] .mfp-workspace-head .mfp-page-head { min-height:38px; }
  body[data-shell="editorial"] .mfp-workspace-head .mfp-tabs { min-height:34px; }
  body[data-shell="editorial"] .mfp-workspace-head .mfp-tab { padding:9px 0 7px; }
  body[data-shell="editorial"] .mfp-command-compare > span { display:none; }
}
/* Compact mobile focus mode */
@media(max-width:820px) {
  body[data-shell="editorial"] .mfp-focus-grid .mfp-command-right { display:none; }
  body[data-shell="editorial"] .mfp-focus-grid .mfp-commandbar { min-height:36px; flex-wrap:nowrap; }
  body[data-shell="editorial"] .mfp-focus-grid .mfp-command-left { flex-basis:100%; }
  body[data-shell="editorial"] .mfp-focus-grid .mfp-grid-wrap { max-height:calc(100vh - 80px); }
}
/* ===== Daily planner calibration ===== */
body[data-shell="editorial"] {
  --cp-paper:#f5f6f8;
  --cp-surface:#ffffff;
  --cp-muted:#687181;
  --cp-rule:#d9dee7;
  --cp-soft:#edf0f5;
  background:var(--cp-paper);
}
body[data-layout="topbar"][data-shell="editorial"] .sidebar {
  border-bottom-color:#d8dce4;
  box-shadow:inset 0 -2px 0 color-mix(in srgb,var(--cp-accent) 14%,transparent);
}
body[data-layout="topbar"][data-shell="editorial"] .shell-context-nav {
  background:color-mix(in srgb,#f3eff7 88%,#fff);
  border-bottom-color:#ddd5e3;
}
body[data-shell="editorial"] .shell-context-label { color:#755982; }
body[data-shell="editorial"] .mfp-premium {
  --mfp-sand:#f1f3f7;
  --mfp-rule:#d9dee7;
  --mfp-soft:#edf0f5;
}
body[data-shell="editorial"] .mfp-commandbar {
  background:color-mix(in srgb,#f1f3f7 94%,transparent);
  border-bottom-color:#d7dce5;
  box-shadow:0 3px 12px rgba(45,34,56,.04);
}
body[data-shell="editorial"] .mfp-commandbar .plan-ver { background:#fff; }
body[data-shell="editorial"] .mfp-commandbar .mfp-view-seg { background:#e4e8ef; }

body[data-shell="editorial"] .mfp-premium .mfp-kpis {
  min-height:40px;
  margin:4px 0;
  color:var(--mfp-ink);
  background:#f7f5fa;
  border:1px solid #dcd4e2;
  border-radius:7px;
  box-shadow:none;
}
body[data-shell="editorial"] .mfp-premium .mfp-kpi {
  min-height:40px;
  padding:4px 11px;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  grid-template-rows:auto auto;
  align-content:center;
  column-gap:8px;
  color:var(--mfp-ink);
  border-right-color:#e2dbe7;
}
body[data-shell="editorial"] .mfp-premium .mfp-kpi:hover { background:#fff; }
body[data-shell="editorial"] .mfp-premium .mfp-kpi label {
  grid-column:1/-1;
  grid-row:1;
  color:#77677f;
  font-size:8px;
  line-height:1.05;
}
body[data-shell="editorial"] .mfp-premium .mfp-kpi strong {
  grid-column:1;
  grid-row:2;
  min-width:0;
  margin:1px 0 0;
  overflow:hidden;
  color:#241b29;
  font-family:"Instrument Sans",Arial,sans-serif;
  font-size:15px;
  font-weight:670;
  line-height:1.1;
  text-overflow:ellipsis;
  white-space:nowrap;
}
body[data-shell="editorial"] .mfp-premium .mfp-kpi span {
  grid-column:2;
  grid-row:2;
  align-self:end;
  padding-bottom:1px;
  font-size:8.5px;
  white-space:nowrap;
}
body[data-shell="editorial"] .mfp-premium .mfp-kpi .mfp-pos { color:#16805d!important; }
body[data-shell="editorial"] .mfp-premium .mfp-kpi .mfp-neg { color:#c04452!important; }
body[data-shell="editorial"] .mfp-premium .mfp-kpi em { grid-column:1/-1; font-size:8px; }

body[data-shell="editorial"] .mfp-formulabar { background:#fff; border-color:#d5dbe4; }
body[data-shell="editorial"] #mfp-formula-input { background:#f2f4f7; }
body[data-shell="editorial"] .mfp-premium .mfp-grid-wrap {
  max-height:calc(100vh - 210px);
  border-color:#d2d8e1;
  box-shadow:0 10px 26px rgba(40,34,52,.08);
}
body[data-shell="editorial"] .mfp-premium .mfp-grid thead th {
  color:#596273;
  background:#edf0f4;
  border-bottom-color:#d3d8e0;
}
body[data-shell="editorial"] .mfp-premium .mfp-grid .mfp-mcol,
body[data-shell="editorial"] .mfp-premium .mfp-grid .mfp-rlabel { background:#fff; }
body[data-shell="editorial"] .mfp-premium .mfp-grid .mfp-fy {
  background:#eceef5;
  border-left-color:#c6ccd7;
  box-shadow:-9px 0 18px rgba(40,34,52,.07);
}
body[data-shell="editorial"] .mfp-premium .mfp-grid .mfp-roll { background:#f6f7fa; border-left-color:#d7dce4; }
body[data-shell="editorial"] .mfp-premium .mfp-grid .mfp-current { background:#ebe3f3; }
body[data-shell="editorial"] .mfp-premium .mfp-seed td { color:#665177; background:#faf8fc; }
body[data-shell="editorial"] .mfp-premium .mfp-varrow td { color:#6d7480; background:#f7f8fa; }
@media(max-width:1180px) {
  body[data-shell="editorial"] .mfp-premium .mfp-grid-wrap { max-height:calc(100vh - 210px); }
}
/* ===== Neutral workbook hierarchy ===== */
body[data-shell="editorial"] .mfp-commandbar .mfp-view-seg .seg-btn.active {
  color:#fff;
  background:var(--mfp-accent);
  box-shadow:none;
}
body[data-shell="editorial"] .mfp-command-orientation {
  min-height:26px;
  display:flex;
  align-items:center;
  gap:11px;
  margin-right:2px;
  padding-right:11px;
  border-right:1px solid #d7dbe2;
  white-space:nowrap;
}
body[data-shell="editorial"] .mfp-command-orientation span { display:inline-flex; align-items:baseline; gap:4px; }
body[data-shell="editorial"] .mfp-command-orientation i {
  color:#7a818d;
  font-size:7.5px;
  font-style:normal;
  font-weight:650;
  letter-spacing:.055em;
  text-transform:uppercase;
}
body[data-shell="editorial"] .mfp-command-orientation b { color:#2a2430; font-size:10.5px; font-weight:680; }
body[data-shell="editorial"] .mfp-formulabar.is-idle { display:none; }
body[data-shell="editorial"] .mfp-premium .mfp-grid-wrap {
  max-height:calc(100vh - 168px);
  margin-top:4px;
}
body[data-shell="editorial"] .mfp-formulabar:not(.is-idle) + .mfp-grid-wrap { margin-top:0; }

body[data-shell="editorial"] .mfp-premium .mfp-grid tbody.mfp-blk .mfp-mhead td {
  height:28px;
  color:#303744;
  background:#f5f6f8!important;
  border-top:1px solid #dce0e6;
  border-bottom:1px solid #e5e8ed;
  box-shadow:inset 3px 0 0 var(--mfp-band-ink,var(--mfp-accent));
}
body[data-shell="editorial"] .mfp-premium .mfp-grid tbody.mfp-blk .mfp-mlabel {
  color:var(--mfp-band-ink,var(--mfp-accent));
  font-weight:690;
}
body[data-shell="editorial"] .mfp-premium .mfp-grid tbody.mfp-blk .mfp-editrow td:not(.mfp-rlabel):not(.mfp-mcol):not(.mfp-roll):not(.mfp-fy) {
  background:#faf8fc!important;
  box-shadow:inset 0 1px 0 #eee8f2,inset 0 -1px 0 #eee8f2;
}
body[data-shell="editorial"] .mfp-premium .mfp-grid tbody.mfp-blk .mfp-editrow .mfp-rlabel {
  color:#3d2b46;
  background:#faf8fc;
}
body[data-shell="editorial"] .mfp-premium .mfp-grid tbody.mfp-blk td:not(.mfp-rlabel):not(.mfp-mcol):not(.mfp-roll):not(.mfp-fy) { background-color:#fff; }
body[data-shell="editorial"] .mfp-premium .mfp-grid tbody.mfp-blk .mfp-seed td,
body[data-shell="editorial"] .mfp-premium .mfp-grid tbody.mfp-blk .mfp-varrow td { background:#fff; }
body[data-shell="editorial"] .mfp-premium .mfp-seed td { color:#77717c; }
body[data-shell="editorial"] .mfp-premium .mfp-varrow td { color:#777f8a; }
body[data-shell="editorial"] .mfp-premium .mfp-editbadge {
  color:#685073;
  background:#fff!important;
  border-color:#d9cfe0;
}
body[data-shell="editorial"] .mfp-premium .mfp-editbadge.derived {
  color:#747b85;
  background:#fff!important;
  border-color:#dce0e5;
}
body[data-shell="editorial"] .mfp-premium .mfp-grid .mfp-fy { background:#f1f2f5; }
body[data-shell="editorial"] .mfp-premium .mfp-grid .mfp-roll { background:#f8f9fa; }
body[data-shell="editorial"] .mfp-premium .mfp-grid thead .mfp-current { background:#ebe3f3; }
@media(max-width:1500px) {
  body[data-shell="editorial"] .mfp-command-orientation { display:none; }
  /* the SECONDARY bar is far emptier than Topline's - its scoped KPI brief fits at planner widths */
  body[data-shell="editorial"] .mfp-commandbar-secondary .mfp-command-orientation { display:flex; }
}
@media(max-width:1100px) {
  body[data-shell="editorial"] .mfp-commandbar-secondary .mfp-command-orientation { display:none; }
}
@media(max-width:1180px) {
  body[data-shell="editorial"] .mfp-premium .mfp-grid-wrap { max-height:calc(100vh - 168px); }
}
/* ===== Cadence flagship editorial utility ===== */
body[data-shell="editorial"] {
  --cp-ink:#211d22;
  --cp-paper:#f5f2ed;
  --cp-surface:#fffdf9;
  --cp-muted:#706a70;
  --cp-rule:#ddd7d1;
  --cp-soft:#eee9e3;
  background:#f5f2ed;
}
body[data-shell="editorial"] .main,
body[data-shell="editorial"] .view {
  background:linear-gradient(180deg,#f8f5f1 0%,#f4f1ec 68%,#f1eee9 100%);
}
body[data-layout="topbar"][data-shell="editorial"] .sidebar {
  background:#fffdf9;
  border-bottom-color:#ded8d2;
  box-shadow:inset 0 -2px 0 color-mix(in srgb,var(--cp-accent) 12%,transparent);
}
body[data-layout="topbar"][data-shell="editorial"] .shell-context-nav {
  background:color-mix(in srgb,#f5eff6 88%,#fffdf9);
  border-bottom-color:#dfd5e1;
}
body[data-shell="editorial"] .mfp-workspace-head { border-bottom-color:#ded7dd; }
body[data-shell="editorial"] .mfp-workspace-head .mfp-page-head h2 {
  color:#241d27;
  font-family:"Instrument Serif",Georgia,serif;
  font-size:22px;
  font-weight:500;
  letter-spacing:-.025em;
}
body[data-shell="editorial"] .mfp-workspace-head .mfp-tab { color:#746c74; }
body[data-shell="editorial"] .mfp-workspace-head .mfp-tab.active { color:#35223e; }

body[data-shell="editorial"] .mfp-commandbar {
  min-height:38px;
  top:80px;
  margin:5px 0 7px;
  padding:4px 5px;
  background:rgba(255,253,249,.96);
  border:1px solid #ded6dd;
  border-radius:10px;
  box-shadow:0 7px 20px rgba(53,34,62,.07);
  backdrop-filter:blur(18px);
}
body[data-shell="editorial"] .mfp-commandbar .plan-ver { background:#faf7f3; box-shadow:inset 0 0 0 1px #e2dcd5; }
body[data-shell="editorial"] .mfp-commandbar .mfp-view-seg { background:#eee9e4; }
body[data-shell="editorial"] .mfp-commandbar .mfp-view-seg .seg-btn.active { background:#4b2a63; }
body[data-shell="editorial"] .mfp-command-orientation { border-right-color:#ddd5da; }
body[data-shell="editorial"] .mfp-command-orientation i { color:#847a83; }
body[data-shell="editorial"] .mfp-command-orientation b {
  color:#36263d;
  font-family:"Instrument Serif",Georgia,serif;
  font-size:13px;
  font-weight:500;
}
body[data-shell="editorial"] .mfp-commandbar .plan-save {
  padding:4px 8px;
  color:#3c684f;
  background:#e8f0ea;
  border-radius:999px;
}
body[data-shell="editorial"] .mfp-focus-toggle { color:#684078; }

body[data-shell="editorial"] .mfp-formulabar {
  min-height:34px;
  margin-top:0;
  color:#746d74;
  background:#fbf8f4;
  border-color:#dcd4cd;
  border-radius:10px 10px 0 0;
}
body[data-shell="editorial"] #mfp-formula-input { background:#fffdf9; }
body[data-shell="editorial"] .mfp-premium .mfp-grid-wrap {
  max-height:calc(100vh - 180px);
  margin-top:0;
  overflow:auto;
  background:#fffdf9;
  border:1px solid #d9d2cc;
  border-radius:11px;
  box-shadow:0 18px 44px rgba(47,35,52,.10),0 2px 8px rgba(47,35,52,.04);
}
body[data-shell="editorial"] .mfp-formulabar:not(.is-idle) + .mfp-grid-wrap {
  border-top:0;
  border-radius:0 0 11px 11px;
}
body[data-shell="editorial"] .mfp-premium .mfp-grid { background:#fffdf9; }
body[data-shell="editorial"] .mfp-premium .mfp-grid td,
body[data-shell="editorial"] .mfp-premium .mfp-grid th {
  height:29px;
  padding:4px 9px;
  color:#332f34;
  border-bottom-color:#ebe6e1;
  font-size:11.25px;
}
body[data-shell="editorial"] .mfp-premium .mfp-grid thead th {
  height:35px;
  color:#6f676f;
  background:#f3eee8;
  border-bottom:1px solid #d4ccc6;
  font-size:9px;
  letter-spacing:.06em;
}
body[data-shell="editorial"] .mfp-premium .mfp-grid .mfp-mcol,
body[data-shell="editorial"] .mfp-premium .mfp-grid .mfp-rlabel {
  background:#fffdf9;
  box-shadow:1px 0 0 #ded8d2;
}
body[data-shell="editorial"] .mfp-premium .mfp-grid .mfp-fy {
  background:#f0eaf2;
  border-left-color:#cfc3d3;
  box-shadow:-9px 0 18px rgba(61,41,67,.07);
}
body[data-shell="editorial"] .mfp-premium .mfp-grid .mfp-roll {
  background:#faf7f2;
  border-left-color:#dfd7d0;
}
body[data-shell="editorial"] .mfp-premium .mfp-grid thead .mfp-current {
  color:#3d2547;
  background:#e9deed;
  box-shadow:inset 0 -3px 0 #4b2a63;
}
body[data-shell="editorial"] .mfp-premium .mfp-grid tbody.mfp-blk .mfp-mhead td {
  height:34px;
  padding-top:7px;
  padding-bottom:5px;
  color:#332837;
  background:#fbf8f4!important;
  border-top:5px solid #f5f2ed;
  border-bottom:1px solid #e6dfd8;
  box-shadow:inset 4px 0 0 var(--mfp-band-ink,var(--mfp-accent));
}
body[data-shell="editorial"] .mfp-premium .mfp-grid tbody.mfp-blk:first-of-type .mfp-mhead td { border-top-width:0; }
body[data-shell="editorial"] .mfp-premium .mfp-grid tbody.mfp-blk .mfp-mlabel {
  color:var(--mfp-band-ink,var(--mfp-accent));
  font-family:"Instrument Serif",Georgia,serif;
  font-size:15px;
  font-weight:600;
  letter-spacing:-.01em;
}
body[data-shell="editorial"] .mfp-premium .mfp-editbadge {
  padding:1px 5px;
  color:#6d5b73;
  background:#fffdf9!important;
  border-color:#d9cfdc;
  border-radius:999px;
  font-family:"Instrument Sans",Arial,sans-serif;
  font-size:7.5px;
}
body[data-shell="editorial"] .mfp-premium .mfp-editbadge.derived { color:#777176; border-color:#ddd7d2; }
body[data-shell="editorial"] .mfp-premium .mfp-grid tbody.mfp-blk .mfp-editrow td:not(.mfp-rlabel):not(.mfp-mcol):not(.mfp-roll):not(.mfp-fy),
body[data-shell="editorial"] .mfp-premium .mfp-grid tbody.mfp-blk .mfp-editrow .mfp-rlabel {
  background:#faf6fb!important;
  box-shadow:inset 0 1px 0 #eee6f0,inset 0 -1px 0 #eee6f0;
}
body[data-shell="editorial"] .mfp-premium .mfp-grid .mfp-wp td { color:#29252b; font-weight:670; }
body[data-shell="editorial"] .mfp-premium .mfp-grid .mfp-wp .mfp-rlabel { color:#35293a; }
body[data-shell="editorial"] .mfp-premium .mfp-grid tbody.mfp-blk .mfp-seed td { color:#766d77; background:#fffdf9; }
body[data-shell="editorial"] .mfp-premium .mfp-grid tbody.mfp-blk .mfp-varrow td {
  color:#858087;
  background:#fcfaf7;
  font-size:10px;
}
body[data-shell="editorial"] .mfp-premium .mfp-in:focus {
  border-color:#4b2a63;
  background:#fff;
  box-shadow:0 0 0 2px rgba(100,55,123,.12);
}
body[data-shell="editorial"] .mfp-premium .mfp-cell-active {
  box-shadow:inset 0 0 0 2px #4b2a63,0 3px 12px rgba(100,55,123,.16)!important;
}
body[data-shell="editorial"] .mfp-premium .mfp-src { color:#8d8589; }
@media(max-width:1180px) {
  body[data-shell="editorial"] .mfp-commandbar { top:80px; }
  body[data-shell="editorial"] .mfp-premium .mfp-grid-wrap { max-height:calc(100vh - 180px); }
}
@media(max-width:820px) {
  body[data-shell="editorial"] .mfp-commandbar { top:84px; margin-top:4px; }
  body[data-shell="editorial"] .mfp-premium .mfp-grid td,
  body[data-shell="editorial"] .mfp-premium .mfp-grid th { height:28px; padding:4px 8px; }
}
/* ===== Workbook architecture: canvas, masthead, metric spine ===== */
/* Cement is the surrounding application canvas. The plan itself is a warm-white workbook. */
body[data-shell="editorial"] {
  --cp-paper:#efede9;
  --cp-surface:#fffdfa;
  --cp-rule:#d8d1ca;
  background:#efede9;
}
body[data-shell="editorial"] .main,
body[data-shell="editorial"] .view {
  background:#efede9;
}
body[data-shell="editorial"] .view { padding:0 22px 24px; }
body[data-layout="topbar"][data-shell="editorial"] .shell-context-nav[hidden] { display:none!important; }

body[data-shell="editorial"] .mfp-workbook-head {
  min-height:54px;
  display:grid;
  grid-template-columns:minmax(280px,340px) minmax(420px,1fr) auto;
  align-items:end;
  gap:26px;
  color:#2d252f;
  background:transparent;
}
body[data-shell="editorial"] .mfp-module-switch {
  min-width:0;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:0;
  padding:7px 0 6px;
}
body[data-shell="editorial"] .mfp-workbook-kicker {
  color:#7b687f;
  font-size:8px;
  font-weight:760;
  letter-spacing:.11em;
  line-height:1;
  text-transform:uppercase;
}
body[data-shell="editorial"] .mfp-module-switch select {
  width:100%;
  height:30px;
  margin-left:-4px;
  padding:0 28px 0 3px;
  color:#2b202e;
  background:transparent;
  border:0;
  outline:0;
  font-family:"Instrument Serif",Georgia,serif;
  font-size:22px;
  font-weight:500;
  letter-spacing:-.025em;
  cursor:pointer;
}
body[data-shell="editorial"] .mfp-module-switch select:hover,
body[data-shell="editorial"] .mfp-module-switch select:focus-visible { color:#4b2a63; }
body[data-shell="editorial"] .mfp-workbook-head .mfp-tabs {
  min-height:54px;
  display:flex;
  align-items:flex-end;
  gap:24px;
  margin:0;
  overflow:auto hidden;
  border:0;
}
body[data-shell="editorial"] .mfp-workbook-head .mfp-tab {
  min-height:42px;
  padding:17px 0 10px;
  color:#766e76;
  border-bottom:3px solid transparent;
  font-size:10.5px;
  white-space:nowrap;
}
body[data-shell="editorial"] .mfp-workbook-head .mfp-tab:hover { color:#35283a; }
body[data-shell="editorial"] .mfp-workbook-head .mfp-tab.active {
  color:#342239;
  border-bottom-color:#4b2a63;
  font-weight:700;
}
body[data-shell="editorial"] .mfp-workbook-actions {
  min-height:54px;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  padding-bottom:9px;
}
body[data-shell="editorial"] .mfp-workbook-actions .help-btn {
  min-height:27px;
  padding:4px 10px;
  background:#f8f5f0;
  border-color:#d6cfc8;
  font-size:10px;
}

body[data-shell="editorial"] .mfp-workbook-frame {
  position:relative;
  overflow:hidden;
  background:#fffdfa;
  border:1px solid #d7d0c9;
  border-radius:13px;
  box-shadow:0 18px 44px rgba(50,39,53,.10),0 2px 7px rgba(50,39,53,.05);
}
body[data-shell="editorial"] .mfp-workbook-secondary { padding:0; }
body[data-shell="editorial"] .mfp-workbook-frame > .mfp-commandbar {
  min-height:41px;
  top:48px;
  z-index:20;
  margin:0;
  padding:5px 7px;
  background:#f8f4ee;
  border:0;
  border-bottom:1px solid #d8d0c7;
  border-radius:0;
  box-shadow:none;
  backdrop-filter:none;
}
body[data-shell="editorial"] .mfp-workbook-frame > .mfp-commandbar .plan-ver { background:#fffdfa; }
body[data-shell="editorial"] .mfp-workbook-frame > .mfp-commandbar .mfp-view-seg { background:#e9e2dc; }
body[data-shell="editorial"] .mfp-workbook-frame > .mfp-previewbar,
body[data-shell="editorial"] .mfp-workbook-frame > .mfp-scenario-composer,
body[data-shell="editorial"] .mfp-workbook-frame > .mfp-compare-active { margin:0; border-left:0; border-right:0; border-radius:0; }
body[data-shell="editorial"] .mfp-workbook-frame > .mfp-kpis { margin:0; border-radius:0; }
body[data-shell="editorial"] .mfp-workbook-frame > .mfp-viewnote,
body[data-shell="editorial"] .mfp-workbook-frame > .mfp-uv-note { margin:0; border-radius:0; }
body[data-shell="editorial"] .mfp-workbook-frame .mfp-formulabar {
  margin:0;
  border-left:0;
  border-right:0;
  border-radius:0;
}
body[data-shell="editorial"] .mfp-premium .mfp-workbook-frame .mfp-grid-wrap {
  max-height:calc(100vh - 146px);
  margin:0;
  background:#fffdfa;
  border:0;
  border-radius:0;
  box-shadow:none;
}
body[data-shell="editorial"] .mfp-formulabar:not(.is-idle) + .mfp-grid-wrap { border-radius:0; }

body[data-shell="editorial"] .mfp-premium .mfp-grid {
  background:#fffdfa;
  border-collapse:separate;
  border-spacing:0;
}
body[data-shell="editorial"] .mfp-premium .mfp-grid td,
body[data-shell="editorial"] .mfp-premium .mfp-grid th {
  height:30px;
  padding:4px 9px;
  border-left:0;
  border-right:0;
  border-bottom:1px solid #eee9e4;
}
body[data-shell="editorial"] .mfp-premium .mfp-grid thead th {
  height:35px;
  color:#716970;
  background:#f5f1ec;
  border-bottom:1px solid #d5cec7;
}
body[data-shell="editorial"] .mfp-premium .mfp-grid .mfp-mcol,
body[data-shell="editorial"] .mfp-premium .mfp-grid .mfp-rlabel {
  min-width:204px;
  width:204px;
  color:#4d464d;
  background:#faf6f1;
  box-shadow:1px 0 0 #d8d1ca;
}
body[data-shell="editorial"] .mfp-premium .mfp-grid thead .mfp-mcol {
  color:#6f6570;
  background:#f0ebe5;
}
body[data-shell="editorial"] .mfp-premium .mfp-grid tbody.mfp-blk .mfp-mhead td {
  height:36px;
  padding-top:6px;
  padding-bottom:5px;
  border-top:7px solid #efede9;
  border-bottom:0;
  box-shadow:none;
}
body[data-shell="editorial"] .mfp-premium .mfp-grid tbody.mfp-blk:first-of-type .mfp-mhead td { border-top-width:0; }
body[data-shell="editorial"] .mfp-premium .mfp-grid tbody.mfp-blk .mfp-mhead .mfp-mcol {
  position:sticky;
  left:0;
  z-index:7;
  color:#fffaf4;
  background:#33263a!important;
  border-left:4px solid var(--mfp-band-ink,#9d7aaa);
  box-shadow:7px 0 16px rgba(48,35,53,.10);
}
body[data-shell="editorial"] .mfp-premium .mfp-grid tbody.mfp-blk .mfp-mhead .mfp-mhead-fill {
  background:#f3eee8!important;
}
body[data-shell="editorial"] .mfp-premium .mfp-grid tbody.mfp-blk .mfp-mlabel {
  color:#fffaf4;
  font-family:"Instrument Serif",Georgia,serif;
  font-size:15px;
  font-weight:600;
}
body[data-shell="editorial"] .mfp-premium .mfp-mhead .mfp-editbadge {
  color:#e9deec;
  background:rgba(255,255,255,.08)!important;
  border-color:rgba(255,255,255,.25);
}
body[data-shell="editorial"] .mfp-premium .mfp-mhead .mfp-editbadge.derived {
  color:#dcd4dc;
  background:rgba(255,255,255,.06)!important;
  border-color:rgba(255,255,255,.18);
}
body[data-shell="editorial"] .mfp-premium .mfp-mhead .mfp-why { color:#fffaf4; }
body[data-shell="editorial"] .mfp-premium .mfp-grid tbody.mfp-blk td:not(.mfp-rlabel):not(.mfp-mcol):not(.mfp-roll):not(.mfp-fy):not(.mfp-mhead-fill) { background:#fffdfa; }
body[data-shell="editorial"] .mfp-premium .mfp-grid tbody.mfp-blk .mfp-editrow td:not(.mfp-rlabel):not(.mfp-mcol):not(.mfp-roll):not(.mfp-fy),
body[data-shell="editorial"] .mfp-premium .mfp-grid tbody.mfp-blk .mfp-editrow .mfp-rlabel {
  background:#faf7fb!important;
  box-shadow:inset 0 1px 0 #eee8f0,inset 0 -1px 0 #eee8f0;
}
body[data-shell="editorial"] .mfp-premium .mfp-grid .mfp-roll {
  background:#f8f4ef;
  border-left:1px solid #ded6cf;
}
body[data-shell="editorial"] .mfp-premium .mfp-grid .mfp-fy {
  background:#f1eaf3;
  border-left:1px solid #cfc2d3;
  box-shadow:-7px 0 14px rgba(61,41,67,.06);
}
body[data-shell="editorial"] .mfp-premium .mfp-grid .mfp-varrow td { color:#8a8489; font-size:10px; }
body[data-shell="editorial"] .mfp-premium .mfp-grid .mfp-wp td { color:#282329; font-weight:680; }
body[data-shell="editorial"] .mfp-premium .mfp-src { margin-top:8px; }

body[data-shell="editorial"] .mfp-focus-grid .mfp-workbook-head { display:none; }
body[data-shell="editorial"] .mfp-focus-grid .mfp-workbook-frame { border-radius:0; box-shadow:none; }
body[data-shell="editorial"] .mfp-focus-grid .mfp-workbook-frame > .mfp-commandbar { top:0; }
body[data-shell="editorial"] .mfp-focus-grid .mfp-workbook-frame .mfp-grid-wrap { max-height:calc(100vh - 44px); }

@media(max-width:1180px) {
  body[data-shell="editorial"] .view { padding:0 14px 18px; }
  body[data-shell="editorial"] .mfp-workbook-head { grid-template-columns:minmax(240px,300px) minmax(340px,1fr) auto; gap:16px; }
  body[data-shell="editorial"] .mfp-workbook-head .mfp-tabs { gap:16px; }
  body[data-shell="editorial"] .mfp-premium .mfp-workbook-frame .mfp-grid-wrap { max-height:calc(100vh - 146px); }
}
@media(max-width:820px) {
  body[data-shell="editorial"] .mfp-workbook-head { min-height:88px; grid-template-columns:1fr auto; gap:0 12px; }
  body[data-shell="editorial"] .mfp-module-switch { padding-bottom:0; }
  body[data-shell="editorial"] .mfp-module-switch select { font-size:19px; }
  body[data-shell="editorial"] .mfp-workbook-head .mfp-tabs { grid-column:1/-1; grid-row:2; min-height:34px; gap:18px; }
  body[data-shell="editorial"] .mfp-workbook-head .mfp-tab { min-height:34px; padding:8px 0 7px; }
  body[data-shell="editorial"] .mfp-workbook-actions { grid-column:2; grid-row:1; min-height:48px; padding-bottom:0; }
  body[data-shell="editorial"] .mfp-premium .mfp-workbook-frame .mfp-grid-wrap { max-height:calc(100vh - 181px); }
  body[data-shell="editorial"] .mfp-premium .mfp-grid .mfp-mcol,
  body[data-shell="editorial"] .mfp-premium .mfp-grid .mfp-rlabel { min-width:168px; width:168px; }
}
/* ===== Crisp workbook correction: white grid, sans utility type ===== */
/* The cement belongs to the app canvas only. Every table plane is white or cool-neutral. */
body[data-shell="editorial"] .mfp-premium,
body[data-shell="editorial"] .mfp-premium button,
body[data-shell="editorial"] .mfp-premium input,
body[data-shell="editorial"] .mfp-premium select,
body[data-shell="editorial"] .mfp-premium table {
  font-family:"Instrument Sans","Segoe UI",Arial,sans-serif;
}
body[data-shell="editorial"] .mfp-module-switch select {
  color:#241f27;
  font-family:"Instrument Sans","Segoe UI",Arial,sans-serif;
  font-size:19px;
  font-weight:720;
  letter-spacing:-.025em;
}
body[data-shell="editorial"] .mfp-command-orientation b {
  font-family:"Instrument Sans","Segoe UI",Arial,sans-serif;
  font-size:11px;
  font-weight:720;
}
body[data-shell="editorial"] .mfp-workbook-frame,
body[data-shell="editorial"] .mfp-premium .mfp-workbook-frame .mfp-grid-wrap,
body[data-shell="editorial"] .mfp-premium .mfp-grid { background:#fff!important; }
body[data-shell="editorial"] .mfp-workbook-frame > .mfp-commandbar {
  background:#f8f8fa;
  border-bottom-color:#d9d9df;
}
body[data-shell="editorial"] .mfp-workbook-frame > .mfp-commandbar .plan-ver { background:#fff; }
body[data-shell="editorial"] .mfp-workbook-frame > .mfp-commandbar .mfp-view-seg { background:#eae9ed; }
body[data-shell="editorial"] .mfp-premium .mfp-grid thead th {
  color:#62616a;
  background:#f5f5f7;
  border-bottom-color:#d8d8df;
}
body[data-shell="editorial"] .mfp-premium .mfp-grid thead .mfp-mcol {
  color:#5d5a63;
  background:#f2f2f5;
}
body[data-shell="editorial"] .mfp-premium .mfp-grid .mfp-mcol,
body[data-shell="editorial"] .mfp-premium .mfp-grid .mfp-rlabel {
  background:#fbfbfc;
  box-shadow:1px 0 0 #dddde2;
}
body[data-shell="editorial"] .mfp-premium .mfp-grid tbody.mfp-blk .mfp-mhead td {
  border-top-color:#fff;
}
body[data-shell="editorial"] .mfp-premium .mfp-grid tbody.mfp-blk .mfp-mhead .mfp-mhead-fill {
  background:#fff!important;
}
body[data-shell="editorial"] .mfp-premium .mfp-grid tbody.mfp-blk .mfp-mhead .mfp-mcol {
  color:#fff;
  background:#2f2536!important;
  box-shadow:6px 0 14px rgba(39,31,43,.09);
}
body[data-shell="editorial"] .mfp-premium .mfp-grid tbody.mfp-blk .mfp-mlabel {
  color:#fff;
  font-family:"Instrument Sans","Segoe UI",Arial,sans-serif;
  font-size:11.5px;
  font-weight:740;
  letter-spacing:-.01em;
}
body[data-shell="editorial"] .mfp-premium .mfp-grid tbody.mfp-blk td:not(.mfp-rlabel):not(.mfp-mcol):not(.mfp-roll):not(.mfp-fy):not(.mfp-mhead-fill),
body[data-shell="editorial"] .mfp-premium .mfp-grid tbody.mfp-blk .mfp-seed td,
body[data-shell="editorial"] .mfp-premium .mfp-grid tbody.mfp-blk .mfp-varrow td { background:#fff; }
body[data-shell="editorial"] .mfp-premium .mfp-grid .mfp-roll {
  background:#fafafa;
  border-left-color:#dedee3;
}
body[data-shell="editorial"] .mfp-premium .mfp-grid .mfp-fy {
  background:#f5f2f7;
  border-left-color:#d5ccda;
}
body[data-shell="editorial"] .mfp-premium .mfp-grid tbody.mfp-blk .mfp-editrow td:not(.mfp-rlabel):not(.mfp-mcol):not(.mfp-roll):not(.mfp-fy),
body[data-shell="editorial"] .mfp-premium .mfp-grid tbody.mfp-blk .mfp-editrow .mfp-rlabel {
  background:#faf8fc!important;
}
/* ===== Compact command spacing ===== */
/* Version actions and view mode are one toolbar: no oversized field wrapper or double gap. */
body[data-shell="editorial"] .mfp-workbook-frame > .mfp-commandbar {
  padding:5px 6px;
  gap:8px;
}
body[data-shell="editorial"] .mfp-command-left,
body[data-shell="editorial"] .mfp-command-right { gap:4px; }
body[data-shell="editorial"] .mfp-commandbar .plan-ver {
  min-height:28px;
  gap:2px;
  margin:0;
  padding:0;
  background:transparent!important;
  border:0;
  border-radius:0;
  box-shadow:none;
}
body[data-shell="editorial"] .mfp-commandbar .plan-ver-sel {
  width:132px;
  max-width:132px;
  height:28px;
  padding:0 24px 0 9px;
  background:#fff!important;
  border:1px solid #d8d8de;
  border-radius:6px;
  font-size:10.5px;
}
body[data-shell="editorial"] .mfp-commandbar .plan-ver-act {
  min-height:28px;
  padding:3px 6px;
  border-radius:5px;
  font-size:10px;
  line-height:1;
}
body[data-shell="editorial"] .mfp-commandbar .mfp-view-seg { margin:0 0 0 3px; }
body[data-shell="editorial"] .mfp-command-rule { margin:0 1px; }
@media(max-width:1180px) {
  body[data-shell="editorial"] .mfp-commandbar .plan-ver-sel { width:118px; max-width:118px; }
}
/* ===== Workbook toolbar vertical alignment ===== */
/* The grid scrolls independently; a sticky top offset here only creates an empty band. */
body[data-shell="editorial"] .mfp-workbook-frame > .mfp-commandbar {
  position:relative!important;
  top:auto!important;
}
/* ===== Semantic grid warmth ===== */
/* Local workbook surface token: structural ink, not a replacement for the purple jewel. */
body[data-shell="editorial"] .mfp-premium {
  --mfp-grid-ink:#2f2536;
  --mfp-rollup:#f6f3ec;
  --mfp-rollup-year:#eee9dd;
}
body[data-shell="editorial"] .mfp-premium .mfp-grid tbody.mfp-blk .mfp-mhead .mfp-mcol {
  color:#fff;
  background:var(--mfp-grid-ink)!important;
  border-left:4px solid var(--mfp-band-ink,var(--mfp-accent));
}
body[data-shell="editorial"] .mfp-premium .mfp-grid tbody.mfp-blk .mfp-mhead .mfp-mhead-fill {
  background:color-mix(in srgb,var(--mfp-band,#eee8df) 72%,#fff)!important;
}
body[data-shell="editorial"] .mfp-premium .mfp-grid tbody.mfp-blk .mfp-editrow td:not(.mfp-rlabel):not(.mfp-mcol):not(.mfp-roll):not(.mfp-fy),
body[data-shell="editorial"] .mfp-premium .mfp-grid tbody.mfp-blk .mfp-editrow .mfp-rlabel {
  background:color-mix(in srgb,var(--mfp-band,#eee8df) 30%,#fff)!important;
}
body[data-shell="editorial"] .mfp-premium .mfp-grid .mfp-roll {
  background:var(--mfp-rollup)!important;
  border-left-color:#ded2c1;
}
body[data-shell="editorial"] .mfp-premium .mfp-grid .mfp-fy {
  background:var(--mfp-rollup-year)!important;
  border-left-color:#cfbea7;
  box-shadow:-6px 0 13px rgba(76,58,42,.055);
}
/* ===== Home planning cockpit · editorial luxury pass ===== */
body[data-shell="editorial"]:has(.cp-home-cockpit) .view {
  background:#f5f1ea;
}
body[data-shell="editorial"] .cp-home-cockpit {
  --cp-home-ink:#211b22;
  --cp-home-aubergine:#2f2536;
  --cp-home-muted:#746d72;
  --cp-home-rule:#d8cec3;
  --cp-home-rule-soft:#e8e0d7;
  --cp-home-paper:#f5f1ea;
  --cp-home-surface:#fffdfa;
  --cp-home-warm:#f0e5d8;
  --cp-home-plum:#361a4c;
  color:var(--cp-home-ink);
}
body[data-shell="editorial"] .cp-home-cockpit .cp-exec-context {
  min-height:50px;
  margin-bottom:0;
  color:#776f75;
  border-bottom-color:var(--cp-home-rule);
}
body[data-shell="editorial"] .cp-home-cockpit .cp-exec-context b {
  color:var(--cp-home-aubergine);
  font-weight:650;
}
body[data-shell="editorial"] .cp-home-cockpit .cp-period .seg {
  background:rgba(255,253,250,.72);
  border-color:var(--cp-home-rule);
}
body[data-shell="editorial"] .cp-home-cockpit .cp-period .seg-btn.active {
  background:var(--cp-home-aubergine);
}
body[data-shell="editorial"] .cp-insight-ribbon {
  display:grid;
  grid-template-columns:92px minmax(260px,.72fr) minmax(320px,1.35fr) auto;
  gap:18px;
  align-items:center;
  min-height:72px;
  margin-top:8px;
  padding:13px 0 14px;
  background:transparent;
  border:0;
  border-bottom:1px solid var(--cp-home-rule);
  border-radius:0;
  box-shadow:none;
}
body[data-shell="editorial"] .cp-insight-mark { display:none; }
body[data-shell="editorial"] .cp-insight-label {
  position:relative;
  padding-left:15px;
  color:var(--cp-home-plum);
  font-size:9px;
  font-weight:760;
  letter-spacing:.14em;
  line-height:1.25;
  text-transform:uppercase;
}
body[data-shell="editorial"] .cp-insight-label::before {
  content:"";
  position:absolute;
  left:1px;
  top:3px;
  width:7px;
  height:7px;
  background:var(--cp-home-plum);
  transform:rotate(45deg);
}
body[data-shell="editorial"] .cp-insight-ribbon strong {
  color:var(--cp-home-aubergine);
  font-family:"Instrument Serif",Georgia,serif;
  font-size:21px;
  font-weight:400;
  letter-spacing:-.02em;
  line-height:1.08;
}
body[data-shell="editorial"] .cp-insight-copy {
  color:var(--cp-home-muted);
  font-size:11.5px;
  line-height:1.48;
}
body[data-shell="editorial"] .cp-insight-ribbon button {
  padding:4px 0 3px;
  color:#4e275f;
  background:transparent;
  border:0;
  border-bottom:1px solid #9e8ea6;
  font-size:10.5px;
  font-weight:700;
  white-space:nowrap;
  cursor:pointer;
}
body[data-shell="editorial"] .cp-plan-score {
  display:grid;
  grid-template-columns:repeat(5,minmax(150px,1fr));
  margin-top:0;
  background:transparent;
  border:0;
  border-bottom:1px solid var(--cp-home-rule);
  border-radius:0;
  overflow:visible;
}
body[data-shell="editorial"] .cp-plan-metric {
  position:relative;
  display:grid;
  gap:7px;
  min-width:0;
  padding:17px 19px 15px;
  text-align:left;
  background:transparent;
  border:0;
  border-right:1px solid var(--cp-home-rule);
  cursor:pointer;
}
body[data-shell="editorial"] .cp-plan-metric:first-child { padding-left:0; }
body[data-shell="editorial"] .cp-plan-metric:last-child { padding-right:0; border-right:0; }
body[data-shell="editorial"] .cp-plan-metric::after {
  content:"";
  position:absolute;
  right:18px;
  bottom:-1px;
  left:18px;
  height:3px;
  background:transparent;
}
body[data-shell="editorial"] .cp-plan-metric:first-child::after { left:0; }
body[data-shell="editorial"] .cp-plan-metric:last-child::after { right:0; }
body[data-shell="editorial"] .cp-plan-metric:hover { background:rgba(255,253,250,.42); }
body[data-shell="editorial"] .cp-plan-metric.active::after { background:var(--cp-home-plum); }
body[data-shell="editorial"] .cp-plan-label {
  color:#7d757b;
  font-size:8.5px;
  font-weight:760;
  letter-spacing:.115em;
  line-height:1.2;
  text-transform:uppercase;
}
body[data-shell="editorial"] .cp-plan-metric > strong {
  color:var(--cp-home-aubergine);
  font-family:"Instrument Serif",Georgia,serif;
  font-size:31px;
  font-weight:400;
  letter-spacing:-.035em;
  line-height:.98;
}
body[data-shell="editorial"] .cp-plan-comps {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:5px;
  padding-top:0;
  border-top:0;
}
body[data-shell="editorial"] .cp-plan-comp {
  min-width:0;
  color:#716a70;
  font-size:9.5px;
  font-variant-numeric:tabular-nums;
  white-space:nowrap;
}
body[data-shell="editorial"] .cp-plan-comp b {
  display:inline;
  margin-right:3px;
  color:#9a9298;
  font-size:7.5px;
  letter-spacing:.065em;
}
body[data-shell="editorial"] .cp-plan-comp.up { color:#2f7257; }
body[data-shell="editorial"] .cp-plan-comp.down { color:#a25f39; }
body[data-shell="editorial"] .cp-plan-comp.na { color:#aaa3a8; }
body[data-shell="editorial"] .cp-performance-evidence {
  display:grid;
  grid-template-columns:minmax(0,3fr) minmax(240px,.82fr);
  gap:38px;
  padding-top:28px;
}
body[data-shell="editorial"] .cp-performance-evidence .cp-section-head,
body[data-shell="editorial"] .cp-hierarchy .cp-section-head {
  display:flex;
  justify-content:space-between;
  gap:16px;
  align-items:flex-end;
  margin-bottom:13px;
}
body[data-shell="editorial"] .cp-performance-evidence h2,
body[data-shell="editorial"] .cp-hierarchy h2 {
  margin:0 0 3px;
  color:var(--cp-home-aubergine);
  font-family:"Instrument Serif",Georgia,serif;
  font-size:23px;
  font-weight:400;
  letter-spacing:-.025em;
}
body[data-shell="editorial"] .cp-performance-evidence .cp-section-head span,
body[data-shell="editorial"] .cp-hierarchy .cp-section-head span {
  color:#847c82;
  font-size:10px;
}
body[data-shell="editorial"] .cp-compare-switch {
  display:inline-flex;
  padding:2px;
  background:rgba(255,253,250,.68);
  border:1px solid var(--cp-home-rule);
  border-radius:999px;
}
body[data-shell="editorial"] .cp-compare-switch button {
  min-width:36px;
  padding:4px 8px;
  color:#756d74;
  background:transparent;
  border:0;
  border-radius:999px;
  font-size:8.5px;
  font-weight:760;
  cursor:pointer;
}
body[data-shell="editorial"] .cp-compare-switch button.active {
  color:#fff;
  background:var(--cp-home-aubergine);
  box-shadow:none;
}
/* A comparison with nothing behind it. FV has no saved OP or RP, and an enabled-looking button that
   emphasises an absent line is worse than one that says so. Struck through, not merely faded — at
   8.5px a fade alone reads as anti-aliasing rather than as a state. */
body[data-shell="editorial"] .cp-compare-switch button.cp-compare-off {
  color:#a89fa6;
  text-decoration:line-through;
  cursor:not-allowed;
}
body[data-shell="editorial"] .cp-hier-dark {
  display:block;
  margin-top:3px;
  color:var(--cp-home-ink-3, #6b655c);
  font-size:9.5px;
  font-style:italic;
  letter-spacing:.02em;
}
body[data-shell="editorial"] .cp-plan-chart {
  padding:13px 14px 4px 4px;
  background:var(--cp-home-surface);
  border:1px solid var(--cp-home-rule-soft);
  border-radius:2px;
  box-shadow:0 10px 28px rgba(55,43,52,.045);
}
body[data-shell="editorial"] .cp-plan-chart .hl-chart {
  display:block;
  width:100%;
  max-height:255px;
}
body[data-shell="editorial"] .cp-plan-legend {
  display:flex;
  justify-content:flex-end;
  gap:15px;
  min-height:20px;
  color:#6d666c;
  font-size:9px;
}
body[data-shell="editorial"] .cp-plan-legend span {
  display:inline-flex;
  gap:5px;
  align-items:center;
}
body[data-shell="editorial"] .cp-plan-legend span.missing { color:#aaa3a8; }
body[data-shell="editorial"] .cp-plan-legend i {
  width:16px;
  height:2px;
  background:var(--line);
}
body[data-shell="editorial"] .cp-plan-legend .missing i { opacity:.3; }
body[data-shell="editorial"] .cp-movers {
  padding-left:27px;
  border-left:1px solid var(--cp-home-rule);
}
body[data-shell="editorial"] .cp-mover {
  display:block;
  width:100%;
  padding:11px 0 12px;
  text-align:left;
  background:transparent;
  border:0;
  border-bottom:1px solid var(--cp-home-rule);
  cursor:pointer;
}
body[data-shell="editorial"] .cp-mover-line {
  display:flex;
  justify-content:space-between;
  gap:9px;
  color:#393239;
  font-size:10.5px;
}
body[data-shell="editorial"] .cp-mover-line b { font-weight:680; }
body[data-shell="editorial"] .cp-mover-bar {
  display:block;
  height:3px;
  margin:7px 0 4px;
  background:#e6ddd5;
}
body[data-shell="editorial"] .cp-mover-bar i {
  display:block;
  height:100%;
  background:var(--cp-home-aubergine);
}
body[data-shell="editorial"] .cp-mover.risk .cp-mover-bar i { background:#a15155; }
body[data-shell="editorial"] .cp-mover small { color:#8b8389; font-size:9px; }
body[data-shell="editorial"] .cp-hierarchy {
  margin-top:34px;
  padding-top:23px;
  border-top:1px solid var(--cp-home-rule);
}
body[data-shell="editorial"] .cp-hierarchy-tools {
  display:flex;
  gap:4px;
}
body[data-shell="editorial"] .cp-hierarchy-tools button {
  padding:5px 9px;
  color:#655d64;
  background:rgba(255,253,250,.72);
  border:1px solid var(--cp-home-rule);
  border-radius:999px;
  font-size:8.5px;
  font-weight:680;
  cursor:pointer;
}
body[data-shell="editorial"] .cp-hierarchy-tools button:hover {
  color:#4e275f;
  border-color:#ad9cb3;
}
body[data-shell="editorial"] .cp-hierarchy-scroll {
  max-height:435px;
  overflow:auto;
  background:var(--cp-home-surface);
  border:1px solid var(--cp-home-rule);
  border-radius:2px;
  box-shadow:0 13px 32px rgba(55,43,52,.055);
}
body[data-shell="editorial"] .cp-hierarchy table {
  width:100%;
  min-width:1120px;
  border-collapse:separate;
  border-spacing:0;
  font-size:10px;
  font-variant-numeric:tabular-nums;
}
body[data-shell="editorial"] .cp-hierarchy th {
  position:sticky;
  top:0;
  z-index:3;
  height:34px;
  padding:0 10px;
  color:#d9d0da;
  text-align:left;
  background:var(--cp-home-aubergine);
  border-bottom:1px solid #211a27;
  font-size:8px;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  white-space:nowrap;
}
body[data-shell="editorial"] .cp-hierarchy td {
  height:32px;
  padding:5px 10px;
  color:#4b454b;
  background:var(--cp-home-surface);
  border-bottom:1px solid #ece5de;
  white-space:nowrap;
}
body[data-shell="editorial"] .cp-hierarchy th.num,
body[data-shell="editorial"] .cp-hierarchy td.num { text-align:right; }
body[data-shell="editorial"] .cp-hierarchy th:first-child {
  left:0;
  z-index:5;
  min-width:285px;
}
body[data-shell="editorial"] .cp-hierarchy td:first-child {
  position:sticky;
  left:0;
  z-index:2;
  min-width:285px;
  box-shadow:1px 0 0 #ded5ce;
}
body[data-shell="editorial"] .cp-hierarchy tr[data-home-level="0"] td {
  color:#2e2530;
  background:var(--cp-home-warm);
  font-weight:750;
  border-bottom-color:#d7c8b8;
}
body[data-shell="editorial"] .cp-hierarchy tr[data-home-level="1"] td {
  background:#faf6ef;
  font-weight:680;
}
body[data-shell="editorial"] .cp-hierarchy tbody tr:hover td { background:#f8f1fa; }
body[data-shell="editorial"] .cp-tree-name {
  display:flex;
  align-items:center;
  gap:6px;
  padding-left:calc(9px + var(--level) * 17px)!important;
}
body[data-shell="editorial"] .cp-tree-name > span {
  overflow:hidden;
  text-overflow:ellipsis;
}
body[data-shell="editorial"] .cp-tree-name small {
  margin-left:auto;
  color:#a0989e;
  font-size:7.5px;
  font-weight:650;
  letter-spacing:.055em;
  text-transform:uppercase;
}
body[data-shell="editorial"] .cp-tree-toggle,
body[data-shell="editorial"] .cp-tree-leaf {
  display:inline-grid;
  place-items:center;
  flex:0 0 17px;
  width:17px;
  height:17px;
}
body[data-shell="editorial"] .cp-tree-toggle {
  color:#fff;
  background:var(--cp-home-plum);
  border:0;
  border-radius:50%;
  font-size:12px;
  line-height:1;
  cursor:pointer;
}
body[data-shell="editorial"] .cp-hierarchy .up { color:#2e7357; font-weight:650; }
body[data-shell="editorial"] .cp-hierarchy .down { color:#a25c3b; font-weight:650; }
body[data-shell="editorial"] .cp-hierarchy .na { color:#aaa3a8; }
body[data-shell="editorial"] .cp-hierarchy .strong { color:#2d2730; font-weight:720; }
body[data-shell="editorial"] .cp-home-cockpit .cp-source {
  margin:10px 0 18px;
  padding-top:0;
  color:#938b90;
}
@media(max-width:1100px) {
  body[data-shell="editorial"] .cp-insight-ribbon {
    grid-template-columns:92px minmax(230px,1fr) auto;
  }
  body[data-shell="editorial"] .cp-insight-copy {
    grid-column:2 / 4;
  }
  body[data-shell="editorial"] .cp-performance-evidence {
    grid-template-columns:1fr;
  }
  body[data-shell="editorial"] .cp-movers {
    padding:22px 0 0;
    border-top:1px solid var(--cp-home-rule);
    border-left:0;
  }
}
@media(max-width:760px) {
  body[data-shell="editorial"] .cp-home-cockpit .cp-exec-context {
    align-items:flex-start;
  }
  body[data-shell="editorial"] .cp-home-cockpit .cp-exec-context-right {
    align-items:flex-end;
  }
  body[data-shell="editorial"] .cp-insight-ribbon {
    grid-template-columns:1fr auto;
    gap:5px 14px;
    padding:9px 0;
  }
  body[data-shell="editorial"] .cp-insight-label { grid-column:1; }
  body[data-shell="editorial"] .cp-insight-ribbon strong {
    grid-column:1 / 3;
    font-size:19px;
  }
  body[data-shell="editorial"] .cp-insight-copy { grid-column:1 / 3; }
  body[data-shell="editorial"] .cp-insight-ribbon button {
    grid-column:2;
    grid-row:1;
  }
  body[data-shell="editorial"] .cp-plan-score {
    grid-template-columns:repeat(5,minmax(190px,1fr));
    overflow-x:auto;
  }
  body[data-shell="editorial"] .cp-plan-metric:first-child { padding-left:14px; }
  body[data-shell="editorial"] .cp-plan-metric:last-child { padding-right:14px; }
  body[data-shell="editorial"] .cp-plan-metric:first-child::after { left:14px; }
  body[data-shell="editorial"] .cp-plan-metric:last-child::after { right:14px; }
  body[data-shell="editorial"] .cp-performance-evidence { padding-top:21px; }
  body[data-shell="editorial"] .cp-performance-evidence .cp-section-head,
  body[data-shell="editorial"] .cp-hierarchy .cp-section-head { align-items:flex-start; }
  body[data-shell="editorial"] .cp-hierarchy-tools {
    flex-wrap:wrap;
    justify-content:flex-end;
  }
}
body[data-shell="editorial"] .cp-hierarchy-empty {
  display:grid;
  grid-template-columns:minmax(190px,.36fr) minmax(280px,1fr);
  gap:22px;
  align-items:baseline;
  padding:22px 24px;
  background:var(--cp-home-surface);
  border:1px solid var(--cp-home-rule);
  border-left:4px solid var(--cp-home-aubergine);
}
body[data-shell="editorial"] .cp-hierarchy-empty strong {
  color:var(--cp-home-aubergine);
  font-family:"Instrument Serif",Georgia,serif;
  font-size:20px;
  font-weight:400;
}
body[data-shell="editorial"] .cp-hierarchy-empty span {
  color:var(--cp-home-muted);
  font-size:11px;
  line-height:1.5;
}
@media(max-width:760px) {
  body[data-shell="editorial"] .cp-hierarchy-empty { grid-template-columns:1fr; gap:6px; }
}
/* ===== FV Item Master · merchant luxury system ===== */
body:has(.afa-im-ledger){--im-ink:#2f2536;--im-plum:#361a4c;--im-plum-soft:#eee7f3;--im-paper:#fffdfa;--im-canvas:#f5f1ea;--im-rule:#d9d0c6;--im-muted:#756d68;background:var(--im-canvas)}
body:has(.afa-im-ledger) .page-head{align-items:end;margin:0 0 12px;padding:15px 2px 11px;border-bottom:1px solid var(--im-rule)}
body:has(.afa-im-ledger) .page-head :is(h1,h2){color:#211d24;font-family:var(--font-serif,"Iowan Old Style",Baskerville,Georgia,serif);font-size:31px;font-weight:500;letter-spacing:-.035em;line-height:1}
body:has(.afa-im-ledger) .page-head p{max-width:680px;margin-top:7px;color:var(--im-muted);font-size:12px}
body:has(.afa-im-ledger) .afa-view-seg{padding:2px;background:#e9e3dc;border:0;border-radius:7px}
body:has(.afa-im-ledger) .afa-view-seg .seg-btn{min-width:62px;min-height:30px;color:#6d6560;border:0;border-radius:5px}
body:has(.afa-im-ledger) .afa-view-seg .seg-btn.active{color:#fff;background:var(--im-ink);box-shadow:0 1px 3px rgba(47,37,54,.18)}
body:has(.afa-im-ledger) .secondary-btn.compact{min-height:34px;border-color:var(--im-rule);background:var(--im-paper)}
body .afa-im-ledger{display:flex;align-items:stretch;gap:0;margin:0 0 10px;padding:0;overflow:hidden;background:var(--im-paper,#fffdfa);border:1px solid var(--im-rule,#d9d0c6);border-radius:3px;box-shadow:0 8px 22px rgba(47,37,54,.035)}
body .afa-im-ledger .scope-totals{display:grid;grid-template-columns:repeat(7,minmax(96px,1fr));flex:1;min-width:0}
body .afa-im-ledger .stat{min-width:0;padding:12px 15px 11px;border-right:1px solid #e6ded6}
body .afa-im-ledger .stat label,body .afa-im-health>span{display:block;margin:0 0 5px;color:#8a817b;font-size:9px;font-weight:700;letter-spacing:.085em;line-height:1;text-transform:uppercase}
body .afa-im-ledger .stat strong{display:block;overflow:hidden;color:#262128;font-family:var(--font-serif,"Iowan Old Style",Baskerville,Georgia,serif);font-size:19px;font-weight:500;letter-spacing:-.025em;line-height:1.05;text-overflow:ellipsis;white-space:nowrap}
body .afa-im-health{display:flex;align-content:center;align-items:center;flex:0 0 auto;flex-wrap:wrap;gap:5px;max-width:350px;padding:10px 13px;background:#f0ebe5}
body .afa-im-health>span{width:100%;margin-bottom:1px}
body .afa-exc{min-height:23px;padding:3px 8px;color:#5d5550;font-size:10px;background:#fffaf4;border:1px solid #d8cdc1;border-radius:999px}
body .afa-exc strong{margin-left:3px;color:#2f2536}body .afa-exc.alert{border-left:3px solid #a64555}body .afa-exc.warn{border-left:3px solid #aa7437}
body .afa-exc.on{color:#fff;background:var(--im-ink,#2f2536);border-color:var(--im-ink,#2f2536)}body .afa-exc.on strong{color:#fff}
body .afa-im-filter-shell{position:relative;z-index:5;margin:0 0 9px;padding:8px;background:rgba(255,253,250,.96);border:1px solid var(--im-rule,#d9d0c6);border-radius:3px}
body .afa-im-filter-primary,body .afa-im-filter-more{display:flex;align-items:center;gap:6px}
body .afa-im-filter-more{flex-wrap:wrap;margin-top:8px;padding-top:8px;border-top:1px solid #e6ded6}
body .afa-im-searchbox{flex:1 1 280px;min-width:220px;max-width:420px}
body .afa-im-searchbox input{width:100%;height:34px;padding:0 12px 0 34px;color:#29242a;background:#fff;border:1px solid #d8cfc6;border-radius:5px}
body .afa-im-filter-shell .mpicker-btn{min-width:142px;height:34px;padding:0 30px 0 10px;color:#3b343a;background:#fff;border-color:#d8cfc6;border-radius:5px;font-size:11px}
body .afa-im-filter-shell .mpicker-btn .pick-label{color:#867d77}
body .afa-im-filter-shell .mpicker-btn.has-value,body .afa-im-filter-shell .mpicker.open .mpicker-btn{color:var(--im-plum,#361a4c);border-color:#a98dbb;box-shadow:inset 0 -2px 0 var(--im-plum,#361a4c)}
body .afa-im-more-btn,body .afa-im-clear{height:34px;padding:0 10px;color:#615a56;background:transparent;border:1px solid #d8cfc6;border-radius:5px;font-size:10.5px}
body .afa-im-more-btn span{display:inline-grid;place-items:center;min-width:18px;height:18px;margin-left:4px;color:#fff;background:var(--im-ink,#2f2536);border-radius:999px;font-size:9px}
body .afa-im-more-btn.active{color:var(--im-plum,#361a4c);border-color:#a98dbb}
body .afa-im-sort{display:flex;align-items:center;gap:6px;height:34px;padding:0 8px;color:#817873;background:#f4efe9;border-radius:5px;font-size:9px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
body .afa-im-sort select{color:#332d32;background:transparent;border:0;font-size:11px;font-weight:650;outline:0}
body .afa-im-filter-status{margin-left:auto;color:#7b716a;font-size:10px;white-space:nowrap}body .afa-im-clear{height:26px;padding:0 7px;color:var(--im-plum,#361a4c);border:0}
body .afa-im-profiles{display:flex;align-items:center;gap:2px;margin:0 0 7px;padding:4px;width:max-content;max-width:100%;background:#eae4dd;border-radius:6px}
body .afa-im-profiles>span{padding:0 7px;color:#867d77;font-size:9px;font-weight:750;letter-spacing:.08em;text-transform:uppercase}
body .afa-im-profiles button{min-height:28px;padding:0 10px;color:#675f5a;background:transparent;border:0;border-radius:4px;font-size:10.5px}
body .afa-im-profiles button.active{color:#fff;background:var(--im-ink,#2f2536);box-shadow:0 1px 3px rgba(47,37,54,.16)}
body .afa-cards-grid:has(.afa-im-card){display:grid;grid-template-columns:repeat(auto-fill,minmax(186px,1fr));gap:10px}
body .afa-im-card{overflow:hidden;min-width:0;padding:0;text-align:left;background:var(--im-paper,#fffdfa);border:1px solid #ded6ce;border-radius:3px;box-shadow:0 8px 20px rgba(47,37,54,.035);transition:border-color .16s,box-shadow .16s,transform .16s}
body .afa-im-card:hover{border-color:#a99ca9;box-shadow:0 13px 28px rgba(47,37,54,.09);transform:translateY(-2px)}
body .afa-im-card .afa-card-img{aspect-ratio:4/5;height:auto;background-color:#e9e2da;background-position:center;background-size:cover;border-radius:0}
body .afa-im-card .afa-card-body{padding:11px 11px 10px}
body .afa-im-card-eyebrow{display:flex;align-items:center;justify-content:space-between;min-height:20px;margin-bottom:6px;color:#81756f;font-size:9px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}
body .afa-im-card-eyebrow>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}body .afa-im-card-eyebrow .afa-im-signal:not(.clean){display:none}
body .afa-im-card .afa-card-name{display:-webkit-box;min-height:38px;overflow:hidden;color:#241f25;font-size:13px;font-weight:700;line-height:1.35;-webkit-box-orient:vertical;-webkit-line-clamp:2}
body .afa-im-card .afa-card-sub{height:30px;margin-top:3px;overflow:hidden;color:#817873;font-size:10px;line-height:1.45}
body .afa-card-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin:9px -11px -10px;border-top:1px solid #e5ddd5}
body .afa-card-stats>span{padding:8px 9px;border-right:1px solid #e5ddd5}body .afa-card-stats>span:last-child{border-right:0}
body .afa-card-stats small{display:block;margin-bottom:3px;color:#958b84;font-size:8px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}body .afa-card-stats b{color:#2d2730;font-size:11px;font-variant-numeric:tabular-nums}
body .afa-im-grid-shell{overflow:hidden;background:var(--im-paper,#fffdfa);border:1px solid var(--im-rule,#d9d0c6);border-radius:3px;box-shadow:0 10px 26px rgba(47,37,54,.045)}
body .afa-im-grid-note{display:flex;align-items:center;justify-content:space-between;min-height:30px;padding:0 10px;color:#837a74;background:#f3eee8;border-bottom:1px solid #d8cfc6;font-size:9.5px}
body .afa-im-grid-note span:first-child{color:#3c353a;font-weight:700}
body .afa-im-grid-wrap{max-height:calc(100vh - 300px);min-height:360px;overflow:auto}
body .afa-im-grid{width:max-content;min-width:100%;border-collapse:separate;border-spacing:0;table-layout:auto}
body .afa-im-grid th{position:sticky;z-index:3;top:0;height:34px;padding:0 10px;color:#eae4ed;background:var(--im-ink,#2f2536);border-right:1px solid rgba(255,255,255,.1);border-bottom:0;font-size:8.5px;font-weight:750;letter-spacing:.07em;text-transform:uppercase;white-space:nowrap}
body .afa-im-grid th.item{left:0;z-index:5;min-width:360px;text-align:left}
body .afa-im-grid td{height:52px;padding:5px 10px;color:#443d41;background:#fffdfa;border-right:1px solid #ece6df;border-bottom:1px solid #e5ded6;font-size:10.5px;white-space:nowrap}
body .afa-im-grid tbody tr:nth-child(even) td{background:#fcf8f3}body .afa-im-grid tbody tr:hover td{background:#f2eaf3}
body .afa-im-grid td.num{color:#302a30;text-align:right;font-variant-numeric:tabular-nums}body .afa-im-grid td.strong{color:#251d2b;font-weight:750}body .afa-im-grid td.mono{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:9.5px}
body .afa-im-item-col{position:sticky;z-index:2;left:0;min-width:360px;max-width:360px;padding:4px 8px!important;box-shadow:7px 0 13px rgba(47,37,54,.04)}
body .afa-im-grid-item{display:flex;align-items:center;gap:9px;min-width:0}
body .afa-im-thumb{display:grid;flex:0 0 38px;width:38px;height:42px;place-items:center;overflow:hidden;color:#fff;background-position:center;background-size:cover;border-radius:2px}
body .afa-im-thumb i{font-family:var(--font-serif,Georgia,serif);font-style:normal}body .afa-im-grid-item>span:last-child{min-width:0}
body .afa-im-grid-item b,body .afa-im-grid-item small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}body .afa-im-grid-item b{color:#282229;font-size:11px}body .afa-im-grid-item small{margin-top:3px;color:#89807a;font-size:9px}
body .afa-im-signal-cell{min-width:120px}.afa-im-signal{display:inline-flex;align-items:center;min-height:19px;margin:1px 3px 1px 0;padding:2px 7px;color:#685f59;background:#eee8e1;border-radius:999px;font-size:8.5px;font-weight:700;white-space:nowrap}.afa-im-signal.clean{color:#356b57;background:#e5f0e9}.afa-im-signal.warn{color:#815821;background:#f4e9d8}.afa-im-signal.alert{color:#8a3442;background:#f4e1e5}
body .afa-im-up{color:#39745d;font-weight:700}body .afa-im-down{color:#a04250;font-weight:700}body .afa-im-na{color:#aaa19a}
body .afa-buy-ov{background:rgba(27,22,30,.58);backdrop-filter:blur(3px)}body .afa-im-panel{width:min(980px,96vw);max-width:none;color:#312b30;background:var(--im-canvas,#f5f1ea);border-left:1px solid rgba(255,255,255,.45);box-shadow:-24px 0 70px rgba(29,23,32,.25)}
body .afa-im-drawer-head{position:sticky;z-index:8;top:0;min-height:82px;padding:15px 22px 13px;color:#f8f4f1;background:var(--im-ink,#2f2536);border:0}body .afa-im-drawer-head>div{min-width:0}
body .afa-im-drawer-head span{color:#bea9c9;font-size:8.5px;font-weight:750;letter-spacing:.12em;text-transform:uppercase}
body .afa-im-drawer-head h3{max-width:760px;margin:5px 0 3px;overflow:hidden;color:#fff;font-family:var(--font-serif,"Iowan Old Style",Baskerville,Georgia,serif);font-size:21px;font-weight:500;letter-spacing:-.025em;line-height:1.1;text-overflow:ellipsis;white-space:nowrap}
body .afa-im-drawer-head p{color:#c8beca;font-size:10px}body .afa-im-drawer-head .afa-buy-x{display:grid;width:31px;height:31px;place-items:center;color:#fff;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);border-radius:50%}
body .afa-im-tabs{position:sticky;z-index:7;top:82px;display:flex;gap:2px;padding:0 18px;overflow-x:auto;background:rgba(255,253,250,.98);border-bottom:1px solid var(--im-rule,#d9d0c6)}
body .afa-im-tabs button{position:relative;min-height:43px;padding:0 11px;color:#776e69;background:transparent;border:0;font-size:10.5px;white-space:nowrap}body .afa-im-tabs button.active{color:var(--im-plum,#361a4c);font-weight:750}body .afa-im-tabs button.active:after{position:absolute;right:10px;bottom:0;left:10px;height:3px;content:"";background:var(--im-plum,#361a4c)}
body .afa-im-drawer-body{padding:18px 20px 44px;background:var(--im-canvas,#f5f1ea)}
body .afa-im-identity{display:grid;grid-template-columns:250px minmax(0,1fr);gap:0;margin-bottom:13px;overflow:hidden;background:var(--im-paper,#fffdfa);border:1px solid var(--im-rule,#d9d0c6);border-radius:3px}
body .afa-im-identity-media{min-height:290px;background-color:#e4ddd4;background-position:center;background-size:cover}
body .afa-im-identity-copy{display:flex;align-items:flex-start;flex-direction:column;justify-content:center;min-width:0;padding:28px 30px}
body .afa-im-kicker{margin-bottom:10px;color:var(--im-plum,#361a4c);font-size:9px;font-weight:750;letter-spacing:.1em;text-transform:uppercase}
body .afa-im-identity h3{max-width:610px;margin:0;color:#241f25;font-family:var(--font-serif,"Iowan Old Style",Baskerville,Georgia,serif);font-size:31px;font-weight:500;letter-spacing:-.035em;line-height:1.04}
body .afa-im-identity p{margin:10px 0 16px;color:#746b66;font-size:11px}body .afa-im-identity-tags{display:flex;flex-wrap:wrap;gap:5px}body .afa-im-identity-tags span{padding:5px 8px;color:#5f565f;background:#f1ebe5;border:1px solid #ddd3ca;border-radius:2px;font-size:9px}body .afa-im-identity-signal{margin-top:12px}
body .afa-im-section{margin:0 0 12px;overflow:hidden;background:var(--im-paper,#fffdfa);border:1px solid var(--im-rule,#d9d0c6);border-radius:3px}
body .afa-im-section-head{display:flex;align-items:flex-end;justify-content:space-between;min-height:51px;padding:11px 14px 9px;border-bottom:1px solid #e4dcd4}
body .afa-im-section-head h4{margin:0;color:#302830;font-family:var(--font-serif,"Iowan Old Style",Baskerville,Georgia,serif);font-size:17px;font-weight:500;letter-spacing:-.018em}body .afa-im-section-head span{display:block;margin-top:3px;color:#8a817b;font-size:9.5px}
body .afa-im-performance{display:grid;grid-template-columns:repeat(6,minmax(0,1fr))}body .afa-im-metric{min-width:0;padding:15px 14px 14px;border-right:1px solid #e7dfd7}body .afa-im-metric:last-child{border-right:0}
body .afa-im-metric label{display:block;margin-bottom:7px;color:#8b817b;font-size:8.5px;font-weight:750;letter-spacing:.08em;text-transform:uppercase}body .afa-im-metric strong{display:block;overflow:hidden;color:#282129;font-family:var(--font-serif,"Iowan Old Style",Baskerville,Georgia,serif);font-size:21px;font-weight:500;letter-spacing:-.025em;line-height:1;text-overflow:ellipsis;white-space:nowrap}body .afa-im-metric>span{display:block;min-height:14px;margin-top:6px;color:#817771;font-size:9px}body .afa-im-metric.warn{box-shadow:inset 0 -3px 0 #a64555}body .afa-im-performance.compact .afa-im-metric strong{font-size:18px}
body .afa-im-attrs,body .afa-im-quickfacts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));padding:4px 14px 12px}body .afa-im-attr{min-width:0;padding:10px 14px 8px 0;border-bottom:1px solid #eee7df}body .afa-im-attr label{display:block;margin-bottom:4px;color:#918780;font-size:8px;font-weight:750;letter-spacing:.075em;text-transform:uppercase}body .afa-im-attr span{display:block;overflow:hidden;color:#383137;font-size:11px;font-weight:650;text-overflow:ellipsis;white-space:nowrap}
body .afa-im-loading{padding:20px;color:#887e77;font-size:11px;font-style:italic}body .afa-im-sub{padding:10px 12px 7px;color:#766c66;font-size:8.5px;font-weight:750;letter-spacing:.085em;text-transform:uppercase}body .afa-im-section .afa-grid-wrap{margin:0;border:0;border-radius:0;box-shadow:none}body .afa-im-section .afa-grid th{background:#eee8e1;color:#635a55}body .afa-im-section .afa-grid td{background:#fffdfa}
@media(max-width:1380px){body .afa-im-ledger{flex-direction:column}body .afa-im-health{max-width:none}body .afa-im-health>span{width:auto;margin:0 6px 0 0}body .afa-im-filter-primary{flex-wrap:wrap}body .afa-im-filter-status{margin-left:0}}
@media(max-width:980px){body .afa-im-ledger .scope-totals{grid-template-columns:repeat(4,1fr)}body .afa-im-ledger .stat:nth-child(4){border-right:0}body .afa-im-performance{grid-template-columns:repeat(3,1fr)}body .afa-im-performance .afa-im-metric:nth-child(3n){border-right:0}body .afa-im-attrs,body .afa-im-quickfacts{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){body:has(.afa-im-ledger) .page-head{align-items:flex-start;gap:10px}body:has(.afa-im-ledger) .page-head :is(h1,h2){font-size:26px}body .afa-im-ledger .scope-totals{grid-template-columns:repeat(2,1fr)}body .afa-im-ledger .stat{padding:10px}body .afa-im-ledger .stat:nth-child(even){border-right:0}body .afa-im-filter-primary{align-items:stretch}body .afa-im-searchbox{flex-basis:100%;max-width:none}body .afa-im-filter-shell .mpicker{flex:1 1 calc(50% - 4px)}body .afa-im-filter-shell .mpicker-btn{width:100%;min-width:0}body .afa-im-profiles{width:100%;overflow-x:auto}body .afa-im-grid-wrap{max-height:calc(100vh - 360px)}body .afa-im-grid th.item,body .afa-im-item-col{min-width:270px;max-width:270px}body .afa-im-panel{width:100vw;max-width:100vw}body .afa-im-drawer-head{min-height:76px;padding:13px 16px 11px}body .afa-im-drawer-head h3{max-width:calc(100vw - 88px);font-size:18px}body .afa-im-tabs{top:76px;padding:0 8px}body .afa-im-drawer-body{padding:10px 10px 30px}body .afa-im-identity{grid-template-columns:1fr}body .afa-im-identity-media{min-height:320px}body .afa-im-identity-copy{padding:22px 18px}body .afa-im-identity h3{font-size:27px}body .afa-im-performance{grid-template-columns:repeat(2,1fr)}body .afa-im-performance .afa-im-metric:nth-child(3n){border-right:1px solid #e7dfd7}body .afa-im-performance .afa-im-metric:nth-child(even){border-right:0}body .afa-im-attrs,body .afa-im-quickfacts{grid-template-columns:repeat(2,1fr)}}

/* ---- Masthead brand carrier -------------------------------------------------------------------
   The four jewels appear ONCE in the top band, not twice. Two colour events 40px apart (a spectrum
   rule and jewel letters) reads decorative; one reads deliberate.

     body[data-brand="strip"]   2px full-bleed spectrum rule closing the masthead, wordmark in ink
     body[data-brand="letters"] no rule, the wordmark's jewel letters carry it   (default)

   ?brand=strip / ?brand=letters overrides per session so the two can be compared live.
   The rule lands on whichever band is last: the section nav when it's showing, the top bar when it
   isn't (data-ctxnav is set by renderContextNav). Jewel order and values are the brand contract's —
   green #047857, blue #1e40af, purple #6b21a8, red #c81e1e — never a tint or a reorder. */
body[data-brand="strip"] .cp-brandstrip,
body[data-layout="topbar"][data-shell="editorial"][data-brand="strip"] .shell-context-nav::after,
body[data-layout="topbar"][data-shell="editorial"][data-brand="strip"][data-ctxnav="0"] .sidebar::after {
  content:''; display:block; position:absolute; left:0; right:0; bottom:-1px; height:2px; z-index:30;
  background:linear-gradient(90deg,#047857 0 25%,#1e40af 0 50%,#6b21a8 0 75%,#c81e1e 0 100%);
}
/* .shell-context-nav is position:sticky, which ALREADY establishes a containing block for the ::after.
   Setting position:relative here overrode the sticky (they are mutually exclusive), which shifted the
   band and dropped the page title 30px behind it. Only the non-positioned .sidebar needs relative. */
body[data-layout="topbar"][data-shell="editorial"][data-brand="strip"] .sidebar { position:relative; }
/* Jewel-letter wordmark rules and retired bars-SVG glyph fills deleted — the lockup is
   .cp-lockup (retail-afa-v2.css): rabbit img + ink/plum two-tone, no per-letter colouring. */
/* ===== FV Open to Buy · premium decision cockpit ===== */
body:has(.otb-workspace){--otb-ink:#2f2536;--otb-plum:#361a4c;--otb-paper:#fffdfa;--otb-canvas:#f5f1ea;--otb-rule:#d9d0c6;--otb-muted:#756d68;background:var(--otb-canvas)}
body:has(.otb-workspace) .page-head{align-items:flex-end;margin:0 0 9px;padding:12px 2px 10px;border-bottom:1px solid var(--otb-rule)}
body:has(.otb-workspace) .page-head :is(h1,h2){color:#211d24;font-family:var(--font-serif,"Iowan Old Style",Baskerville,Georgia,serif);font-size:30px;font-weight:500;letter-spacing:-.035em;line-height:1}
body:has(.otb-workspace) .page-head p{max-width:680px;margin-top:6px;color:var(--otb-muted);font-size:11px}
body:has(.otb-workspace) .page-head .actions{align-items:center;gap:6px}
body:has(.otb-workspace) .secondary-btn.compact{min-height:31px;border-color:var(--otb-rule);background:var(--otb-paper);border-radius:5px}
body .otb-workspace{display:flex;flex-direction:column;gap:8px;margin-bottom:12px;color:#302a30}
/* Scope pills (Row B): the shared editorial .scope-select carries the look; only spacing lives here */
body .otb-filter-row{margin:0 0 2px}
/* On-order click-throughs + the PO drawer table */
body .otb-oo-cell{cursor:pointer;text-decoration:underline dotted #b39ac0 1px;text-underline-offset:3px}
body .otb-oo-cell:hover{color:#4b245f;background:#f2eaf3!important}
body .otb-dc-oo{cursor:pointer;border-radius:2px}
body .otb-dc-oo:hover i,body .otb-dc-oo:hover b{color:var(--otb-plum,#361a4c)}
body .otb-dc-primary .otb-dc-oo:hover i,body .otb-dc-primary .otb-dc-oo:hover b{color:#d9c4e4}
body .otb-oo-panel{width:min(600px,96vw)}
body .otb-oo-wait{padding:14px 2px;color:#766c66;font-size:11px}
body .otb-oo-table{width:100%;margin-top:8px;border-collapse:collapse;font-size:10px;font-variant-numeric:tabular-nums}
body .otb-oo-table th{padding:4px 7px;color:#6d6558;border-bottom:1px solid #d9d0c6;font-size:8px;font-weight:750;letter-spacing:.07em;text-align:left;text-transform:uppercase}
body .otb-oo-table td{padding:4px 7px;border-bottom:1px solid #efe9e2;white-space:nowrap}
body .otb-oo-table .num{text-align:right}
body .otb-oo-table .otb-oo-item{max-width:170px;overflow:hidden;text-overflow:ellipsis}
body .otb-oo-table tr.is-late td{color:#8c3644}
body .otb-oo-table td em{color:#a64555;font-size:8.5px;font-style:normal;font-weight:750}
body .otb-oo-table tfoot td{border-top:1px solid #d9d0c6;border-bottom:0;font-weight:750}
body .otb-controlbar{display:flex;align-items:stretch;min-height:50px;overflow:hidden;background:rgba(255,253,250,.96);border:1px solid var(--otb-rule,#d9d0c6);border-radius:3px}
body .otb-control{display:flex;align-items:center;gap:8px;padding:7px 13px;border-right:1px solid #e4dcd4}
body .otb-control>span,body .otb-window>span{color:#857b75;font-size:8px;font-weight:750;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}
body .otb-control label{display:flex;align-items:center;height:31px;overflow:hidden;background:#fff;border:1px solid #d6cdc5;border-radius:5px}
body .otb-control label input{width:55px;height:29px;padding:0 7px;text-align:right;background:transparent;border:0;font-size:12px;font-weight:700;outline:0}
body .ref-controlbar{min-height:0;margin-bottom:8px;overflow:visible;flex-wrap:wrap}
body .ref-controlbar .otb-control{min-height:47px}
body .ref-controlbar .otb-control:last-child{border-right:0}
body .ref-controlbar .otb-control label input{width:220px;text-align:left;font-size:10.5px;font-weight:600}
body .ref-controlbar .otb-control select{height:31px;min-width:152px;padding:0 30px 0 10px;color:#3b343a;background:#fff;border:1px solid #d6cdc5;border-radius:5px;font-size:10.5px;font-weight:650;outline:0}
body .otb-control label b{padding-right:8px;color:#817771;font-size:9px;font-weight:500}
body .otb-control em,body .otb-window em{color:#928780;font-size:8.5px;font-style:normal;white-space:nowrap}
body .otb-control .mfp-basis-seg{padding:2px;background:#eae4dd;border:0;border-radius:6px}
body .otb-control .mfp-basis-seg .seg-btn{min-width:54px;min-height:27px;padding:0 8px;color:#716861;background:transparent;border:0;border-radius:4px;font-size:9.5px}
body .otb-control .mfp-basis-seg .seg-btn.active{color:#4b245f;background:#fff;box-shadow:inset 0 -2px 0 var(--otb-plum,#361a4c),0 1px 3px rgba(47,37,54,.12);font-weight:750}
body .otb-window{display:flex;min-width:140px;flex-direction:column;justify-content:center;padding:7px 14px;border-right:1px solid #e4dcd4}
body .otb-window strong{margin:3px 0 1px;color:#322b32;font-size:11px}
body .otb-control-actions{display:flex;align-items:center;gap:5px;margin-left:auto;padding:7px 9px}
/* ---- Decision layer: one card per open month; the first open month is the screen's single dark emphasis ---- */
body .otb-decide{display:flex;flex-direction:column;gap:6px}
body .otb-decide-kicker{display:flex;align-items:baseline;gap:9px;padding:1px 2px}
body .otb-decide-kicker span{color:#5f555c;font-size:8px;font-weight:750;letter-spacing:.1em;text-transform:uppercase}
body .otb-decide-kicker em{color:#928780;font-size:8.5px;font-style:normal}
body .otb-decide-risk{margin-left:auto;padding:2px 8px;color:#8c3644;background:#f6e4e7;border:1px solid #e3c3c9;border-radius:9px;font-size:8px;font-weight:750;letter-spacing:.05em;text-transform:uppercase;white-space:nowrap}
body .otb-dc-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(148px,1fr));gap:6px}
body .otb-dc{display:flex;min-width:0;flex-direction:column;align-items:flex-start;padding:11px 13px 9px;text-align:left;color:#302a30;background:var(--otb-paper,#fffdfa);border:1px solid var(--otb-rule,#d9d0c6);border-radius:3px;box-shadow:0 8px 22px rgba(47,37,54,.04);cursor:pointer}
body .otb-dc:hover{border-color:#bda6c7;box-shadow:0 10px 26px rgba(47,37,54,.09)}
body .otb-dc.is-split{border-color:var(--otb-plum,#361a4c);box-shadow:inset 0 -3px 0 var(--otb-plum,#361a4c),0 10px 26px rgba(47,37,54,.09)}
body .otb-dc-m{color:#7f756f;font-size:8.5px;font-weight:750;letter-spacing:.11em;text-transform:uppercase}
body .otb-dc-gap{margin:6px 0 1px;font-family:var(--font-serif,"Iowan Old Style",Baskerville,Georgia,serif);font-size:23px;font-weight:500;letter-spacing:-.03em;line-height:.95}
body .otb-dc-gaplbl{margin-bottom:7px;color:#8b817a;font-size:8px;font-weight:750;letter-spacing:.07em;text-transform:uppercase}
body .otb-dc-line{display:flex;width:100%;align-items:baseline;justify-content:space-between;gap:8px;font-size:9px}
body .otb-dc-line i{color:#8b817a;font-style:normal;font-size:8px;font-weight:750;letter-spacing:.06em;text-transform:uppercase}
body .otb-dc-line b{font-weight:700;font-variant-numeric:tabular-nums}
body .otb-dc-cover{margin-top:6px;color:#6f665f;font-size:8.5px}
body .otb-dc-cover.is-risk{color:#a64555;font-weight:750}
body .otb-dc-chase{margin-top:2px;color:#7d7268;font-size:8.5px}
body .otb-dc-chase.is-late{color:#a64555;font-weight:750;text-transform:uppercase;letter-spacing:.04em;font-size:8px}
body .otb-dc.is-over .otb-dc-gap,body .otb-dc.is-over .otb-dc-gaplbl{color:#a64555}
body .otb-dc-primary{color:#fff;background:linear-gradient(125deg,#2f2536,#3a2c42);border-color:#2f2536}
body .otb-dc-primary .otb-dc-m{color:#baaac2}
body .otb-dc-primary .otb-dc-gaplbl,body .otb-dc-primary .otb-dc-line i{color:#b6a8be}
body .otb-dc-primary .otb-dc-cover,body .otb-dc-primary .otb-dc-chase{color:#cfc6d1}
body .otb-dc-primary .otb-dc-cover.is-risk,body .otb-dc-primary .otb-dc-chase.is-late{color:#f0aab6}
body .otb-dc-primary.is-over{background:linear-gradient(125deg,#4d2932,#63323e);border-color:#4d2932}
body .otb-dc-primary.is-over .otb-dc-gap,body .otb-dc-primary.is-over .otb-dc-gaplbl{color:#f3c3cc}
/* ---- Class split panel: where a month's dollars deploy ---- */
body .otb-split{overflow:hidden;background:var(--otb-paper,#fffdfa);border:1px solid #cbb7d4;border-radius:3px;box-shadow:0 10px 26px rgba(47,37,54,.07)}
body .otb-split-head{display:flex;align-items:flex-start;justify-content:space-between;padding:10px 13px 8px;border-bottom:1px solid #e8e0da}
body .otb-split-head b{display:block;color:#3c2a46;font-family:var(--font-serif,"Iowan Old Style",Baskerville,Georgia,serif);font-size:15px;font-weight:500;letter-spacing:-.02em}
body .otb-split-head span{color:#8b817a;font-size:8.5px}
body .otb-split-close{display:grid;width:24px;height:24px;place-items:center;color:#6f665f;background:#f1ece6;border:1px solid #ddd3ca;border-radius:50%;font-size:13px;cursor:pointer}
body .otb-split-list{display:grid;grid-template-columns:repeat(2,1fr);gap:0 18px;padding:7px 13px 10px}
body .otb-split-row{display:grid;grid-template-columns:minmax(90px,1fr) minmax(60px,1.1fr) auto auto;align-items:center;gap:8px;min-height:26px;border-bottom:1px solid #f0eae3;font-size:9.5px}
body .otb-split-row:nth-last-child(-n+2){border-bottom:0}
body .otb-split-name{overflow:hidden;color:#4b4249;font-weight:700;text-overflow:ellipsis;white-space:nowrap}
body .otb-split-bar{position:relative;display:block;height:5px;background:#efe9e2;border-radius:2px;overflow:hidden}
body .otb-split-bar i{position:absolute;inset:0 auto 0 0;background:var(--cp-accent,var(--otb-plum,#361a4c));border-radius:2px}
body .otb-split-row b{font-variant-numeric:tabular-nums;font-weight:750;color:#35243d}
body .otb-split-row small{min-width:26px;color:#8b817a;text-align:right;font-size:8.5px}
/* ---- Slim strip: season totals demoted; committed cover keeps its prominence ---- */
body .otb-slimline{display:flex;align-items:stretch;min-height:46px;overflow:hidden;background:var(--otb-paper,#fffdfa);border:1px solid var(--otb-rule,#d9d0c6);border-radius:3px}
body .otb-tabs{margin:2px 0 12px}
body .otb-editnotice{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin:0 0 12px;padding:9px 13px;background:var(--otb-paper,#fffdfa);border:1px solid var(--otb-rule,#d9d0c6);border-left:3px solid #a67c3a;border-radius:3px;font-size:12.5px;line-height:1.5;color:#5a5148}
body .otb-editnotice b{color:#2b2134;font-weight:600}
body .otb-editnotice-link{background:none;border:0;padding:0;font:inherit;color:#7a3ea8;text-decoration:underline;cursor:pointer}
body .otb-editnotice-link:hover{color:#4b2a78}
body .otb-slim-cover{display:flex;flex:0 0 auto;min-width:206px;flex-direction:column;justify-content:center;padding:7px 15px;border-right:1px solid #e6ded6}
body .otb-slim-cover label{color:#8a817b;font-size:8px;font-weight:750;letter-spacing:.1em;text-transform:uppercase}
body .otb-slim-cover strong{margin:3px 0 1px;color:#29232a;font-family:var(--font-serif,"Iowan Old Style",Baskerville,Georgia,serif);font-size:18px;font-weight:500;letter-spacing:-.025em}
body .otb-slim-cover strong small{font-family:inherit;font-size:10px;font-weight:500}
body .otb-slim-cover span{color:#8b817a;font-size:8px;white-space:nowrap}
body .otb-slim-cover.is-risk{box-shadow:inset 0 -3px 0 #a64555}
body .otb-slim-stats{display:flex;flex:1;min-width:0;align-items:center;overflow-x:auto;color:#776e68;font-size:8.5px;scrollbar-width:thin}
body .otb-slim-stats>span,body .otb-slim-pastdue{display:flex;flex:0 0 auto;align-items:center;align-self:stretch;padding:0 12px;border-right:1px solid #ece4dc;white-space:nowrap}
body .otb-slim-stats b{margin-left:5px;color:#3a3339;font-weight:750;font-variant-numeric:tabular-nums}
body .otb-slim-pastdue{color:#8c3644;background:#f9eef0;border:0;border-right:1px solid #ece4dc;font-size:8.5px;font-weight:750;cursor:pointer}
body .otb-slim-pastdue b{color:#8c3644}
/* Grid title-bar provenance line + focus flip-out (MFP's mechanism, OTB's children) */
body .otb-grid-prov{margin-right:9px;padding-right:9px;color:#95897f;border-right:1px solid #ddd3c9;cursor:help}
body .otb-grid-head .mfp-command-btn{margin-left:9px;min-height:24px;padding:3px 8px;font-size:9px}
body[data-shell="editorial"]:has(.otb-focus-grid) .page-head{display:none}
body .otb-focus-grid>:not(.otb-grid-shell):not(.help-overlay):not(.otb-action-overlay){display:none}
body .otb-focus-grid .otb-grid-shell .mfp-grid-wrap{max-height:calc(100vh - 52px)!important;min-height:calc(100vh - 52px)}
body .otb-grid-shell{overflow:hidden;background:#fff;border:1px solid var(--otb-rule,#d9d0c6);border-radius:3px;box-shadow:0 12px 30px rgba(47,37,54,.055)}
body .otb-grid-head{display:flex;align-items:center;justify-content:space-between;min-height:36px;padding:6px 11px;color:#776e68;background:#f1ece6;border-bottom:1px solid #d9d0c6;font-size:8.5px}
body .otb-grid-head>div:first-child{display:flex;align-items:baseline;gap:9px}
body .otb-grid-head span{font-size:8px;font-weight:750;letter-spacing:.085em;text-transform:uppercase}
body .otb-grid-head strong{color:#3b333a;font-family:var(--font-serif,"Iowan Old Style",Baskerville,Georgia,serif);font-size:14px;font-weight:500}
body .otb-grid-head i{display:inline-block;width:7px;height:7px;margin-right:3px;background:var(--otb-plum,#361a4c);border-radius:50%}
body .otb-grid-shell .mfp-grid-wrap{max-height:calc(100vh - 405px);min-height:355px;margin:0;border:0;border-radius:0;box-shadow:none}
body .otb-grid{width:max-content;min-width:100%;background:#fff;border-collapse:separate;border-spacing:0}
body .otb-grid th{position:sticky;z-index:4;top:0;height:34px;padding:0 9px;color:#e9e3ec;background:var(--otb-ink,#2f2536);border-right:1px solid rgba(255,255,255,.09);border-bottom:0;font-size:8px;font-weight:750;letter-spacing:.065em;text-transform:uppercase;white-space:nowrap}
body .otb-grid thead .mfp-mcol{left:0;z-index:7;min-width:218px;color:#fff;background:var(--otb-ink,#2f2536);text-align:left}
body .otb-grid th.otb-elapsed{color:#b8aeba;background:#493e50}
body .otb-grid th.otb-open-start{border-left:3px solid #a67ab8;box-shadow:-4px 0 10px rgba(30,22,34,.2)}
body .otb-grid td{height:29px;padding:4px 8px;color:#453e43;background:#fff;border-right:1px solid #ece6df;border-bottom:1px solid #e7e1db;font-size:9.5px;font-variant-numeric:tabular-nums;white-space:nowrap}
body .otb-grid .mfp-rlabel{position:sticky;z-index:3;left:0;min-width:218px;color:#4b4249;background:#fffdfa;box-shadow:6px 0 12px rgba(47,37,54,.035);text-align:left}
body .otb-grid tr:not(.otb-group-row):hover td{background:#f5eef6}
body .otb-grid .mfp-dimrow td{color:#817872;background:#fcf9f5}
body .otb-grid .mfp-otb-past{color:#aba39d!important;background:#f5f2ef!important;opacity:1}
body .otb-grid .mfp-roll{background:#f8f3ed}
body .otb-grid .mfp-fy{background:#f0eae4;font-weight:750}
body .otb-grid .mfp-in-td{padding:2px 4px;background:#f2eaf3}
body .otb-grid .mfp-in{height:23px;color:#3e2848;background:#fff;border:1px solid #cdbdd5;border-radius:3px;font-size:9.5px;font-weight:700}
body .otb-grid .mfp-otb-hero td{color:#35243d;background:#eee5f1!important;border-top:1px solid #bda6c7;border-bottom:1px solid #bda6c7;font-weight:780}
body .otb-grid .mfp-otb-hero .mfp-rlabel{box-shadow:inset 4px 0 0 var(--otb-plum,#361a4c),6px 0 12px rgba(47,37,54,.035)}
body .otb-grid .mfp-otb-over{color:#993948!important;background:#f7e6e8!important}
body .otb-group-row td{height:31px;padding:0!important;color:#534657;background:#ece5ef!important;border-bottom:1px solid #d9cedd!important;border-top:2px solid #fff!important;font-family:inherit;text-align:left!important}
body .otb-group-row span{margin-left:9px;color:#4d3357;font-family:var(--font-serif,"Iowan Old Style",Baskerville,Georgia,serif);font-size:13px;font-weight:500;letter-spacing:-.01em}
body .otb-group-row em{margin-left:9px;color:#897c89;font-size:8px;font-style:normal}
body .otb-group-row.group-inventory-position td{color:#345b60;background:#e5efee!important;border-bottom-color:#cfdfdc!important}
body .otb-group-row.group-inventory-position span{color:#285b59}
body .otb-group-row.group-commitments td{color:#765927;background:#f3ecdc!important;border-bottom-color:#e1d5ba!important}
body .otb-group-row.group-commitments span{color:#765927}
body .otb-group-row.group-decision td{color:#315d48;background:#e5eee8!important;border-bottom-color:#ceddd3!important}
body .otb-group-row.group-decision span{color:#315d48}
body .otb-methodology{overflow:hidden;background:#f0ebe5;border:1px solid #d9d0c6;border-radius:3px;color:#796f69;font-size:9px}
body .otb-methodology summary{padding:7px 10px;color:#5f555c;font-size:8px;font-weight:750;letter-spacing:.07em;cursor:pointer;text-transform:uppercase}
body .otb-methodology>div{padding:0 10px 9px;line-height:1.55}
body .otb-action-overlay{position:fixed;z-index:80;inset:0;display:flex;justify-content:flex-end;background:rgba(28,22,31,.48);backdrop-filter:blur(3px)}
body .otb-action-panel{width:min(540px,96vw);height:100%;overflow-y:auto;color:#302a30;background:var(--otb-canvas,#f5f1ea);box-shadow:-22px 0 65px rgba(29,23,32,.24)}
body .otb-action-head{display:flex;align-items:flex-start;justify-content:space-between;padding:20px 22px 18px;color:#fff;background:var(--otb-ink,#2f2536)}
body .otb-action-head span{color:#baaac2;font-size:8px;font-weight:750;letter-spacing:.1em;text-transform:uppercase}
body .otb-action-head h3{margin:6px 0 4px;font-family:var(--font-serif,"Iowan Old Style",Baskerville,Georgia,serif);font-size:25px;font-weight:500;letter-spacing:-.03em}
body .otb-action-head p{color:#cfc6d1;font-size:10px}
body .otb-action-head button{display:grid;width:31px;height:31px;place-items:center;color:#fff;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);border-radius:50%;font-size:18px;cursor:pointer}
body .otb-action-body{padding:18px}
body .otb-action-callout{display:flex;flex-direction:column;margin-bottom:12px;padding:18px;background:#fffdfa;border:1px solid #d9d0c6;box-shadow:inset 4px 0 0 #a64555}
body .otb-action-callout label,body .otb-action-metrics label,body .otb-receipt-input>span{color:#8b817a;font-size:8px;font-weight:750;letter-spacing:.08em;text-transform:uppercase}
body .otb-action-callout strong{margin:8px 0 5px;font-family:var(--font-serif,"Iowan Old Style",Baskerville,Georgia,serif);font-size:30px;font-weight:500}
body .otb-action-callout span{color:#766c66;font-size:10px}
body .otb-action-metrics{display:grid;grid-template-columns:repeat(2,1fr);margin-bottom:12px;background:#fffdfa;border:1px solid #d9d0c6}
body .otb-action-metrics>div{display:flex;min-height:78px;flex-direction:column;justify-content:center;padding:12px 14px;border-right:1px solid #e5ddd5;border-bottom:1px solid #e5ddd5}
body .otb-action-metrics strong{margin-top:7px;font-family:var(--font-serif,"Iowan Old Style",Baskerville,Georgia,serif);font-size:21px;font-weight:500}
body .otb-receipt-input{display:block;margin-bottom:10px;padding:13px 14px;background:#fffdfa;border:1px solid #d9d0c6}
body .otb-receipt-input>span{display:block;margin-bottom:7px}
body .otb-receipt-input input{width:100%;height:38px;padding:0 10px;color:#312735;background:#f6f0f6;border:1px solid #c8b5d1;border-radius:3px;font-size:15px;font-weight:750}
body .otb-action-buttons{display:grid;grid-template-columns:1fr;gap:6px;margin-bottom:12px}
body .otb-action-buttons button{min-height:38px;padding:0 12px;text-align:left;color:#4b3a51;background:#fffdfa;border:1px solid #d9d0c6;border-radius:3px;font-size:10px;font-weight:700;cursor:pointer}
body .otb-action-buttons button:hover{color:#fff;background:var(--otb-plum,#361a4c);border-color:var(--otb-plum,#361a4c)}
body .otb-action-note{margin-bottom:12px;padding:13px 14px;color:#736a65;background:#eee8e1;border-left:3px solid #aa7437;font-size:10px;line-height:1.5}
body .otb-action-note b{color:#4f474c}body .otb-action-note p{margin:4px 0 0}
@media(max-width:1360px){body .otb-control em{display:none}body .otb-dc-row{grid-template-columns:repeat(auto-fit,minmax(138px,1fr))}}
@media(max-width:1080px){body .otb-controlbar{flex-wrap:wrap}body .otb-control-actions{margin-left:0}body .otb-dc-row{grid-template-columns:repeat(3,1fr)}body .otb-slim-cover{min-width:180px}body .otb-grid-shell .mfp-grid-wrap{max-height:calc(100vh - 500px)}}
@media(max-width:760px){body:has(.otb-workspace) .page-head{align-items:flex-start;gap:8px}body:has(.otb-workspace) .page-head :is(h1,h2){font-size:26px}body:has(.otb-workspace) .page-head .actions{width:100%;overflow-x:auto}body .otb-controlbar{display:grid;grid-template-columns:1fr 1fr}body .otb-control,body .otb-window,body .otb-control-actions{min-width:0;border-bottom:1px solid #e4dcd4}body .otb-control{align-items:flex-start;flex-direction:column}body .ref-controlbar .otb-control label,body .ref-controlbar .otb-control label input,body .ref-controlbar .otb-control select{width:100%;min-width:0}body .otb-control-actions{justify-content:flex-start;padding:7px}body .otb-control-actions .secondary-btn{font-size:9px}body .otb-dc-row{grid-template-columns:1fr 1fr}body .otb-slimline{flex-direction:column}body .otb-slim-cover{min-width:0;border-right:0;border-bottom:1px solid #e6ded6}body .otb-split-list{grid-template-columns:1fr}body .otb-split-row:nth-last-child(-n+2){border-bottom:1px solid #f0eae3}body .otb-split-row:last-child{border-bottom:0}body .otb-grid-head{align-items:flex-start;flex-direction:column;gap:3px}body .otb-grid-shell .mfp-grid-wrap{max-height:calc(100vh - 540px);min-height:340px}body .otb-grid thead .mfp-mcol,body .otb-grid .mfp-rlabel{min-width:188px}body .otb-action-panel{width:100vw;max-width:100vw}}

/* ===== Premium Pulse analytical workbenches (drill-outs) ===== */
/* Premium Pulse analytical workbenches */
body[data-shell="editorial"]:has(.cp-deep) .view{background:#f5f1ea}
body[data-shell="editorial"] .cp-deep{--deep-ink:#211b22;--deep-aubergine:#2f2536;--deep-plum:#361a4c;--deep-paper:#f5f1ea;--deep-surface:#fffdfa;--deep-rule:#d8cec3;--deep-soft:#ebe2d8;max-width:1600px;margin:0 auto;color:var(--deep-ink)}
body[data-shell="editorial"] .cp-deep-nav{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:18px;padding:8px 0 15px;border-bottom:1px solid var(--deep-rule)}
body[data-shell="editorial"] .cp-deep-nav>button{height:34px;padding:0 13px;border:1px solid var(--deep-rule);border-radius:999px;background:var(--deep-surface);color:var(--deep-aubergine);font-size:11px;cursor:pointer}
body[data-shell="editorial"] .cp-deep-nav>div>span{display:block;color:#81777e;font-size:9px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
body[data-shell="editorial"] .cp-deep-nav h1{margin:2px 0 0;color:var(--deep-aubergine);font-family:"Instrument Serif",Georgia,serif;font-size:27px;font-weight:500;letter-spacing:-.025em}
body[data-shell="editorial"] .cp-deep-period{text-align:right}
body[data-shell="editorial"] .cp-deep-period b{display:block;color:var(--deep-aubergine);font-size:12px;font-weight:650}
body[data-shell="editorial"] .cp-deep-period span{margin-top:2px!important;color:#8a8185!important;font-size:9px!important;letter-spacing:.03em!important;text-transform:none!important}
body[data-shell="editorial"] .cp-deep-read{grid-template-columns:116px minmax(240px,.78fr) minmax(320px,1fr);margin:0;padding:12px 0;background:transparent}
body[data-shell="editorial"] .cp-deep-ledger{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-top:1px solid var(--deep-rule);border-bottom:1px solid var(--deep-rule);background:var(--deep-surface)}
body[data-shell="editorial"] .cp-deep-metric{min-width:0;padding:15px 18px;border-right:1px solid var(--deep-rule)}
body[data-shell="editorial"] .cp-deep-metric:last-child{border-right:0}
body[data-shell="editorial"] .cp-deep-metric label{display:block;color:#7b7377;font-size:9px;font-weight:700;letter-spacing:.09em;text-transform:uppercase}
body[data-shell="editorial"] .cp-deep-metric>strong{display:block;margin:3px 0 7px;color:var(--deep-aubergine);font-family:"Instrument Serif",Georgia,serif;font-size:24px;font-weight:500;font-variant-numeric:tabular-nums}
body[data-shell="editorial"] .cp-deep-metric>div{display:flex;gap:10px;min-height:13px;overflow:hidden;color:#777077;font-size:8px;white-space:nowrap}
body[data-shell="editorial"] .cp-deep-metric>div span{display:flex;gap:3px}.cp-deep-metric>div b{font-weight:750}
body[data-shell="editorial"] .cp-deep-metric .up{color:#2f7257}.cp-deep-metric .down{color:#a25f39}.cp-deep-metric .na{color:#aaa3a8}
body[data-shell="editorial"] .cp-deep-note{display:block!important;overflow:hidden;text-overflow:ellipsis}
body[data-shell="editorial"] .cp-deep-signals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:13px;border:1px solid var(--deep-rule);background:var(--deep-surface)}
body[data-shell="editorial"] .cp-deep-signal{position:relative;min-width:0;padding:13px 17px;border-right:1px solid var(--deep-rule)}
body[data-shell="editorial"] .cp-deep-signal:last-child{border-right:0}
body[data-shell="editorial"] .cp-deep-signal:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--deep-plum)}
body[data-shell="editorial"] .cp-deep-signal.risk:before{background:#a15155}.cp-deep-signal.positive:before{background:#2f7257}
body[data-shell="editorial"] .cp-deep-signal span{display:block;color:#847a80;font-size:8px;font-weight:700;letter-spacing:.09em;text-transform:uppercase}
body[data-shell="editorial"] .cp-deep-signal strong{display:block;margin:3px 0;color:var(--deep-aubergine);font-size:13px}
body[data-shell="editorial"] .cp-deep-signal small{display:block;overflow:hidden;color:#776f74;font-size:9px;text-overflow:ellipsis;white-space:nowrap}
body[data-shell="editorial"] .cp-deep-table,body[data-shell="editorial"] .cp-deep-chart{margin-top:18px}
body[data-shell="editorial"] .cp-deep .cp-section-head{display:flex;align-items:end;justify-content:space-between;margin-bottom:7px}
body[data-shell="editorial"] .cp-deep .cp-section-head h2{margin:0;color:var(--deep-aubergine);font-family:"Instrument Serif",Georgia,serif;font-size:20px;font-weight:500}
body[data-shell="editorial"] .cp-deep .cp-section-head span{color:#837a7f;font-size:9px}
body[data-shell="editorial"] .cp-deep-table-scroll{overflow:auto;background:var(--deep-surface);border:1px solid var(--deep-rule)}
body[data-shell="editorial"] .cp-deep-table table{width:100%;min-width:820px;border-collapse:collapse;font-size:10px;font-variant-numeric:tabular-nums}
body[data-shell="editorial"] .cp-deep-table th{height:32px;padding:0 10px;background:var(--deep-aubergine);color:#ede6ee;font-size:8px;font-weight:700;letter-spacing:.06em;text-align:left;text-transform:uppercase;white-space:nowrap}
body[data-shell="editorial"] .cp-deep-table td{height:37px;padding:0 10px;border-bottom:1px solid #e7dfd6;background:var(--deep-surface);white-space:nowrap}
body[data-shell="editorial"] .cp-deep-table tbody tr:last-child td{border-bottom:0}.cp-deep-table tbody tr:hover td{background:#f8f1fa}
body[data-shell="editorial"] .cp-deep-table .num{text-align:right}.cp-deep-table .strong{color:#2f2830;font-weight:720}.cp-deep-table .muted{color:#8a8387}.cp-deep-table .up{color:#2f7257;font-weight:650}.cp-deep-table .down,.cp-deep-table .risk-text{color:#a15155;font-weight:650}
body[data-shell="editorial"] .cp-deep-name{font-weight:650}.cp-deep-name>i{display:inline-block;width:7px;height:7px;margin-right:7px;border-radius:50%}.cp-deep-name>span{margin-left:8px;padding:2px 5px;background:#eee7f0;color:#65416f;font-size:7px;text-transform:uppercase}
body[data-shell="editorial"] .cp-deep-bar{width:130px}.cp-deep-bar:before{content:"";display:block;height:4px;background:#eee8e1}.cp-deep-bar>i{display:block;height:4px;margin-top:-4px;background:var(--deep-aubergine)}
body[data-shell="editorial"] .cp-deep-table tr.partial td{color:#91898e;background:#f8f5f1}
body[data-shell="editorial"] .cp-deep-chart .cp-plan-chart{border-color:var(--deep-rule);background:var(--deep-surface)}
body[data-shell="editorial"] .cp-deep-source{margin:16px 0 5px;padding-top:8px;border-top:1px solid var(--deep-rule);color:#7f777b;font-size:9px}
body[data-shell="editorial"] .cp-deep-source summary{cursor:pointer;font-weight:650}.cp-deep-source p{margin:6px 0}
@media(max-width:1050px){body[data-shell="editorial"] .cp-deep-ledger{grid-template-columns:repeat(2,minmax(0,1fr))}.cp-deep-metric{border-bottom:1px solid var(--deep-rule)}body[data-shell="editorial"] .cp-deep-signals{grid-template-columns:1fr}.cp-deep-signal{border-right:0!important;border-bottom:1px solid var(--deep-rule)}}
@media(max-width:720px){body[data-shell="editorial"] .cp-deep-nav{grid-template-columns:auto 1fr}.cp-deep-period{grid-column:1/3;text-align:left!important}.cp-deep-read{grid-template-columns:1fr!important}.cp-deep-ledger{grid-template-columns:1fr!important}.cp-deep-metric{border-right:0!important}.cp-deep-table,.cp-deep-chart{margin-top:13px!important}}

/* ===== Daily Sales premium trading cockpit ===== */
/* Premium Daily Sales trading cockpit */
body[data-shell="editorial"]:has(.cp-daily) .view{background:#f5f1ea}
body[data-shell="editorial"] .cp-daily{--daily-ink:#211b22;--daily-aubergine:#2f2536;--daily-plum:#361a4c;--daily-surface:#fffdfa;--daily-rule:#d8cec3;--daily-soft:#ece3da;max-width:1600px;margin:0 auto;color:var(--daily-ink)}
body[data-shell="editorial"] .cp-daily-command{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:7px 0 11px;border-bottom:1px solid var(--daily-rule)}
body[data-shell="editorial"] .cp-daily-command>div{display:flex;align-items:center;gap:8px}
body[data-shell="editorial"] .cp-daily-command select{height:31px;padding:0 29px 0 10px;border:1px solid var(--daily-rule);border-radius:3px;background:var(--daily-surface);color:var(--daily-ink);font-size:10px}
body[data-shell="editorial"] .cp-daily-live{display:flex;align-items:center;gap:6px;color:#756e72;font-size:9px;font-weight:650}.cp-daily-live i{width:6px;height:6px;border-radius:50%;background:#2f7257;box-shadow:0 0 0 3px #dce9e2}
body[data-shell="editorial"] .cp-daily-periods{padding:3px;border:1px solid var(--daily-rule);border-radius:999px;background:var(--daily-surface)}
body[data-shell="editorial"] .cp-daily-periods button{height:25px;padding:0 12px;border:0;border-radius:999px;background:transparent;color:#756d73;font-size:9px;cursor:pointer}.cp-daily-periods button.active{background:var(--daily-aubergine);color:#fff}
body[data-shell="editorial"] .cp-daily-insight{position:relative;display:grid;grid-template-columns:105px minmax(230px,.7fr) minmax(340px,1fr) auto auto;align-items:center;gap:13px;min-height:58px;padding:9px 12px;margin-top:10px;border:1px solid var(--daily-rule);border-left:3px solid var(--daily-plum);background:var(--daily-surface)}
body[data-shell="editorial"] .cp-daily-ai{color:var(--daily-plum);font-size:9px;font-weight:750;letter-spacing:.11em;text-transform:uppercase}.cp-daily-insight strong{color:var(--daily-aubergine);font-family:"Instrument Serif",Georgia,serif;font-size:17px;font-weight:500}.cp-daily-insight>span:not(.cp-daily-ai){color:#716a6f;font-size:10px;line-height:1.4}
body[data-shell="editorial"] .cp-daily-insight button{height:27px;padding:0 9px;border:1px solid var(--daily-rule);border-radius:999px;background:transparent;color:#665f64;font-size:8px;cursor:pointer}.cp-daily-insight button.refresh{width:27px;padding:0}
body[data-shell="editorial"] .cp-daily-watch{grid-column:2/6;display:grid;grid-template-columns:repeat(3,1fr);gap:7px;padding-top:8px;border-top:1px solid var(--daily-rule)}.cp-daily-watch p{margin:0;padding:7px 9px;background:#f6f0e9;color:#6f6266;font-size:9px}
body[data-shell="editorial"] .cp-daily-ledger{display:grid;grid-template-columns:1.45fr repeat(4,minmax(0,1fr));margin-top:10px;border:1px solid var(--daily-rule);background:var(--daily-surface)}
body[data-shell="editorial"] .cp-daily-hero{padding:14px 18px;background:var(--daily-aubergine);color:#fff}.cp-daily-hero label,.cp-daily-metric label{display:block;font-size:8px;font-weight:700;letter-spacing:.09em;text-transform:uppercase}.cp-daily-hero label{color:#d9cedd}.cp-daily-hero strong{display:block;margin:2px 0;font-family:"Instrument Serif",Georgia,serif;font-size:30px;font-weight:500}.cp-daily-hero span{font-size:9px}
body[data-shell="editorial"] .cp-daily-metric{padding:14px 16px;border-right:1px solid var(--daily-rule)}.cp-daily-metric:last-child{border-right:0}.cp-daily-metric label{color:#81787d}.cp-daily-metric strong{display:block;margin:4px 0;color:var(--daily-aubergine);font-family:"Instrument Serif",Georgia,serif;font-size:21px;font-weight:500}.cp-daily-metric span{color:#7c7479;font-size:8px}
body[data-shell="editorial"] .cp-daily .up{color:#2f7257!important}.cp-daily .down{color:#a15155!important}
body[data-shell="editorial"] .cp-daily-windows{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));margin-top:8px;border-top:1px solid var(--daily-rule);border-bottom:1px solid var(--daily-rule)}
body[data-shell="editorial"] .cp-daily-windows button{position:relative;padding:9px 13px;text-align:left;border:0;border-right:1px solid var(--daily-rule);background:transparent;cursor:pointer}.cp-daily-windows button:last-child{border-right:0}.cp-daily-windows button.active{background:#fffaf6}.cp-daily-windows button.active:after{content:"";position:absolute;left:12px;right:12px;bottom:-1px;height:3px;background:var(--daily-plum)}
body[data-shell="editorial"] .cp-daily-windows span{display:block;color:#82797f;font-size:8px;text-transform:uppercase}.cp-daily-windows strong{display:block;margin:2px 0;color:var(--daily-aubergine);font-size:13px}.cp-daily-windows small{font-size:8px}
body[data-shell="editorial"] .cp-daily-evidence{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:26px;margin-top:18px}.cp-daily-leaders{padding-left:24px;border-left:1px solid var(--daily-rule)}
body[data-shell="editorial"] .cp-daily .cp-section-head{display:flex;justify-content:space-between;margin-bottom:7px}.cp-daily .cp-section-head h2{margin:0;color:var(--daily-aubergine);font-family:"Instrument Serif",Georgia,serif;font-size:19px;font-weight:500}.cp-daily .cp-section-head span{color:#837b80;font-size:9px}
body[data-shell="editorial"] .cp-daily-trend{min-width:0;padding:10px 13px 5px;border:1px solid var(--daily-rule);background:var(--daily-surface)}.cp-daily-chart{display:block;width:100%;height:auto;max-height:265px}.cp-daily-chart .area{fill:#2f7257;opacity:.07}.cp-daily-chart path.ty{fill:none;stroke:#2f7257;stroke-width:2.6}.cp-daily-chart path.ly{fill:none;stroke:#a9a0a5;stroke-width:1.5;stroke-dasharray:4 4}
body[data-shell="editorial"] .cp-daily-chart-legend{display:flex;justify-content:flex-end;gap:14px;color:#7f777c;font-size:8px}.cp-daily-chart-legend span{display:flex;align-items:center;gap:5px}.cp-daily-chart-legend i{width:13px;height:2px}.cp-daily-chart-legend i.ty{background:#2f7257}.cp-daily-chart-legend i.ly{background:#a9a0a5}
body[data-shell="editorial"] .cp-daily-ranks{border-top:1px solid var(--daily-rule)}.cp-daily-rank{display:grid;width:100%;grid-template-columns:1fr auto auto;gap:3px 9px;padding:8px 0;text-align:left;border:0;border-bottom:1px solid var(--daily-rule);background:transparent;color:var(--daily-ink);font-size:9px}.cp-daily-rank button{cursor:pointer}.cp-daily-rank .name{font-weight:650}.cp-daily-rank .sales{font-weight:700}.cp-daily-rank .bar{grid-column:1/4;height:3px;background:var(--daily-soft)}.cp-daily-rank .bar i{display:block;height:100%;background:var(--daily-aubergine)}.cp-daily-rank small{grid-column:1/4;color:#857c81;font-size:8px}
body[data-shell="editorial"] .cp-daily-channel{margin-top:17px;padding:11px 13px;border:1px solid var(--daily-rule);background:var(--daily-surface)}.cp-daily-channel .cp-daily-ranks{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.cp-daily-channel .cp-daily-rank{padding:7px 0}
body[data-shell="editorial"] .cp-daily-source{margin:12px 0 4px;color:#81787d;font-size:8px}.cp-daily-source summary{cursor:pointer;font-weight:650}.cp-daily-source p{margin:5px 0}
@media(max-width:1050px){body[data-shell="editorial"] .cp-daily-insight{grid-template-columns:90px 1fr auto}.cp-daily-insight>span:not(.cp-daily-ai){grid-column:1/4}.cp-daily-watch{grid-column:1/4!important}.cp-daily-ledger{grid-template-columns:repeat(2,1fr)}.cp-daily-hero{grid-column:1/3}.cp-daily-evidence{grid-template-columns:1fr}.cp-daily-leaders{padding:0;border:0}.cp-daily-channel .cp-daily-ranks{grid-template-columns:1fr}}
@media(max-width:720px){body[data-shell="editorial"] .cp-daily-command{align-items:flex-start;flex-direction:column}.cp-daily-command>div{max-width:100%;overflow:auto}.cp-daily-periods{max-width:100%;overflow:auto}.cp-daily-insight{grid-template-columns:1fr}.cp-daily-insight>*{grid-column:1!important}.cp-daily-watch{grid-template-columns:1fr}.cp-daily-ledger{grid-template-columns:1fr}.cp-daily-hero{grid-column:1}.cp-daily-metric{border-bottom:1px solid var(--daily-rule)}.cp-daily-windows{display:flex;overflow:auto}.cp-daily-windows button{min-width:130px}.cp-daily-evidence{gap:15px}.cp-daily-channel{padding:9px}}

/* Small-base comparison: when LY is too thin for a percentage to mean anything, the row states the
   base instead. Neutral weight on purpose — it is context, not a movement. */
.cp-daily-rank .flat { color:var(--cp-muted); font-weight:600; font-variant-numeric:tabular-nums; white-space:nowrap; }

/* ---- Channel-first planning rows ---------------------------------------------------------------
   The channels are what a planner types into; the topline is their roll-up. So the channel rows read
   as the working surface and the total reads as a result — quiet label, ruled off above, tabular. */
body[data-shell="editorial"] .mfp-grid tr.mfp-chanrow .mfp-rlabel {
  padding-left:22px; font-weight:600; color:var(--mfp-ink,#211d22);
}
body[data-shell="editorial"] .mfp-grid tr.mfp-chanrow .mfp-rlabel::before {
  content:''; position:absolute; left:10px; top:50%; width:4px; height:4px; margin-top:-2px;
  border-radius:50%; background:currentColor; opacity:.42;
}
body[data-shell="editorial"] .mfp-grid tr.mfp-chanrow .mfp-rlabel { position:relative; }
body[data-shell="editorial"] .mfp-grid tr.mfp-wp-total > td { border-top:1px solid #cfc7bd; font-weight:700; background:#faf7f2; }
body[data-shell="editorial"] .mfp-grid tr.mfp-wp-total .mfp-rlabel { color:var(--mfp-ink,#211d22); letter-spacing:.01em; }
/* Per-channel LY comparison rows (detail mode) — context beneath the row being planned. */
body[data-shell="editorial"] .mfp-grid tr.mfp-chanly .mfp-rlabel { padding-left:22px; color:var(--cp-muted); font-style:italic; }
body[data-shell="editorial"] .mfp-grid tr.mfp-chanly td { color:var(--cp-muted); }
/* Unclassified: real sales that belong to no channel. Carried, not planned. */
body[data-shell="editorial"] .mfp-grid tr.mfp-chanro .mfp-rlabel { color:var(--cp-muted); }
body[data-shell="editorial"] .mfp-grid tr.mfp-chanro td { color:var(--cp-muted); }
/* Locked month: pinned by the planner, so a rollup edit spreads the balance around it. */
body[data-shell="editorial"] .mfp-grid td.mfp-locked { position:relative; background:var(--cp-locked-bg,rgba(120,113,108,.10)); }
body[data-shell="editorial"] .mfp-grid td.mfp-locked input.mfp-in { color:var(--cp-muted); cursor:default; font-style:italic; }
body[data-shell="editorial"] .mfp-grid td.mfp-locked::after {
  content:"\1F512"; position:absolute; top:1px; right:3px; font-size:9px; line-height:1; opacity:.55; pointer-events:none;
}
/* Closed (actualized) months of the current plan year: read-only NetSuite actuals, receded. Overrides the
   pinned-lock look above — an actual is not a planner lock, so no lock glyph, no italic. */
body[data-shell="editorial"] .mfp-grid td.mfp-closed { background:var(--cp-closed-bg,rgba(70,80,110,.07)); }
body[data-shell="editorial"] .mfp-grid td.mfp-closed input.mfp-in,
body[data-shell="editorial"] .mfp-grid td[data-time-state="closed"] input.mfp-in { color:var(--cp-muted,#8a8a8a); font-style:normal; cursor:default; }
body[data-shell="editorial"] .mfp-grid td.mfp-closed::after { content:""; }
/* Shared grid control: which measures show, in what order. Same cluster on every planning grid. */
body[data-shell="editorial"] .grid-meas { position:relative; display:inline-flex; }
body[data-shell="editorial"] .grid-meas > button em { font-style:normal; opacity:.6; margin-left:5px; font-variant-numeric:tabular-nums; }
body[data-shell="editorial"] .grid-meas-pop {
  min-width:250px;
  background:var(--cp-surface,#fff); border:1px solid var(--cp-line,rgba(0,0,0,.12));
  border-radius:8px; box-shadow:0 12px 34px rgba(0,0,0,.16); padding:6px;
}
body[data-shell="editorial"] .grid-meas-head { display:flex; align-items:center; justify-content:space-between; padding:5px 7px 7px; }
body[data-shell="editorial"] .grid-meas-head b { font-size:12px; letter-spacing:.04em; text-transform:uppercase; opacity:.7; }
body[data-shell="editorial"] .grid-meas-head button,
body[data-shell="editorial"] .grid-meas-foot button { background:none; border:0; cursor:pointer; color:inherit; opacity:.65; font-size:11px; }
body[data-shell="editorial"] .grid-meas-head button:hover,
body[data-shell="editorial"] .grid-meas-foot button:hover { opacity:1; }
body[data-shell="editorial"] .grid-meas-list { list-style:none; margin:0; padding:0; }
body[data-shell="editorial"] .grid-meas-row { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:4px 7px; border-radius:5px; }
body[data-shell="editorial"] .grid-meas-row:hover { background:rgba(0,0,0,.045); }
body[data-shell="editorial"] .grid-meas-row label { display:flex; align-items:center; gap:8px; cursor:pointer; font-size:13px; margin:0; }
body[data-shell="editorial"] .grid-meas-move { display:inline-flex; gap:1px; }
body[data-shell="editorial"] .grid-meas-move button {
  background:none; border:0; cursor:pointer; color:inherit; opacity:.5; font-size:9px; line-height:1; padding:3px 4px; border-radius:3px;
}
body[data-shell="editorial"] .grid-meas-move button:hover:not(:disabled) { opacity:1; background:rgba(0,0,0,.08); }
body[data-shell="editorial"] .grid-meas-move button:disabled { opacity:.16; cursor:default; }
body[data-shell="editorial"] .grid-meas-foot { border-top:1px solid var(--cp-line,rgba(0,0,0,.1)); margin-top:5px; padding:6px 7px 3px; }
@media (prefers-color-scheme: dark) {
  body[data-shell="editorial"] .grid-meas-row:hover { background:rgba(255,255,255,.06); }
  body[data-shell="editorial"] .grid-meas-move button:hover:not(:disabled) { background:rgba(255,255,255,.12); }
}
/* Positioned FIXED from the button's screen coordinates: both the control strip (scrolls sideways)
   and the grid frame (holds a 20-column grid) must clip their contents, so a menu living inside
   either one gets cut off. A scrim behind it closes on click-outside. */
body[data-shell="editorial"] .grid-meas-pop { position: fixed; z-index: 90; }
/* the Compare popover anchors to its own button (no inline fixed coordinates) */
body[data-shell="editorial"] .mfp-cmp-pop { position:absolute; top:calc(100% + 6px); left:0; min-width:250px; max-height:320px; overflow-y:auto; }
body[data-shell="editorial"] .mfp-cmp-dot { display:inline-block; width:8px; height:8px; border-radius:50%; margin-right:6px; flex:none; }
/* every checkbox inside these panels wears the house plum, never the browser default blue */
body[data-shell="editorial"] .grid-meas-pop input[type="checkbox"] { accent-color:var(--cp-accent); width:13px; height:13px; margin:0; }
body[data-shell="editorial"] .mfp-cmp-copy {
  background:none; border:0; cursor:pointer; color:inherit; opacity:.6; font-size:11px; white-space:nowrap; padding:2px 0;
  text-decoration:underline; text-underline-offset:2px; text-decoration-color:rgba(0,0,0,.25);
}
body[data-shell="editorial"] .mfp-cmp-copy:hover { opacity:1; }
/* a compared version's row in the grid: same weight as LY, identity carried by the dot */
body[data-shell="editorial"] .mfp-grid tr.mfp-cmprow td.mfp-rlabel { font-weight:500; }
body[data-shell="editorial"] .grid-meas-scrim { position: fixed; inset: 0; z-index: 89; background: transparent; }
/* Save conflict: unsaved work that would have destroyed someone else's. Louder than an error, and
   it carries its own two ways out rather than leaving the planner to guess. */
body[data-shell="editorial"] .plan-save.conflict {
  display:inline-flex; align-items:center; gap:8px; flex-wrap:wrap;
  background:rgba(185,28,28,.10); color:#B91C1C; border:1px solid rgba(185,28,28,.35);
  border-radius:6px; padding:3px 8px; font-weight:600;
}
body[data-shell="editorial"] .plan-save.conflict button {
  background:#B91C1C; color:#fff; border:0; border-radius:4px; padding:3px 8px;
  font-size:11px; font-weight:600; cursor:pointer; white-space:nowrap;
}
body[data-shell="editorial"] .plan-save.conflict button + button { background:transparent; color:#B91C1C; border:1px solid rgba(185,28,28,.45); }
body[data-shell="editorial"] .plan-save.conflict button:hover { opacity:.85; }
/* Version manager: the dropdown says which version you are in, this says who owns it, when it last
   moved, and whether it is safe to touch. Fixed overlay so it opens from any planning screen. */
body[data-shell="editorial"] .pvm-scrim { position:fixed; inset:0; z-index:120; background:rgba(20,18,16,.34); }
body[data-shell="editorial"] .pvm {
  position:fixed; z-index:121; top:50%; left:50%; transform:translate(-50%,-50%);
  width:min(720px,calc(100vw - 48px)); max-height:min(76vh,760px); overflow:auto;
  background:var(--cp-surface,#fff); border:1px solid var(--cp-line,rgba(0,0,0,.12));
  border-radius:10px; box-shadow:0 24px 64px rgba(0,0,0,.26);
}
body[data-shell="editorial"] .pvm-top { display:flex; align-items:flex-start; justify-content:space-between; padding:16px 18px 10px; }
body[data-shell="editorial"] .pvm-top h4 { margin:0; font-size:15px; }
body[data-shell="editorial"] .pvm-sub { font-size:11px; color:var(--cp-muted); margin-top:2px; }
body[data-shell="editorial"] .pvm-x { background:none; border:0; cursor:pointer; font-size:13px; opacity:.6; color:inherit; }
body[data-shell="editorial"] .pvm-x:hover { opacity:1; }
body[data-shell="editorial"] .pvm-table { width:100%; border-collapse:collapse; }
body[data-shell="editorial"] .pvm-table td { padding:10px 18px; border-top:1px solid var(--cp-line,rgba(0,0,0,.08)); vertical-align:middle; }
body[data-shell="editorial"] .pvm-cur { background:rgba(91,91,214,.07); }
body[data-shell="editorial"] .pvm-name { font-size:13px; font-weight:600; display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
body[data-shell="editorial"] .pvm-name em { font-style:normal; font-size:10px; font-weight:600; letter-spacing:.05em; text-transform:uppercase; color:#5B5BD6; }
body[data-shell="editorial"] .pvm-lock,
body[data-shell="editorial"] .plan-ver-frozen {
  font-size:10px; font-weight:600; letter-spacing:.04em; text-transform:uppercase;
  background:rgba(120,113,108,.16); color:var(--cp-muted); border-radius:3px; padding:1px 5px;
}
body[data-shell="editorial"] .pvm-meta { font-size:11px; color:var(--cp-muted); margin-top:3px; }
body[data-shell="editorial"] .pvm-acts { text-align:right; white-space:nowrap; }
body[data-shell="editorial"] .pvm-acts button {
  background:none; border:1px solid var(--cp-line,rgba(0,0,0,.16)); border-radius:5px;
  padding:4px 9px; margin-left:5px; font-size:11px; cursor:pointer; color:inherit;
}
body[data-shell="editorial"] .pvm-acts button:hover { background:rgba(0,0,0,.05); }
body[data-shell="editorial"] .pvm-acts button.danger { color:#B91C1C; border-color:rgba(185,28,28,.34); }
body[data-shell="editorial"] .pvm-foot { padding:12px 18px 16px; font-size:11px; color:var(--cp-muted); border-top:1px solid var(--cp-line,rgba(0,0,0,.08)); }
@media (prefers-color-scheme: dark) { body[data-shell="editorial"] .pvm-acts button:hover { background:rgba(255,255,255,.08); } }
/* Season breakdown: real rows, just not typeable. Distinct from the muted Unclassified carry row. */
body[data-shell="editorial"] .mfp-grid tr.mfp-seasonrow .mfp-rlabel { font-weight:600; }
body[data-shell="editorial"] .mfp-seasonnote {
  margin:0 0 8px; padding:8px 12px; font-size:11px; line-height:1.5; color:var(--cp-muted);
  background:rgba(120,113,108,.07); border-left:2px solid rgba(120,113,108,.3); border-radius:0 4px 4px 0;
}
/* Open to buy by season: the buy decision FV actually makes, once per season. */
body[data-shell="editorial"] .otbs { margin:14px 0 18px; border:1px solid var(--cp-line,rgba(0,0,0,.1)); border-radius:8px; overflow:hidden; }
body[data-shell="editorial"] .otbs-head { padding:12px 16px 10px; background:rgba(120,113,108,.05); }
body[data-shell="editorial"] .otbs-head b { font-size:13px; display:block; }
body[data-shell="editorial"] .otbs-head span { font-size:11px; color:var(--cp-muted); display:block; margin-top:3px; line-height:1.5; }
/* Why this table and the strip at the top of the screen carry different totals. Set apart with a
   rule rather than another grey paragraph, so it reads as an answer to a question rather than as
   more methodology nobody finishes. */
body[data-shell="editorial"] .otbs-head span.otbs-basis {
  margin-top:7px;
  padding-left:9px;
  border-left:2px solid var(--mfp-rule-strong, #c2b69f);
  color:var(--mfp-ink-2, #3a352d);
}
body[data-shell="editorial"] .otbs-table { width:100%; border-collapse:collapse; font-size:12px; }
body[data-shell="editorial"] .otbs-table th { text-align:left; font-size:10px; letter-spacing:.05em; text-transform:uppercase; color:var(--cp-muted);
  padding:8px 14px; border-bottom:1px solid var(--cp-line,rgba(0,0,0,.12)); font-weight:600; white-space:nowrap; }
body[data-shell="editorial"] .otbs-table th.num, body[data-shell="editorial"] .otbs-table td.num { text-align:right; font-variant-numeric:tabular-nums; }
body[data-shell="editorial"] .otbs-table td { padding:7px 14px; border-top:1px solid var(--cp-line,rgba(0,0,0,.06)); }
body[data-shell="editorial"] .otbs-table tfoot td { border-top:1px solid var(--cp-line,rgba(0,0,0,.22)); font-weight:600; }
body[data-shell="editorial"] .otbs-win { color:var(--cp-muted); font-size:11px; white-space:nowrap; }
body[data-shell="editorial"] .otbs-table tr.otbs-tight td { background:rgba(217,119,6,.07); }
body[data-shell="editorial"] .otbs-table tr.otbs-over td { background:rgba(185,28,28,.08); }
/* Buying class is the OTB planning grain, so it sits in the scope bar under department. */
/* A month typed by hand, holding against a higher-level edit. Quieter than a lock: it is a
   preference, not a pin, and it stops holding the moment spread mode changes. */
body[data-shell="editorial"] .mfp-grid td.mfp-held { box-shadow: inset 2px 0 0 rgba(91,91,214,.45); }
body[data-shell="editorial"] .mfp-grid td.mfp-held input.mfp-in { font-weight:600; }
/* Free-text scenario entry. It fills the fields below it; it never applies on its own. */
body[data-shell="editorial"] .mfp-ask { display:flex; align-items:center; gap:8px; flex-wrap:wrap; padding:2px 0 10px; }
body[data-shell="editorial"] .mfp-ask label { flex:1 1 320px; display:flex; flex-direction:column; gap:3px; font-size:11px; color:var(--cp-muted); }
body[data-shell="editorial"] .mfp-ask input {
  padding:7px 10px; font-size:13px; border:1px solid var(--cp-line,rgba(0,0,0,.16)); border-radius:6px;
  background:var(--cp-surface,#fff); color:inherit; width:100%;
}
body[data-shell="editorial"] .mfp-ask-note { font-size:11px; color:#5B5BD6; flex:1 1 100%; }
body[data-shell="editorial"] .mfp-ask-note.bad { color:#B91C1C; }
/* One View panel instead of four toolbar controls. Same fixed-anchor pattern as the measures menu. */
body[data-shell="editorial"] .mfp-view-pop {
  position:fixed; z-index:90; min-width:272px;
  background:var(--cp-surface,#fff); border:1px solid var(--cp-line,rgba(0,0,0,.12));
  border-radius:8px; box-shadow:0 12px 34px rgba(0,0,0,.16); padding:6px;
}
body[data-shell="editorial"] .mfp-view-row { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:5px 7px; }
body[data-shell="editorial"] .mfp-view-row > span { font-size:12px; color:var(--cp-muted); white-space:nowrap; }
body[data-shell="editorial"] .mfp-view-row select { min-width:172px; }
body[data-shell="editorial"] .mfp-view-sec {
  font-size:10px; letter-spacing:.05em; text-transform:uppercase; color:var(--cp-muted); font-weight:600;
  padding:9px 7px 4px; margin-top:3px; border-top:1px solid var(--cp-line,rgba(0,0,0,.1));
}
body[data-shell="editorial"] .mfp-view-sec em { font-style:normal; opacity:.7; text-transform:none; letter-spacing:0; margin-left:4px; }
/* ---- Brand: the rabbit ---------------------------------------------------------------------
   The four rhythm bars are retired. They read as generic BI, which is the opposite of the
   positioning, and they are gone from the marketing site. The mark is now an image served from
   /brand, the same file cadenceplan.com uses, so the two can never drift into different drawings.
   Deep plum #2b2134 (--cadence-plum on the marketing site) is the hero colour. */
body[data-shell="editorial"] img.brand-mark,
body[data-layout="topbar"][data-shell="editorial"] .sidebar-brand img.brand-mark {
  width:var(--brand-mark-w,24px); height:var(--brand-mark-w,24px); object-fit:contain; display:block; opacity:1;
  background:none; border:0; border-radius:0;
}
/* The retired bar rules targeted <rect> children. Nothing matches them now, but an inverted chrome
   could still tint the image, so the mark is explicitly left alone. */
body[data-chrome="inverted"] img.brand-mark { filter:none; }
/* ---- Wordmark: matched to cadenceplan.com -----------------------------------------------------
   Copied from the site's own .wordmark rule rather than eyeballed. Aptos Display is a system face on
   Windows and falls back through Segoe UI Variable Display and Avenir Next, so there is no webfont
   to load and nothing to go missing.
   Two-tone, but NOT the old green: "Cadence" is ink #18131d and "Plan" is deep plum #3c1e5b, exactly
   as .brand-lockup .wordmark span:last-child sets it on the site. */
/* CANON = the marketing site (cadenceplan.com): Newsreader 720, single-colour #17141d. Not Aptos, not two-tone. */
body[data-shell="editorial"] .wordmark {
  font-family: "Newsreader", Georgia, "Times New Roman", serif;
  font-weight: 720;
  letter-spacing: -0.018em;
  line-height: 1;
  color: #17141d;
}
body[data-shell="editorial"] .wordmark .wm-1,
body[data-shell="editorial"] .wordmark .wm-2,
body[data-shell="editorial"] .wordmark .wm-2 span,
body[data-shell="editorial"] .wordmark .wp1,
body[data-shell="editorial"] .wordmark .wp2,
body[data-shell="editorial"] .wordmark .wp3,
body[data-shell="editorial"] .wordmark .wp4 {
  color: #17141d;
  -webkit-text-fill-color: #17141d;   /* beats any leftover background-clip:text gradient */
  background: none;
}
/* No extra gap: the app markup already has a literal space between the two spans.
   The site adds .16em because its spans are adjacent with no whitespace - copying that rule here
   double-spaced the wordmark. */
/* No inverted override. FV carries chrome:"inverted" in its theme but the header renders on
   cream, so keying the wordmark off that attribute painted both words cream on a light bar. The
   two-tone stands on every surface FV actually uses. */

/* ===================================================================================================
   MFP GRID PALETTE — one surface, one accent, colour reserved for meaning
   ---------------------------------------------------------------------------------------------------
   Replaces four stacked generations of band tints (deleted above, not layered over). The grid had run
   nine hue families at once: warm tan on the aggregate block, warm cream page, COOL blue-grey column
   headers and rules, and five pastel row washes at 4-8% saturation. Two problems came out of that.

   1. Warm against cool. The column header strip and its rules were hue 240; the aggregate block under
      them was hue 38, on a hue 40 page. At the JAN|Q1 seam a cool grey header met a warm tan body
      inside one column. That is what read as "assembled", and it is why an earlier all-grey pass read
      washed out rather than restrained - the greys were cool, on a warm page.
   2. Colour spent on decoration and absent from signal. Five washes distinguished measures that the
      dark section chip already distinguished, while Var % LY - the column a merchant reads first -
      was one flat grey regardless of sign.

   So: every surface resolves onto ONE warm neutral ramp, purple is the only hue, and the chroma that
   frees up goes to variance. Values sampled and specified by a colour review of the rendered page.

   TONE. The first attempt at this resolved every surface onto ONE warm neutral (#f5f3ef) and it read
   washed out — correctly. The page was #fffdf9, the cells were white, and that "warm surface" is white
   tinted 4%: the whole screen sat inside a 4% band with nothing for the eye to push against. Removing
   the noise is not the same as adding richness, and the missing ingredient was never hue, it was
   RANGE. So the grid is now a ledger: a real paper page, a dark header band, and near-white kept ONLY
   where the numbers live, so the data area is the brightest thing on screen rather than everything
   being equally bright. =============================================================================== */
body[data-shell="editorial"] .mfp-premium {
  --mfp-paper:#f6f4ef;          /* the page the grid sits on — actual paper, not tinted white */
  --mfp-cell:#ffffff;           /* where the numbers live — the only near-white on the screen */
  --mfp-label:#faf7f1;          /* frozen label column */
  --mfp-surface:#f3efe6;        /* aggregate columns */
  --mfp-surface-year:#ece6d9;   /* YEAR, one step deeper */
  --mfp-rule:#e5e0d5;           /* ordinary column rule */
  --mfp-rule-strong:#c9c1b0;    /* block boundary */
  --mfp-head:#2f2536;           /* the header band — deep plum, unbroken across all 19 columns */
  --mfp-head-deep:#241c2b;      /* label + YEAR ends of that band */
  --mfp-head-ink:#e9dfcd;       /* cream type on it */
  --mfp-ink:#16130f;            /* totals, YEAR - the strongest ink */
  --mfp-ink-2:#3a352d;          /* detail values */
  --mfp-ink-3:#6b655c;          /* LY, secondary */
  --mfp-ink-4:#938c81;          /* labels, micro-caps */
  --mfp-pos:#047857;
  --mfp-neg:#9a3412;
}
body[data-shell="editorial"]:has(.mfp-premium) .view { background:var(--mfp-paper); }
body[data-shell="editorial"] .mfp-premium .mfp-grid tbody td { background-color:var(--mfp-cell); }
body[data-shell="editorial"] .mfp-premium .mfp-grid .mfp-rlabel { background:var(--mfp-label)!important; color:#2f2536; }
body[data-shell="editorial"] .mfp-premium .mfp-grid tbody.mfp-blk .mfp-mhead-fill { background:#e4dccc!important; }
/* One surface for every section. Section identity is already carried by the dark chip; it does not
   need a second channel, and at 4-8% saturation violet and blue were indistinguishable anyway. */
body[data-shell="editorial"] .mfp-premium .mfp-grid tbody.mfp-blk {
  --mfp-band:var(--mfp-surface); --mfp-band-ink:#4b2a63;
}
body[data-shell="editorial"] .mfp-premium .mfp-grid .mfp-roll {
  background:var(--mfp-surface)!important; border-left-color:var(--mfp-rule)!important;
}
body[data-shell="editorial"] .mfp-premium .mfp-grid .mfp-fy {
  background:var(--mfp-surface-year)!important; border-left-color:var(--mfp-rule-strong)!important;
  box-shadow:-8px 0 12px rgba(22,19,15,.06)!important;
}
/* The header band. Unbroken across all 19 columns — the aggregate-column fills apply to thead as well
   as tbody, so without the roll/fy overrides the Q1..YEAR labels come out cream on tan and vanish. */
body[data-shell="editorial"] .mfp-premium .mfp-grid thead th {
  background:var(--mfp-head)!important; color:var(--mfp-head-ink)!important; border-color:#453a4c!important;
}
body[data-shell="editorial"] .mfp-premium .mfp-grid thead th.mfp-mcol { background:var(--mfp-head-deep)!important; }
body[data-shell="editorial"] .mfp-premium .mfp-grid thead th.mfp-roll { background:#3b3044!important; border-left-color:#4d4157!important; }
body[data-shell="editorial"] .mfp-premium .mfp-grid thead th.mfp-fy { background:var(--mfp-head-deep)!important; border-left-color:#4d4157!important; }
body[data-shell="editorial"] .mfp-premium .mfp-grid td { border-color:var(--mfp-rule); }
/* The break between the twelve months and the aggregates is the most important on the page and was
   drawn at the same 1px as the break between Q1 and Q2. Give it real weight. */
body[data-shell="editorial"] .mfp-premium .mfp-grid th.mfp-roll:first-of-type,
body[data-shell="editorial"] .mfp-premium .mfp-grid td.mfp-roll:first-of-type {
  border-left:2px solid var(--mfp-rule-strong)!important;
}
/* ---- Ink: four steps with real gaps, and the hierarchy the right way up --------------------------
   Detail rows were the darkest ink on the page and the totals row was LIGHTER, so the eye landed on
   the components before the total. Flipped. */
body[data-shell="editorial"] .mfp-premium .mfp-grid tbody td { color:var(--mfp-ink-2); }
body[data-shell="editorial"] .mfp-premium .mfp-grid tbody .mfp-total td,
body[data-shell="editorial"] .mfp-premium .mfp-grid tbody tr.mfp-wp td { color:var(--mfp-ink); font-weight:600; }
body[data-shell="editorial"] .mfp-premium .mfp-seed td { color:var(--mfp-ink-3); }
body[data-shell="editorial"] .mfp-premium .mfp-grid .mfp-fy { color:var(--mfp-ink); }
/* ---- Variance is the one place colour earns its keep -------------------------------------------- */
body[data-shell="editorial"] .mfp-premium .mfp-varrow td { color:var(--mfp-ink-3); font-style:normal; }
body[data-shell="editorial"] .mfp-premium .mfp-varrow .mfp-rlabel { font-style:normal; }
body[data-shell="editorial"] .mfp-premium .mfp-pos, body[data-shell="editorial"] .mfp-premium td.mfp-pos { color:var(--mfp-pos)!important; }
body[data-shell="editorial"] .mfp-premium .mfp-neg, body[data-shell="editorial"] .mfp-premium td.mfp-neg { color:var(--mfp-neg)!important; }
/* ---- Aggregates set roman ------------------------------------------------------------------------
   Italic said "derived, lesser" about the figures a buyer signs off on, it broke the alignment of
   tabular numerals, and it was applied inconsistently - italic in Sales and ASP (which render as
   inputs, where the italic sits on .mfp-in-roll) and upright in Units and Gross Margin. */
body[data-shell="editorial"] .mfp-premium .mfp-grid .mfp-in-roll,
body[data-shell="editorial"] .mfp-premium .mfp-grid td.mfp-roll input,
body[data-shell="editorial"] .mfp-premium .mfp-grid td.mfp-fy input,
body[data-shell="editorial"] .mfp-premium .mfp-grid .mfp-roll,
body[data-shell="editorial"] .mfp-premium .mfp-grid .mfp-fy {
  font-style:normal!important; font-variant-numeric:tabular-nums lining-nums;
}
/* ---- The current period, committed rather than hinted --------------------------------------------
   The AUG body tint was ~2% off white and died at row one, so the marker existed only in the header.
   Keep the header marker, drop the ghost. */
body[data-shell="editorial"] .mfp-premium .mfp-grid tbody td.mfp-current { background-color:inherit; }
body[data-shell="editorial"] .mfp-premium .mfp-grid thead .mfp-current {
  background:#4a3358!important; color:#fff!important; box-shadow:inset 0 -3px 0 #b18ccb;
}
/* ---- The seed chip -------------------------------------------------------------------------------
   Sits beside editable/calculated and says the plan is still a starting point. Deliberately quiet:
   it is a disclosure, not a warning. */
body[data-shell="editorial"] .mfp-premium .mfp-seedchip {
  margin-left:6px; padding:1px 6px; border-radius:9px;
  font-size:8.5px; font-weight:650; letter-spacing:.05em; text-transform:uppercase;
  color:#7a6f52; background:#f7f2e4; border:1px solid #e6dcc4; white-space:nowrap;
}

/* ---- Editable cells must read as fields -----------------------------------------------------------
   The strongest finding from three independent reviews. Editability was declared once on the section
   chip and then abandoned: an editable Sales cell and a calculated Units cell were pixel-identical, so
   once the section header scrolled off there was no way to tell what you could type in. The only
   in-grid signal was a ~10px pencil glyph on the row label, and (accidentally) whether the number had
   a currency symbol. In a planning grid the input affordance IS the product; without it this reads as
   a report. td.mfp-in-td is the editable cell - give it an actual field surface. */
body[data-shell="editorial"] .mfp-premium .mfp-grid td.mfp-in-td {
  background:var(--mfp-cell)!important;
  box-shadow:inset 0 0 0 1px #e4dbc8;
}
body[data-shell="editorial"] .mfp-premium .mfp-grid td.mfp-in-td.mfp-roll { background:#f2ebda!important; }
body[data-shell="editorial"] .mfp-premium .mfp-grid td.mfp-in-td.mfp-fy { background:#e6dcc6!important; }
body[data-shell="editorial"] .mfp-premium .mfp-grid td.mfp-in-td:focus-within {
  box-shadow:inset 0 0 0 2px #4b2a63;
  background:#fdfcfa!important;
}
body[data-shell="editorial"] .mfp-premium .mfp-grid td.mfp-in-td input.mfp-in { color:var(--mfp-ink); }
/* A locked month should still read as a field, just a closed one. */
body[data-shell="editorial"] .mfp-premium .mfp-grid td.mfp-in-td.mfp-locked {
  background:#f4f2ee!important; box-shadow:inset 0 0 0 1px #e9e5dd;
}

/* The fill cell now carries the seed chip and the Why link, so give it a left inset and align them. */
body[data-shell="editorial"] .mfp-premium .mfp-grid tbody.mfp-blk .mfp-mhead .mfp-mhead-fill {
  padding-left:14px; text-align:left; vertical-align:middle;
}
body[data-shell="editorial"] .mfp-premium .mfp-grid tbody.mfp-blk .mfp-mhead .mfp-mhead-fill .mfp-why {
  margin-left:10px;
}
/* The frozen label column was ~268px with the longest label ending near 150px — roughly 115px of dead
   air pushing FEB rightward. Reclaim it for the months. */
body[data-shell="editorial"] .mfp-premium .mfp-grid .mfp-mcol,
body[data-shell="editorial"] .mfp-premium .mfp-grid .mfp-rlabel {
  min-width:208px; width:208px; max-width:208px;
}

/* ---- "Later phase" nav items: off, not absent -----------------------------------------------------
   These measured about 1.4:1 against the page. All three reviewers read them as a rendering failure
   rather than as "not in this phase", and it is the first thing the eye lands on in a demo — "is this
   thing finished?". #b8b2a8 is ~2.7:1: clearly inactive, clearly deliberate. The label says why. */
body[data-layout="topbar"][data-shell="editorial"] .nav-soon .nav-item-top { color:#b8b2a8!important; }
body[data-layout="topbar"][data-shell="editorial"] .nav-soon .nav-item-top::after {
  content:"Soon"; margin-left:6px; padding:1px 5px; border-radius:8px;
  font-size:8px; font-weight:700; letter-spacing:.06em; text-transform:uppercase;
  color:#8d8578; background:#f1ede5; border:1px solid #e3ddd1; vertical-align:1px;
}

/* ---- The context strip joins the warm ramp ---------------------------------------------------------
   It was color-mix(#efe6f2 82%, surface) with a #d7cadd rule — a COOL lavender, hue ~285, the same
   family as the row washes deleted above. On a warm paper page that is the identical warm/cool
   collision, just relocated into the chrome, and it would have read as "something is still off"
   without being pointable-at. It is also navigation: it should recede, not advertise itself as the
   only tinted band in the header stack. Purple survives here only on the active tab's underline,
   where it is telling you where you are rather than decorating a background. */
body[data-layout="topbar"][data-shell="editorial"] .shell-context-nav {
  background:#e6ded0;
  border-bottom-color:#d5cab6;
}
body[data-shell="editorial"] .shell-context-label { color:#7d7264; border-right-color:#d5cab6; }

/* ===================================================================================================
   COMMAND BAR — composed rather than assembled
   ---------------------------------------------------------------------------------------------------
   Fourteen controls, six control idioms and three different chevrons inside 900px, and nine of them
   rendered identically: same size, same weight, same grey. "New" (creates a version) looked exactly
   like "More detail" (toggles a view). With no rank encoded anywhere the strip read as a wall of small
   words, which is what "washes out and doesn't look premium" was describing. Separators appeared at
   three of about eight real group boundaries, so the grouping they implied was arbitrary.

   Fixes: one primary action, a genuinely lighter tier for everything else, grouping by SPACE rather
   than by hairline, and the read-only KPI cluster pulled out of the action flow. =================== */
body[data-shell="editorial"] .mfp-premium .mfp-commandbar {
  background:#f3ece0; border-color:#ddd2be;
}
/* Group by space. The rules were decorative and inconsistent, so they go. */
body[data-shell="editorial"] .mfp-premium .mfp-commandbar .mfp-command-rule { display:none; }
body[data-shell="editorial"] .mfp-premium .mfp-command-left { gap:9px; }
body[data-shell="editorial"] .mfp-premium .mfp-command-left > .plan-ver { margin-right:14px; }
body[data-shell="editorial"] .mfp-premium .mfp-command-left > .mfp-command-btn + .mfp-command-btn { margin-left:0; }
/* Model scenario is the primary action on this screen and was indistinguishable from seven text
   links, which is why it went unfound. It carries the accent; nothing else on the bar does. */
body[data-shell="editorial"] .mfp-premium .mfp-command-left > .mfp-command-btn:first-of-type,
body[data-shell="editorial"] .mfp-premium .mfp-commandbar .mfp-command-btn.active {
  background:#2f2536; color:#f0e7d6; border-color:#2f2536; font-weight:600;
}
/* Everything else drops a tier. */
body[data-shell="editorial"] .mfp-premium .mfp-commandbar .mfp-command-btn { color:#5c5347; font-weight:500; }
/* the secondary bars have no primary action - their first button must NOT inherit Model
   scenario's dark crown (Focus grid was rendering as a filled pill while off) */
body[data-shell="editorial"] .mfp-premium .mfp-commandbar-secondary .mfp-command-left > .mfp-command-btn:first-of-type:not(.active) {
  background:transparent; color:#5c5347; border-color:transparent; font-weight:500;
}
/* Destructive, and it looks it. */
body[data-shell="editorial"] .mfp-premium .mfp-commandbar .mfp-command-btn.danger {
  color:#9b3b3b; border:1px solid #e2c9c9; background:#fbf5f3;
}
body[data-shell="editorial"] .mfp-premium .mfp-commandbar .mfp-command-btn.danger:hover { background:#f6e9e6; border-color:#d3adad; }
/* Undo and redo were ~#dbd9d5 - under 1.5:1, the least visible controls on a page full of
   irreversible ones, and the two a planner typing over hundreds of cells needs most. */
body[data-shell="editorial"] .mfp-premium .mfp-commandbar .mfp-command-icon {
  color:#5c5347; border:1px solid #ddd2be; background:#faf6ec; font-size:14px;
}
body[data-shell="editorial"] .mfp-premium .mfp-commandbar .mfp-command-icon:disabled { color:#b8b2a8; border-color:#e7ded0; background:transparent; }
/* The three most important numbers in the plan were set smaller and lighter than the button labels
   next to them. They are a RESULT, not a control - give them air and let them read. */
body[data-shell="editorial"] .mfp-premium .mfp-command-orientation {
  margin-right:18px; padding-right:18px; border-right:1px solid #ddd2be; gap:18px;
}
body[data-shell="editorial"] .mfp-premium .mfp-command-orientation i {
  color:#8d8578; font-size:8.5px; font-weight:700; letter-spacing:.09em; text-transform:uppercase; font-style:normal;
}
body[data-shell="editorial"] .mfp-premium .mfp-command-orientation b { color:#16130f; font-size:15px; font-weight:650; }
/* "Compare to ver" was clipped mid-word. A truncated label on a demo screen is the cheapest possible
   credibility loss. */
body[data-shell="editorial"] .mfp-premium .mfp-command-compare select { min-width:186px; }
/* The version actions menu that replaced five bare verbs. */
body[data-shell="editorial"] .plan-ver-menu { position:relative; display:inline-flex; }
body[data-shell="editorial"] .plan-ver-pop {
  position:absolute; top:calc(100% + 6px); left:0; z-index:60; min-width:196px;
  display:flex; flex-direction:column; padding:5px;
  background:#fffdf8; border:1px solid #ddd2be; border-radius:8px; box-shadow:0 12px 28px rgba(34,28,20,.16);
}
body[data-shell="editorial"] .plan-ver-pop[hidden] { display:none; }
body[data-shell="editorial"] .plan-ver-pop button {
  padding:7px 10px; border:0; border-radius:5px; background:none; text-align:left;
  font-size:11.5px; color:#3a352d; cursor:pointer; white-space:nowrap;
}
body[data-shell="editorial"] .plan-ver-pop button:hover { background:#f1ebdd; }
body[data-shell="editorial"] .plan-ver-pop button.danger { color:#9b3b3b; }

/* The view switcher is a WHERE-AM-I control, not an action, so it should not compete with the one
   primary action on the bar. Its active segment was a filled bright purple - the same rank signal
   Model scenario now carries - which left two things claiming to be the most important control.
   Quiet fill, dark ink, and the accent stays with the action. */
body[data-shell="editorial"] .mfp-premium .mfp-commandbar .mfp-view-seg { background:#e9e1d3; border-color:#ddd2be; }
body[data-shell="editorial"] .mfp-premium .mfp-commandbar .mfp-view-seg .seg-btn { color:#6b6255; }
body[data-shell="editorial"] .mfp-premium .mfp-commandbar .mfp-view-seg .seg-btn.active {
  background:#fffdf8!important; color:#2f2536!important; font-weight:650;
  box-shadow:0 1px 2px rgba(34,28,20,.12);
}

/* The command bar is nowrap with overflow-x:auto, so any child that CAN shrink gets squeezed instead
   of the bar scrolling. Widening the compare select and the KPI values pushed the total past the
   available width, the segmented control was the thing that gave, and "Sheet" dropped onto a second
   line - turning a one-row toolbar into two. Controls hold their size; the bar scrolls if it must. */
body[data-shell="editorial"] .mfp-premium .mfp-commandbar .mfp-view-seg {
  flex:0 0 auto; flex-wrap:nowrap; white-space:nowrap;
}
body[data-shell="editorial"] .mfp-premium .mfp-commandbar .mfp-view-seg .seg-btn { flex:0 0 auto; white-space:nowrap; }
body[data-shell="editorial"] .mfp-premium .mfp-commandbar .mfp-command-btn,
body[data-shell="editorial"] .mfp-premium .mfp-commandbar .mfp-command-icon,
body[data-shell="editorial"] .mfp-premium .mfp-commandbar .mfp-command-compare,
body[data-shell="editorial"] .mfp-premium .mfp-commandbar .plan-ver { flex:0 0 auto; white-space:nowrap; }
/* Trimmed from 186px — enough for "Compare to version…" without clipping, without stealing the width
   that caused the squeeze in the first place. */
body[data-shell="editorial"] .mfp-premium .mfp-command-compare select { min-width:168px; }

/* ---- Secondary ink has to be darker on the beige than on the cells ---------------------------------
   Contrast is relative to the ground, and the ink ramp above was specified against the near-white data
   cells. Putting the aggregate columns on #eae1cf cost every secondary row about a third of its
   separation without a single colour changing. Measured with tools/checks/grid-contrast.js:

     seed rows      4.97:1 on cells  ->  3.83:1 on beige
     variance rows  5.48:1 on cells  ->  4.22:1 on beige

   Both under 4.5:1, and they are exactly the rows that looked weak. The fix is not a global darkening
   — that would over-darken them on white — it is a compensated ink for the darker ground only.

   Selector note: an older generation at `.mfp-grid tbody.mfp-blk .mfp-seed td` outranks the obvious
   `.mfp-premium .mfp-seed td.mfp-roll`, so the first attempt at this changed nothing and measured
   identically. Matched to that shape rather than reaching for !important. And chanly is NOT in here —
   it was already 9.36:1 and adding it made it worse, which the re-measure caught. */
body[data-shell="editorial"] .mfp-premium .mfp-grid tbody.mfp-blk .mfp-seed td.mfp-roll,
body[data-shell="editorial"] .mfp-premium .mfp-grid tbody.mfp-blk .mfp-seed td.mfp-fy,
body[data-shell="editorial"] .mfp-premium .mfp-grid tbody.mfp-blk .mfp-varrow td.mfp-roll,
body[data-shell="editorial"] .mfp-premium .mfp-grid tbody.mfp-blk .mfp-varrow td.mfp-fy {
  color:#565046;
}
/* Same reason for the semantic pair: green and red were picked against white. Nudged darker so they
   hold on the beige without going muddy on the cells. */
body[data-shell="editorial"] .mfp-premium { --mfp-pos:#03684a; --mfp-neg:#8a2f10; }

/* ---- Anything with its own ink inside the dark header band -----------------------------------------
   The header became deep plum. Cells inherit the cream, but descendants that set their own colour kept
   an ink picked for a pale ground and went dark-on-dark. Swept with tools/checks/dark-band-contrast.js
   across Topline / Class Plan / Reconcile / OTB — four elements, all of them week-drill furniture:

     .mfp-wk-end  "8/8/2026"  1.24:1   effectively invisible
     .mfp-wk-num  "W27"        2.9:1
     .mfp-wk-caret "|>"        2.9:1 on Topline, 2.0:1 on OTB (lighter plum ground there)

   The date is the primary label so it takes the full cream; the week number is secondary and sits at
   5.5:1; the caret is an affordance and has to clear BOTH plums, so it is brighter than the number. */
body[data-shell="editorial"] .mfp-premium .mfp-grid thead .mfp-wk-end,
body[data-shell="editorial"] .otb-grid thead .mfp-wk-end {
  color:var(--mfp-head-ink,#e9dfcd);
}
body[data-shell="editorial"] .mfp-premium .mfp-grid thead .mfp-wk-num,
body[data-shell="editorial"] .otb-grid thead .mfp-wk-num {
  color:#a99e8d;
}
body[data-shell="editorial"] .mfp-premium .mfp-grid thead .mfp-wk-caret,
body[data-shell="editorial"] .otb-grid thead .mfp-wk-caret {
  color:#cdc0af;
}

/* ---- The grid has to LOOK scrollable --------------------------------------------------------------
   "Scrolling left and right doesn't work." It does — horizontal wheel and shift+wheel both move it,
   measured. What was missing is any affordance: the wrap rendered a 0px scrollbar. Chrome on Windows
   uses overlay scrollbars that take no layout space and only surface on hover, so on a grid this tall
   the horizontal bar is effectively undiscoverable, and a mouse user has no way to know shift+wheel is
   the gesture. .table-wrap in retail-afa-v2.css already styles its bars explicitly; this grid never
   did. Persistent, always-visible, on the warm ramp.
   scroll-behavior:smooth also comes off: on a data grid it makes keyboard cell navigation feel laggy,
   and it animates programmatic jumps so scrollLeft reads back stale — which cost me a wrong diagnosis
   of this very bug. */
body[data-shell="editorial"] .mfp-premium .mfp-grid-wrap,
body[data-shell="editorial"] .otb-grid-shell .mfp-grid-wrap {
  scroll-behavior:auto;
  /* No scrollbar-color / scrollbar-width here: in Chrome, ANY non-auto value for either disables the
     ::-webkit-scrollbar rules below and falls back to Windows overlay scrollbars — 0px wide, hover-only,
     i.e. the exact invisible-scrollbar bug this block exists to fix. Measured 2026-08-21:
     with scrollbar-color set, wrap.offsetHeight - wrap.clientHeight === 0 (no bar); without it, 13px. */
}
body[data-shell="editorial"] .mfp-premium .mfp-grid-wrap::-webkit-scrollbar,
body[data-shell="editorial"] .otb-grid-shell .mfp-grid-wrap::-webkit-scrollbar {
  height:13px; width:13px;
}
body[data-shell="editorial"] .mfp-premium .mfp-grid-wrap::-webkit-scrollbar-track,
body[data-shell="editorial"] .otb-grid-shell .mfp-grid-wrap::-webkit-scrollbar-track {
  background:#ece5d7;
}
body[data-shell="editorial"] .mfp-premium .mfp-grid-wrap::-webkit-scrollbar-thumb,
body[data-shell="editorial"] .otb-grid-shell .mfp-grid-wrap::-webkit-scrollbar-thumb {
  background:#c2b69f; border-radius:999px; border:3px solid #ece5d7;
}
body[data-shell="editorial"] .mfp-premium .mfp-grid-wrap::-webkit-scrollbar-thumb:hover,
body[data-shell="editorial"] .otb-grid-shell .mfp-grid-wrap::-webkit-scrollbar-thumb:hover {
  background:#a2957c;
}
body[data-shell="editorial"] .mfp-premium .mfp-grid-wrap::-webkit-scrollbar-corner,
body[data-shell="editorial"] .otb-grid-shell .mfp-grid-wrap::-webkit-scrollbar-corner {
  background:#ece5d7;
}

/* ---- Column group band: QUARTERS / HALVES / YEAR ---------------------------------------------------
   Sits above the column names so the aggregate block reads as three things rather than seven peer
   columns. Part of the same dark header band, one step quieter than the names under it. */
body[data-shell="editorial"] .mfp-premium .mfp-grid thead tr.mfp-colgroups th {
  padding:5px 10px 3px; border-bottom:0;
  font-size:8.5px; font-weight:700; letter-spacing:.11em; text-transform:uppercase;
  color:#a99e8d; text-align:center; background:var(--mfp-head);
}
body[data-shell="editorial"] .mfp-premium .mfp-grid thead tr.mfp-colgroups th.mfp-mcol { background:var(--mfp-head-deep); }
body[data-shell="editorial"] .mfp-premium .mfp-grid thead tr.mfp-colgroups th.mfp-roll { background:#3b3044; }
body[data-shell="editorial"] .mfp-premium .mfp-grid thead tr.mfp-colgroups th.mfp-fy { background:var(--mfp-head-deep); color:#cdc0af; }
/* The names row loses its top border under the band so the two read as one header. */
body[data-shell="editorial"] .mfp-premium .mfp-grid thead tr.mfp-colgroups + tr th { border-top:0; }

/* ---- The section chip stops stair-stepping ---------------------------------------------------------
   The dark chip ran to the end of the frozen column and then stopped dead, with a pale fill continuing
   across the remaining ~1500px. It read as a background that failed to paint. Now the whole row is one
   band: the chip stays darkest, the fill carries the same family so the edge is a step in tone rather
   than a hard boundary between two unrelated surfaces. */
body[data-shell="editorial"] .mfp-premium .mfp-grid tbody.mfp-blk .mfp-mhead .mfp-mhead-fill {
  background:#e0d7c6!important;
  border-bottom:1px solid var(--mfp-rule-strong);
  box-shadow:inset 0 1px 0 #f2ece1;
}
body[data-shell="editorial"] .mfp-premium .mfp-grid tbody.mfp-blk .mfp-mhead .mfp-mcol {
  border-bottom:1px solid var(--mfp-rule-strong);
}

/* The page title, carrying the type the module select used to wear — minus the chevron and the
   duplicated navigation behind it. The strip above is the switcher. */
body[data-shell="editorial"] .mfp-workbook-title {
  margin:0; padding:0;
  color:#2b202e;
  /* Work-screen (grid/workbench) titles are SANS, not serif — Will's standing call (2026-08-11, again
     on the MFP 2026-08-21): the serif title doesn't land on a workbench. */
  font-family:"Instrument Sans",Arial,sans-serif;
  font-size:20px; font-weight:650; letter-spacing:-.015em; line-height:1.15;
  white-space:nowrap;
}

/* ---- Doors under Retail ----------------------------------------------------------------------------
   Store rows sit one indent inside the channel they roll into, so the hierarchy is readable without a
   second colour or a badge. Same caret affordance the grid already used for the month drill. */
body[data-shell="editorial"] .mfp-premium .mfp-store-caret {
  display:inline-block; width:13px; margin-right:2px; cursor:pointer;
  color:#8d8578; font-size:9px; vertical-align:1px;
}
body[data-shell="editorial"] .mfp-premium .mfp-store-caret:hover { color:#4b2a63; }
body[data-shell="editorial"] .mfp-premium .mfp-grid tr.mfp-storerow .mfp-rlabel {
  padding-left:34px; font-size:11px; color:var(--mfp-ink-2);
}
/* A hairline down the label column marks the doors as belonging to the row above rather than being
   four more peers of Ecom and Wholesale. */
body[data-shell="editorial"] .mfp-premium .mfp-grid tr.mfp-storerow .mfp-rlabel::before {
  content:""; position:absolute; left:22px; top:0; bottom:0; width:1px; background:#ddd2be;
}
body[data-shell="editorial"] .mfp-premium .mfp-grid tr.mfp-storerow .mfp-rlabel { position:relative; }

/* Locations tab header — same masthead shape as the other secondary surfaces. */
body[data-shell="editorial"] .mfp-stores-head { align-items:flex-start; gap:18px; }
body[data-shell="editorial"] .mfp-stores-note {
  display:block; margin-top:3px; color:#8d8578; font-size:10.5px;
}
body[data-shell="editorial"] .mfp-premium .mfp-grid tbody.mfp-blk tr.mfp-wp-total td { border-top:1px solid var(--mfp-rule-strong); }

/* The measure switcher on Locations. It was inheriting the generic .seg-btn active state — a green
   pill, the one colour on this screen that is supposed to mean "variance up". Same quiet treatment as
   the view switcher in the command bar: it says where you are, it is not the primary action. */
body[data-shell="editorial"] .mfp-stores-head { flex-wrap:nowrap; }
/* Applies to BOTH the Locations measure switcher and the Item Hierarchy level switcher — the same
   control doing the same job. Its generic active state was a filled green pill, and green on these
   screens means "variance up". */
body[data-shell="editorial"] .mfp-hier-viewseg {
  display:inline-flex; gap:2px; padding:3px; flex-wrap:nowrap; white-space:nowrap;
  background:#e9e1d3; border:1px solid #ddd2be; border-radius:8px;
}
body[data-shell="editorial"] .mfp-hier-viewseg .seg-btn {
  padding:5px 11px; border:0; border-radius:6px; background:none;
  color:#6b6255; font-size:11.5px; font-weight:500; white-space:nowrap; cursor:pointer;
}
body[data-shell="editorial"] .mfp-hier-viewseg .seg-btn.active {
  background:#fffdf8!important; color:#2f2536!important; font-weight:650;
  box-shadow:0 1px 2px rgba(34,28,20,.12);
}
body[data-shell="editorial"] .mfp-stores-head .mfp-workbook-title { white-space:nowrap; }
body[data-shell="editorial"] .mfp-stores-note { max-width:none; white-space:nowrap; }

/* ===================================================================================================
   LEDGER TONE, SHELL-WIDE
   ---------------------------------------------------------------------------------------------------
   The palette was introduced on the MFP grid and its page background scoped to :has(.mfp-premium), so
   exactly the screens I was looking at turned warm and every other screen stayed on the old cool grey.
   Class Plan, Reconciliation, Open to Buy, Item Master, Vendors and Data Sources were all still on the
   previous background — a visibly two-tone app, and only found by sweeping all thirteen screens rather
   than judging the one in front of me. Tokens live on the shell now so any screen can reach them.
   =================================================================================================== */
body[data-shell="editorial"] {
  --mfp-paper:#f6f4ef;
  --mfp-cell:#ffffff;
  --mfp-label:#faf7f1;
  --mfp-surface:#f3efe6;
  --mfp-surface-year:#ece6d9;
  --mfp-rule:#e5e0d5;
  --mfp-rule-strong:#c9c1b0;
  --mfp-head:#2f2536;
  --mfp-head-deep:#241c2b;
  --mfp-head-ink:#e9dfcd;
  --mfp-ink:#16130f;
  --mfp-ink-2:#3a352d;
  --mfp-ink-3:#6b655c;
  --mfp-ink-4:#938c81;
  --mfp-pos:#03684a;
  --mfp-neg:#8a2f10;
}
body[data-shell="editorial"] .view { background:var(--mfp-paper); }
/* Cards and panels on the non-grid screens sit ON the paper, so they need a surface of their own or
   they disappear into it. */
body[data-shell="editorial"] .view .afa-card,
body[data-shell="editorial"] .view .afa-panel,
body[data-shell="editorial"] .view .afa-im-section,
body[data-shell="editorial"] .view .afa-grid-wrap,
body[data-shell="editorial"] .view .av-card {
  background:var(--mfp-cell);
  border-color:var(--mfp-rule);
}
/* ---- The two greens that survived the palette pass ------------------------------------------------
   The saved chip and every generic segmented control kept a green active state. Green on these screens
   means variance up; using it for "this tab is selected" and "your work is saved" spends the one
   semantic colour on two things that carry no meaning. Both measured 1:1 against their own ground in
   the sweep — literally invisible text — because the chip's fill and its ink were the same family. */
body[data-shell="editorial"] .plan-save.ok {
  color:#2f2536; background:#e9e1d3; border:1px solid #ddd2be;
}
body[data-shell="editorial"] .plan-save.ok::before { background:var(--mfp-pos); }
body[data-shell="editorial"] .plan-save.dirty { color:#7a5a1e; background:#f6eeda; border:1px solid #e4d5b0; }
body[data-shell="editorial"] .view .seg .seg-btn.active,
body[data-shell="editorial"] .view .seg-btn.active {
  background:#fffdf8!important; color:#2f2536!important; font-weight:650;
  box-shadow:0 1px 2px rgba(34,28,20,.12); border-color:#ddd2be;
}
body[data-shell="editorial"] .view .seg { background:#e9e1d3; border:1px solid #ddd2be; }
body[data-shell="editorial"] .view .seg .seg-btn { color:#6b6255; }

/* ---- The OTB grid gets the same header band ---------------------------------------------------------
   The dark header rules were scoped to .mfp-premium .mfp-grid, so on Open to Buy the twelve month
   columns sat on the plum band while Q1-H2 and YEAR stayed pale — a header that changes colour halfway
   across. Same treatment, same reason the roll/fy overrides exist: those fills apply to thead as well
   as tbody, so without them the aggregate labels come out cream on tan and vanish. */
body[data-shell="editorial"] .otb-grid thead th {
  background:var(--mfp-head)!important; color:var(--mfp-head-ink)!important; border-color:#453a4c!important;
}
body[data-shell="editorial"] .otb-grid thead th.mfp-mcol { background:var(--mfp-head-deep)!important; }
body[data-shell="editorial"] .otb-grid thead th.mfp-roll { background:#3b3044!important; border-left-color:#4d4157!important; }
body[data-shell="editorial"] .otb-grid thead th.mfp-fy { background:var(--mfp-head-deep)!important; border-left-color:#4d4157!important; }
body[data-shell="editorial"] .otb-grid .mfp-roll { background:var(--mfp-surface); border-left-color:var(--mfp-rule); }
body[data-shell="editorial"] .otb-grid .mfp-fy { background:var(--mfp-surface-year); border-left-color:var(--mfp-rule-strong); }
/* Badges that sat on their own fill and lost their ink to it. Measured 1:1 — the chip and its text the
   same colour, so the label was invisible on the very rows it was labelling. */
body[data-shell="editorial"] .mfp-seedbadge {
  color:#7a6f52!important; background:#f7f2e4!important; border:1px solid #e6dcc4!important;
}
body[data-shell="editorial"] .mfp-editbadge {
  color:#5c5347!important; background:#efe9dd!important; border:1px solid #ddd2be!important;
}
body[data-shell="editorial"] .mfp-editbadge.derived { color:#7d7264!important; background:#f2ede3!important; }

/* ---- Scenario composer: several changes at once ----------------------------------------------------
   The sentence is the input and the chips are what it produced. Three dropdowns could only ever
   describe one move, so a scenario like "Q2 up 40 and December down 10" needed two passes and lost
   the first one. */
body[data-shell="editorial"] .mfp-scenario-chips {
  display:flex; flex-wrap:wrap; gap:6px; align-items:center; margin:10px 0 4px;
}
body[data-shell="editorial"] .mfp-scen-chip {
  display:inline-flex; align-items:center; gap:6px; padding:4px 6px 4px 10px; border-radius:999px;
  background:#efe9dd; border:1px solid #ddd2be; color:#2f2536; font-size:11.5px; font-weight:600;
}
body[data-shell="editorial"] .mfp-scen-chip.neg { background:#f7ece7; border-color:#e2c9c9; color:#8a2f10; }
body[data-shell="editorial"] .mfp-scen-chip button {
  border:0; background:none; color:inherit; opacity:.55; cursor:pointer; font-size:11px; padding:0 2px;
}
body[data-shell="editorial"] .mfp-scen-chip button:hover { opacity:1; }
body[data-shell="editorial"] .mfp-scen-clear {
  border:0; background:none; color:#7d7264; font-size:11px; cursor:pointer; text-decoration:underline;
}
body[data-shell="editorial"] .mfp-scenario-manual { margin-top:8px; }
body[data-shell="editorial"] .mfp-scenario-manual summary {
  cursor:pointer; color:#7d7264; font-size:11px; margin-bottom:6px;
}
/* Impact block — the arithmetic first, the opinion second and only on request. */
body[data-shell="editorial"] .mfp-scenario-impact {
  margin-top:12px; padding:12px 14px; border-radius:10px;
  background:#faf6ec; border:1px solid #e4dbc8;
}
body[data-shell="editorial"] .mfp-scen-head {
  font-size:8.5px; font-weight:700; letter-spacing:.09em; text-transform:uppercase; color:#8d8578; margin-bottom:8px;
}
body[data-shell="editorial"] .mfp-scen-line {
  display:grid; grid-template-columns:1fr auto auto; gap:12px; align-items:baseline;
  padding:4px 0; border-bottom:1px solid #efe7d8; font-size:12px; color:#3a352d;
}
body[data-shell="editorial"] .mfp-scen-line:last-of-type { border-bottom:0; }
body[data-shell="editorial"] .mfp-scen-line b { color:#16130f; font-weight:650; font-variant-numeric:tabular-nums; }
body[data-shell="editorial"] .mfp-scen-line em { font-style:normal; font-size:11px; font-variant-numeric:tabular-nums; }
body[data-shell="editorial"] .mfp-scen-ask { margin-top:10px; }
body[data-shell="editorial"] .mfp-scen-ai { margin-top:10px; font-size:12px; color:#3a352d; }
body[data-shell="editorial"] .mfp-scen-ai b { display:block; color:#4b2a63; font-size:9px; letter-spacing:.08em; text-transform:uppercase; margin-bottom:4px; }
body[data-shell="editorial"] .mfp-scen-ai p { margin:0; line-height:1.5; }
body[data-shell="editorial"] .mfp-scen-ai.loading { color:#8d8578; font-style:italic; }

/* ---- Dark band, part two: the BODY rows ------------------------------------------------------------
   The first dark-band pass only swept `thead` and `.mfp-mhead`, so every dark row inside tbody kept an
   ink chosen for a pale background. On the item hierarchy that is the measure label, the drill chip,
   the caret and the variance colours — measured between 1.24:1 and 2.14:1, i.e. from hard to read to
   effectively invisible. The chips are the worst of it: purple on plum.
   Scoped to rows that actually carry the dark fill so nothing on a pale row is touched. */
body[data-shell="editorial"] .mfp-grid tbody tr.mfp-mrow .mfp-mlabel,
body[data-shell="editorial"] .mfp-grid tbody tr.mfp-l1 .mfp-mlabel,
body[data-shell="editorial"] .mfp-grid .mfp-mcol .mfp-mlabel {
  color:var(--mfp-head-ink)!important;
}
body[data-shell="editorial"] .mfp-grid tbody tr.mfp-mrow .mfp-hier-caret,
body[data-shell="editorial"] .mfp-grid tbody tr.mfp-l1 .mfp-hier-caret {
  color:#cbbcd6!important;
}
/* The "categories" drill chip sat purple-on-plum. Give it a light chip of its own — the same move the
   brand contract makes for jewels on dark: the colour lives in the chip, not the ink. */
body[data-shell="editorial"] .mfp-grid tbody tr.mfp-mrow .mfp-item-drill,
body[data-shell="editorial"] .mfp-grid tbody tr.mfp-l1 .mfp-item-drill,
body[data-shell="editorial"] .mfp-item-drill {
  color:#2f2536!important; background:#e6dcf0!important; border:1px solid #cbbcd6!important;
  border-radius:999px; padding:1px 7px;
}
/* Variance colours are tuned for cream. On the dark band they need the light end of each hue. */
body[data-shell="editorial"] .mfp-grid tbody tr.mfp-mrow .mfp-pos,
body[data-shell="editorial"] .mfp-grid tbody tr.mfp-l1 .mfp-pos { color:#6ee7b7!important; }
body[data-shell="editorial"] .mfp-grid tbody tr.mfp-mrow .mfp-neg,
body[data-shell="editorial"] .mfp-grid tbody tr.mfp-l1 .mfp-neg { color:#fca5a5!important; }
/* The edit badge is styled for a pale surface; on the dark band it read 1.52:1. */
body[data-shell="editorial"] .mfp-grid tbody tr.mfp-mrow .mfp-editbadge,
body[data-shell="editorial"] .mfp-grid tbody tr.mfp-l1 .mfp-editbadge,
body[data-shell="editorial"] .mfp-mcol .mfp-editbadge {
  color:#e9dfcd!important; background:rgba(255,255,255,.14)!important; border-color:rgba(255,255,255,.24)!important;
}
/* Undo / redo were pale grey on cream at 1.79:1 — controls a planner reaches for after a mistake. */
body[data-shell="editorial"] .mfp-command-icon { color:#6b6255!important; }
body[data-shell="editorial"] .mfp-command-icon:hover { color:#2f2536!important; }
/* Vendors carried slate-blue text from the old cool palette onto the warm ground (2.05:1). */
body[data-shell="editorial"] .av-dept,
body[data-shell="editorial"] .av-sub,
body[data-shell="editorial"] .av-drill { color:#6b6255!important; }
/* "—" placeholders were lighter than the rule beneath them. Muted is fine; invisible is not. */
body[data-shell="editorial"] .na { color:#8a8177!important; }

/* ---- Correction: the dark cell is .mfp-mcol, not the row -------------------------------------------
   The block above guessed at tr.mfp-mrow / tr.mfp-l1. Neither exists — the dark band is td.mfp-mcol
   inside tr.mfp-mhead, so half those rules matched nothing and the caret and variance colours stayed
   at 1.32:1 and 2.14:1. Target the cell that actually carries the fill; anything inside it is on dark
   by definition, which is a smaller and more honest rule than enumerating row types. */
body[data-shell="editorial"] .mfp-mcol .mfp-hier-caret { color:#cbbcd6!important; }
body[data-shell="editorial"] .mfp-mcol .mfp-pos { color:#6ee7b7!important; }
body[data-shell="editorial"] .mfp-mcol .mfp-neg { color:#fca5a5!important; }
body[data-shell="editorial"] .mfp-mcol .mfp-chan-share { color:#cbbcd6!important; }
body[data-shell="editorial"] .mfp-mcol .mfp-item-drill {
  color:#2f2536!important; background:#e6dcf0!important; border:1px solid #cbbcd6!important;
}

/* ---- Colour swatches: the label has to survive the swatch --------------------------------------------
   The swatch background IS the product colour, and the colour name sits on it in white. That works for
   Black/Multi and fails completely for Off White, Oyster and every pale family — measured 1.26:1, which
   is white on white. Picking an ink per colour would need luminance maths at render time and would still
   miss a mid-tone. A scrim behind the label is one rule and is correct on every swatch, including ones
   nobody has merchandised yet. */
body[data-shell="editorial"] .afa-card-swatch { position:relative; }
body[data-shell="editorial"] .afa-card-swatch > span {
  position:relative; z-index:1;
  color:#fff!important;
  background:rgba(23,19,15,.62);
  padding:3px 9px; border-radius:999px;
  font-weight:600; letter-spacing:.01em;
  box-shadow:0 1px 3px rgba(0,0,0,.28);
  backdrop-filter:saturate(120%) blur(1px);
}

/* ---- Closed periods should recede, not disappear ----------------------------------------------------
   Elapsed months on Open to Buy are deliberately dimmed — they are shut, and a planner should read past
   them to the open window. But #aba39d on cream is 2.02:1, which is not "recessed", it is unreadable;
   the numbers are still real and someone will want to check one. Taken to a tone that still reads as
   clearly secondary against the live ink (#16130f) while actually being legible. */
body[data-shell="editorial"] .mfp-otb-past,
body[data-shell="editorial"] td.num.mfp-otb-past { color:#8a8177!important; }
body[data-shell="editorial"] td.num.mfp-otb-past.mfp-roll { color:#7d746a!important; }
/* Variance greens/reds on the dark band, wherever they appear outside the grid's measure cells. */
body[data-shell="editorial"] .mfp-mcol .up,
body[data-shell="editorial"] .cp-daily-command .up,
body[data-shell="editorial"] [class*="cp-daily"] .up { color:#6ee7b7!important; }
body[data-shell="editorial"] .mfp-mcol .down,
body[data-shell="editorial"] [class*="cp-daily"] .down { color:#fca5a5!important; }
/* The "flat"/no-change tone and the scaffold/source badges were pale grey on pale ground. */
body[data-shell="editorial"] .mfp-flat { color:#6b6255!important; }
body[data-shell="editorial"] .src.design,
body[data-shell="editorial"] .afa-scaffold-badge { color:#6b6255!important; }

/* ---- Correction: that last .up/.down rule was far too broad -----------------------------------------
   `[class*="cp-daily"] .up` was meant for the one dark block on Daily Sales and instead matched the
   whole section, painting the light-on-dark mint onto spans sitting on cream. It took .up from 2.55:1
   to 1.35:1 — I made the exact problem I was fixing worse, on more elements. The lesson is that a
   "dark" rule must be scoped to something that IS dark, never to a section that merely contains
   something dark. .mfp-mcol qualifies because it carries the fill; a section wrapper does not. */
body[data-shell="editorial"] [class*="cp-daily"] .up,
body[data-shell="editorial"] [class*="cp-daily"] .down,
body[data-shell="editorial"] .cp-daily-command .up { color:inherit; }
/* On light grounds the deep ledger pair is correct and passes comfortably. */
body[data-shell="editorial"] #view .up,
body[data-shell="editorial"] #view small.up,
body[data-shell="editorial"] #view span.up { color:#03684a!important; }
body[data-shell="editorial"] #view .down,
body[data-shell="editorial"] #view small.down,
body[data-shell="editorial"] #view span.down { color:#8a2f10!important; }
/* Only genuinely dark cells get the light pair, and they win by being more specific. */
body[data-shell="editorial"] .mfp-mcol .up,
body[data-shell="editorial"] .mfp-mcol span.up { color:#6ee7b7!important; }
body[data-shell="editorial"] .mfp-mcol .down,
body[data-shell="editorial"] .mfp-mcol span.down { color:#fca5a5!important; }
/* The last of the Pulse micro-copy: 7.5px greys that were never going to pass at that size. */
body[data-shell="editorial"] #view small,
body[data-shell="editorial"] .cp-plan-label { color:#6b6255!important; }

/* The Daily Sales hero tile is the one dark block on that screen — it is not .mfp-mcol, so the
   light-on-dark pair has to name it explicitly rather than be inferred from a wrapper. */
body[data-shell="editorial"] .cp-daily-hero .up,
body[data-shell="editorial"] .cp-daily-hero span.up { color:#6ee7b7!important; }
body[data-shell="editorial"] .cp-daily-hero .down,
body[data-shell="editorial"] .cp-daily-hero span.down { color:#fca5a5!important; }
body[data-shell="editorial"] .cp-daily-hero small { color:rgba(233,223,205,.82)!important; }
/* Source lines and small labels: the quietest text in the app, but still text someone reads to check
   where a number came from. Lifted to pass at their size rather than left as decoration. */
body[data-shell="editorial"] .mfp-src { color:#6b6255!important; }
body[data-shell="editorial"] .mpicker-lbl,
body[data-shell="editorial"] #view label { color:#6b6255!important; }
body[data-shell="editorial"] td.num.mfp-fy { color:#3a352d!important; }

/* ---- Specificity, not order ------------------------------------------------------------------------
   The .cp-daily-hero rules above never applied. `#view span.up` carries an ID and therefore beats
   `.cp-daily-hero span.up` regardless of which comes last in the file — so the light-ground green kept
   winning on the one dark tile. Source order only decides ties. Give the dark-block rules the same ID
   plus a class and they win on their own merits. */
body[data-shell="editorial"] #view .cp-daily-hero .up,
body[data-shell="editorial"] #view .cp-daily-hero span.up { color:#6ee7b7!important; }
body[data-shell="editorial"] #view .cp-daily-hero .down,
body[data-shell="editorial"] #view .cp-daily-hero span.down { color:#fca5a5!important; }
body[data-shell="editorial"] #view .cp-daily-hero label,
body[data-shell="editorial"] #view .cp-daily-hero small { color:rgba(233,223,205,.86)!important; }
body[data-shell="editorial"] #view .mfp-mcol .up { color:#6ee7b7!important; }
body[data-shell="editorial"] #view .mfp-mcol .down { color:#fca5a5!important; }
body[data-shell="editorial"] #view .mfp-mcol label { color:var(--mfp-head-ink)!important; }

/* The "why" drill arrow sits on the tan header fill, in the cream reserved for the dark band — a
   control the planner is meant to notice, rendered at 1.38:1. */
body[data-shell="editorial"] #view .mfp-mhead-fill .mfp-why,
body[data-shell="editorial"] #view .mfp-mhead-fill .mfp-why span { color:#5c5347!important; }
body[data-shell="editorial"] #view .mfp-mhead-fill .mfp-why:hover,
body[data-shell="editorial"] #view .mfp-mhead-fill .mfp-why:hover span { color:#2f2536!important; }

/* The unit basis, on the dark hierarchy band. Set quieter than the mix figure beside it — it is a
   qualification, not a number, and it must not compete with the one it qualifies. */
body[data-shell="editorial"] .mfp-mcol .mfp-chan-basis {
  display:block;
  margin-top:2px;
  color:#a294ad!important;
  font-size:9px;
  font-style:italic;
  letter-spacing:.02em;
  text-transform:none;
}

/* ---- Open Purchase Orders ---------------------------------------------------------------------
   Share bars encode share OF THE BOOK, not share of the biggest row. A full bar on the leading
   vendor reads as "this is the whole order book" and it never is — the same mistake the contribution
   bars on Pulse make. */
body[data-shell="editorial"] .po-bar { min-width:150px; }
body[data-shell="editorial"] .po-bar i {
  display:inline-block; height:5px; border-radius:3px;
  background:var(--cp-home-aubergine,#4a2d5c); vertical-align:middle;
}
body[data-shell="editorial"] .po-bar span { margin-left:7px; font-size:10px; color:var(--mfp-ink-3,#6b655c); }
body[data-shell="editorial"] .po-ages .seg-btn.po-stale { color:var(--mfp-neg,#8a2f10); }
body[data-shell="editorial"] .po-ages .seg-btn.po-stale.active { color:#fff; background:var(--mfp-neg,#8a2f10); }
/* Late rows tinted, stale rows tinted harder — the eye should find the dead commitments first. */
body[data-shell="editorial"] tr.po-row-late td { background:rgba(138,47,16,.045); }
body[data-shell="editorial"] tr.po-row-stale td { background:rgba(138,47,16,.10); }
body[data-shell="editorial"] .po-item { max-width:280px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
body[data-shell="editorial"] .po-detail { max-height:620px; overflow:auto; }
body[data-shell="editorial"] .po-more { padding:9px 2px; font-size:11px; color:var(--mfp-ink-3,#6b655c); }
/* mfp-neg carries a cell tint from the OTB grid. Here nearly every vendor has something past due, so
   the tint painted two entire columns solid pink and stopped meaning anything. Colour only. */
body[data-shell="editorial"] .po-summary .mfp-neg { background:transparent!important; }

/* ===== Seviroli Business Health cockpit (sev-today, the tenant landing) ===== */
body[data-shell="editorial"] .sev-today-grid {
  display:grid;
  grid-template-columns:minmax(0,1.45fr) minmax(320px,.55fr);
  gap:0 44px;
  padding-top:30px;
}
body[data-shell="editorial"] .sev-today-main { min-width:0; }
body[data-shell="editorial"] .sev-today-side {
  min-width:0;
  padding-left:30px;
  border-left:1px solid var(--cp-home-rule,#d8cec3);
}
body[data-shell="editorial"] .sev-today .cp-section-head {
  display:flex;
  justify-content:space-between;
  gap:16px;
  align-items:flex-end;
  margin-bottom:13px;
}
body[data-shell="editorial"] .sev-today h2 {
  margin:0 0 3px;
  color:var(--cp-home-aubergine,#2f2536);
  font-family:"Instrument Serif",Georgia,serif;
  font-size:23px;
  font-weight:400;
  letter-spacing:-.025em;
}
body[data-shell="editorial"] .sev-today .cp-section-head span { color:#847c82; font-size:10px; }
body[data-shell="editorial"] .sev-today .cp-section-head .link-btn {
  padding:4px 0 3px;
  color:#4e275f;
  background:transparent;
  border:0;
  border-bottom:1px solid #9e8ea6;
  font-size:10.5px;
  font-weight:700;
  white-space:nowrap;
  cursor:pointer;
}
body[data-shell="editorial"] .sev-today-queue { margin-top:30px; }
body[data-shell="editorial"] .sev-today-queue .table-wrap {
  background:var(--cp-home-surface,#fffdfa);
  border:1px solid var(--cp-home-rule-soft,#e8e0d7);
  box-shadow:0 10px 28px rgba(55,43,52,.045);
}
body[data-shell="editorial"] .sev-today-queue table { font-size:12px; }
body[data-shell="editorial"] .sev-ops { margin-top:30px; }
body[data-shell="editorial"] .sev-ops-tile {
  display:block;
  width:100%;
  padding:12px 0 13px;
  text-align:left;
  background:transparent;
  border:0;
  border-bottom:1px solid var(--cp-home-rule,#d8cec3);
  cursor:pointer;
}
body[data-shell="editorial"] .sev-ops-tile .sev-ops-label {
  display:block;
  color:#756d74;
  font-size:9px;
  font-weight:760;
  letter-spacing:.13em;
  text-transform:uppercase;
}
body[data-shell="editorial"] .sev-ops-tile .sev-ops-go {
  float:right;
  color:#4e275f;
  font-size:9px;
  font-weight:740;
  letter-spacing:.06em;
}
body[data-shell="editorial"] .sev-ops-tile strong {
  display:block;
  margin:5px 0 2px;
  color:var(--cp-home-aubergine,#2f2536);
  font-family:"Instrument Serif",Georgia,serif;
  font-size:19px;
  font-weight:400;
  letter-spacing:-.02em;
}
body[data-shell="editorial"] .sev-ops-tile.alert strong { color:#8a2030; }
body[data-shell="editorial"] .sev-ops-tile small { color:#8b8389; font-size:10px; }
body[data-shell="editorial"] .sev-today .cp-plan-comps { display:flex; gap:10px; flex-wrap:wrap; }
@media(max-width:1120px){
  body[data-shell="editorial"] .sev-today-grid { grid-template-columns:1fr; }
  body[data-shell="editorial"] .sev-today-side {
    margin-top:26px;
    padding-left:0;
    padding-top:24px;
    border-left:0;
    border-top:1px solid var(--cp-home-rule,#d8cec3);
  }
}
/* sev-today critic-pass fixes: named Emphasize affordance + emphasized legend entry */
body[data-shell="editorial"] .sev-today .sev-emph { display:flex; align-items:center; gap:8px; }
body[data-shell="editorial"] .sev-today .sev-emph-lbl {
  color:#847c82;
  font-size:8.5px;
  font-weight:760;
  letter-spacing:.13em;
  text-transform:uppercase;
}
body[data-shell="editorial"] .sev-today .cp-plan-legend span.on { color:#2f2536; font-weight:720; }
/* Canvas parity (client finding): the cockpit was rendering as a lighter, centered 1560px
   column against the fleet paper. It sits on the SAME paper as every other Seviroli screen —
   no home-cockpit wash, no centered max-width column. Scoped to sev-today only; the FV/NWO
   home cockpits keep their own canvas. */
body[data-shell="editorial"]:has(.cp-exec.sev-today) .view { background:var(--mfp-paper,#ece5d7); }
body[data-shell="editorial"] .cp-exec.sev-today { max-width:none; }

/* ===== Seviroli Work Queue — quadrant action cockpit ===== */
body[data-shell="editorial"] .sev-wq { color:var(--mfp-ink,#16130f); }
body[data-shell="editorial"] .sev-wq-tiles {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
  margin:4px 0 20px;
}
body[data-shell="editorial"] .sev-wq-tile {
  text-align:left;
  padding:13px 16px 12px;
  background:var(--mfp-cell,#fffdfa);
  border:1px solid var(--mfp-rule,#e0d7c4);
  border-top:3px solid #361a4c;
  border-radius:0;
  cursor:pointer;
}
body[data-shell="editorial"] .sev-wq-tile.alert { border-top-color:#8a2030; }
body[data-shell="editorial"] .sev-wq-tile strong {
  display:block;
  color:var(--mfp-head,#2f2536);
  font-family:"Instrument Serif",Georgia,serif;
  font-size:27px;
  font-weight:400;
  line-height:1.05;
  letter-spacing:-.02em;
}
body[data-shell="editorial"] .sev-wq-tile.alert strong { color:#8a2030; }
body[data-shell="editorial"] .sev-wq-tile span {
  display:block;
  margin-top:4px;
  color:#3a352d;
  font-size:11px;
  font-weight:760;
  letter-spacing:.09em;
  text-transform:uppercase;
}
body[data-shell="editorial"] .sev-wq-tile small { display:block; margin-top:3px; color:#6b655c; font-size:10.5px; line-height:1.4; }
body[data-shell="editorial"] .sev-wq-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
  align-items:start;
}
body[data-shell="editorial"] .sev-wq-card {
  min-width:0;
  padding:15px 18px 6px;
  background:var(--mfp-cell,#fffdfa);
  border:1px solid var(--mfp-rule,#e0d7c4);
  box-shadow:0 10px 28px rgba(55,43,52,.045);
}
body[data-shell="editorial"] .sev-wq-card-head {
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:14px;
  padding-bottom:11px;
  border-bottom:1px solid var(--mfp-rule-strong,#c2b69f);
}
body[data-shell="editorial"] .sev-wq-card-head h2 {
  margin:0 0 3px;
  color:var(--mfp-head,#2f2536);
  font-family:"Instrument Serif",Georgia,serif;
  font-size:19px;
  font-weight:400;
  letter-spacing:-.02em;
}
body[data-shell="editorial"] .sev-wq-card-head > div > span { display:block; color:#6b655c; font-size:10.5px; line-height:1.45; }
body[data-shell="editorial"] .sev-wq-card-head .link-btn {
  padding:4px 0 3px;
  color:#4e275f;
  background:transparent;
  border:0;
  border-bottom:1px solid #9e8ea6;
  font-size:10.5px;
  font-weight:700;
  white-space:nowrap;
  cursor:pointer;
}
body[data-shell="editorial"] .sev-wq-row {
  display:flex;
  align-items:center;
  gap:14px;
  width:100%;
  padding:10px 2px;
  text-align:left;
  background:transparent;
  border:0;
  border-bottom:1px solid var(--mfp-rule,#e0d7c4);
  cursor:pointer;
}
body[data-shell="editorial"] .sev-wq-card .sev-wq-row:last-of-type { border-bottom:0; }
body[data-shell="editorial"] .sev-wq-row:hover { background:rgba(54,26,76,.04); }
body[data-shell="editorial"] .sev-wq-row-main { flex:1; min-width:0; }
body[data-shell="editorial"] .sev-wq-row-main strong {
  display:block;
  color:#211b22;
  font-size:12.5px;
  font-weight:650;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
body[data-shell="editorial"] .sev-wq-row-main small { display:block; margin-top:2px; color:#6b655c; font-size:11px; line-height:1.45; }
body[data-shell="editorial"] .sev-wq-row-main small b { color:#3a352d; font-weight:700; }
body[data-shell="editorial"] .sev-wq-row-impact { flex:0 0 auto; min-width:74px; text-align:right; }
body[data-shell="editorial"] .sev-wq-row-impact b {
  display:block;
  color:var(--mfp-head,#2f2536);
  font-size:14px;
  font-weight:740;
  font-variant-numeric:tabular-nums;
}
body[data-shell="editorial"] .sev-wq-row.hot .sev-wq-row-impact b { color:#8a2030; }
body[data-shell="editorial"] .sev-wq-row-impact small { display:block; color:#938c81; font-size:9.5px; white-space:nowrap; }
body[data-shell="editorial"] .sev-wq-row-go { flex:0 0 auto; color:#9e8ea6; font-size:13px; }
body[data-shell="editorial"] .sev-wq-empty { padding:14px 2px; color:#6b655c; font-size:12px; }
body[data-shell="editorial"] .sev-wq .cp-source { margin-top:16px; }
@media(max-width:1180px){
  body[data-shell="editorial"] .sev-wq-tiles { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
  body[data-shell="editorial"] .sev-wq-grid { grid-template-columns:1fr; }
}

/* ===================================================================================================
   BASICS PASS (2026-08-21, takeover) — fix the measured defects, not the vibe.
   Every rule here traces to a screenshot + DOM measurement at 1000px (the client's real width) or a
   cold review at 1920px. This block is the LAST layer and is authoritative for what it touches; when
   a rule here conflicts with an earlier "premium" layer, the earlier layer is dead — delete it there
   rather than adding a new layer after this one. =================================================== */

/* 1 · Command bar: controls were silently scroll-clipped ("COMP." / half the bar invisible at 1000px:
   .mfp-command-left was overflow-x:auto with the scrollbar hidden). Controls wrap; nothing hides. */
body[data-shell="editorial"] .mfp-commandbar { flex-wrap:wrap; row-gap:6px; }
body[data-shell="editorial"] .mfp-command-left {
  flex-wrap:wrap; overflow:visible; row-gap:6px; scrollbar-width:auto;
}
/* 2 · The version select clipped its own default value ("Working Plai"). It sizes to its content. */
body[data-shell="editorial"] .mfp-commandbar .plan-ver-sel { max-width:none!important; width:auto; }
/* 3 · The tab strip clipped "Item Hierarchy" against the data-freshness pill (the tabs live in
   .mfp-workbook-head — a 3-column grid whose middle track runs out at ~1000px). Tabs wrap; below
   1240px the head stacks tabs onto their own full-width row so nothing overlays them. */
body[data-shell="editorial"] .mfp-workbook-head .mfp-tabs,
body[data-shell="editorial"] .mfp-workspace-head .mfp-tabs { flex-wrap:wrap; overflow:visible; }
@media(max-width:1240px) {
  body[data-shell="editorial"] .mfp-workbook-head { grid-template-columns:1fr auto; row-gap:0; }
  body[data-shell="editorial"] .mfp-workbook-head .mfp-tabs { grid-column:1/-1; grid-row:2; min-height:36px; }
}

/* 4 · The grid scrolls horizontally but gave no sign of it: numbers appeared amputated mid-digit
   against the sticky Year column. A visible thin scrollbar + a real slide-under shadow on the sticky
   edge make the scroll legible. */
/* (Scrollbar itself: the block at ~3300 already forces a real, space-taking scrollbar via
   scrollbar-width:auto + ::-webkit-scrollbar. Do NOT set scrollbar-width:thin here — any non-auto
   value makes Chrome ignore the ::-webkit-scrollbar rules and fall back to overlay scrollbars,
   which is precisely the invisible-scrollbar bug that block fixed.) */
body[data-shell="editorial"] .mfp-premium .mfp-grid .mfp-fy {
  box-shadow:-2px 0 0 var(--mfp-rule-strong), -18px 0 22px -2px rgba(28,25,31,.30);
}

/* 5 · Weight hierarchy. With the variable font actually loaded (see retail-afa-v2.html), the grid can
   finally speak below bold: detail rows sit at 500, only totals carry weight. Before this, 560-680
   all snapped to 600/700 and the grid was a wall of bold where totals couldn't pop. */
body[data-shell="editorial"] .mfp-premium .mfp-grid tbody td { font-weight:500; }
body[data-shell="editorial"] .mfp-premium .mfp-grid tbody tr.mfp-wp-total td { font-weight:650!important; }
body[data-shell="editorial"] .mfp-premium .mfp-grid tbody .mfp-rlabel { font-weight:500; }
body[data-shell="editorial"] .mfp-premium .mfp-grid tbody tr.mfp-wp-total .mfp-rlabel { font-weight:640; }
/* Var % rows were the lowest-contrast text on the page on the exact row a planner reads first. */
body[data-shell="editorial"] .mfp-premium .mfp-varrow td { font-weight:520; }
body[data-shell="editorial"] .mfp-premium .mfp-varrow .pos, 
body[data-shell="editorial"] .mfp-premium .mfp-grid .mfp-varrow td.pos { color:#0d6a4a!important; }
body[data-shell="editorial"] .mfp-premium .mfp-varrow .neg,
body[data-shell="editorial"] .mfp-premium .mfp-grid .mfp-varrow td.neg { color:#ab3a30!important; }

/* 6 · One control grammar in the command bar: one height, one radius, one primary. "Reset working
   plan" no longer shouts in red-outline next to the dark primary — it is a quiet ghost that turns
   red on hover, which is when you mean it. */
body[data-shell="editorial"] .mfp-commandbar .plan-ver,
body[data-shell="editorial"] .mfp-commandbar .mfp-view-seg,
body[data-shell="editorial"] .mfp-commandbar .primary-btn,
body[data-shell="editorial"] .mfp-commandbar .secondary-btn { min-height:30px; border-radius:7px; }
body[data-shell="editorial"] .mfp-commandbar .secondary-btn {
  border:1px solid var(--mfp-rule); background:var(--cp-surface,#fff); color:var(--mfp-ink-2,#4a4442);
}
body[data-shell="editorial"] .mfp-commandbar .secondary-btn.danger,
body[data-shell="editorial"] .mfp-commandbar .plan-reset {
  color:var(--mfp-ink-3,#6b645c); border-color:var(--mfp-rule); background:transparent;
}
body[data-shell="editorial"] .mfp-commandbar .secondary-btn.danger:hover,
body[data-shell="editorial"] .mfp-commandbar .plan-reset:hover { color:#a33530; border-color:#c9958f; }

/* 7 · Exception strip: chips wrap on a consistent grid instead of staggering under the label. */
body[data-shell="editorial"] .mfp-exc-strip { display:flex; flex-wrap:wrap; align-items:center; gap:7px 8px; }
body[data-shell="editorial"] .mfp-exc-strip .mfp-exc-tag { flex:none; }

/* 8 · OTB target-cover input read "17.2weeks" — value and unit welded together, baselines mismatched. */
body .otb-control label { display:inline-flex; align-items:baseline; gap:6px; }
body .otb-control label b { font-weight:600; }

/* 9 · OTB grid: adjacent rows rendered at two font sizes (the old compact 9.5px OTB rules interleave
   with the 11.5px premium-grid rules depending on selector specificity, row by row). One size for the
   whole grid. */
body[data-shell="editorial"] .mfp-premium .mfp-grid.otb-grid td { font-size:10.5px; }
body[data-shell="editorial"] .mfp-premium .mfp-grid.otb-grid .mfp-in { font-size:10.5px; height:24px; }
/* 10 · OTB totals column clipped mid-digit at the viewport edge even at 1920 — same defect the MFP
   Year column had. Pin it with the same slide-under treatment. */
body[data-shell="editorial"] .otb-grid td.mfp-fy {
  position:sticky; right:0; z-index:4;
  box-shadow:-2px 0 0 var(--mfp-rule-strong,#b8ab97), -18px 0 22px -2px rgba(28,25,31,.30);
}
body[data-shell="editorial"] .otb-grid th.mfp-fy { position:sticky; right:0; z-index:8; }

/* 11 · Round 2, from the post-fix cold review. */
/* A part-scrolled month showed severed digits next to the pinned Year column. The pinned edge now
   carries an opaque fade wide enough that a clipped sliver can't be misread as a real value; the
   hairline stays as the pane boundary. */
body[data-shell="editorial"] .mfp-premium .mfp-grid td.mfp-fy::before,
body[data-shell="editorial"] .otb-grid td.mfp-fy::before {
  content:""; position:absolute; top:0; bottom:0; pointer-events:none;
  /* Width is driven by cadGridFit (--fy-fade): wide enough to fully occlude whichever column
     straddles the pane edge, so a severed number is never readable at rest or mid-scroll. */
  width:var(--fy-fade,28px); left:calc(-1 * var(--fy-fade,28px));
  background:linear-gradient(to left, rgba(246,244,239,.98) calc(100% - 12px), rgba(246,244,239,0));
}
body[data-shell="editorial"] .mfp-premium .mfp-grid .mfp-fy {
  box-shadow:-1.5px 0 0 var(--mfp-rule-strong,#b8ab97);
}
/* The blank group-header cell above Year kept the pane hairline + fade, which dangled a rule into
   the empty band above the month headers. The boundary starts at the column-header row. */
body[data-shell="editorial"] .mfp-premium .mfp-grid thead th.mfp-colgroup.mfp-fy { border-left:0; box-shadow:none; }
body[data-shell="editorial"] .mfp-premium .mfp-grid thead th.mfp-colgroup.mfp-fy::before { content:none; }
body[data-shell="editorial"] .mfp-premium .mfp-grid thead .mfp-colgroups th { height:20px; }
/* Detail rows still read as heavy as their totals; drop them into the variable font's true light-mid
   range so the total is the unmistakable anchor of each block. */
body[data-shell="editorial"] .mfp-premium .mfp-grid tbody td { font-weight:450; }
body[data-shell="editorial"] .mfp-premium .mfp-grid .mfp-editrow .mfp-in,
body[data-shell="editorial"] .mfp-premium .mfp-grid td.mfp-in-td input.mfp-in { font-weight:480!important; }
body[data-shell="editorial"] .mfp-premium .mfp-grid tbody tr.mfp-wp-total td { font-weight:660!important; }
/* The command bar burned a whole row on the right-side group at narrow widths (flex-basis:100% on
   the left group forced it down). Let the groups flow; wrapping already handles the tight case. */
@media(max-width:1180px) {
  body[data-shell="editorial"] .mfp-command-left { flex-basis:auto; }
}

/* At narrow widths the bar's two fixed groups each claimed whole rows (three rows total, one of them
   nearly empty). Flatten the groups so every control flows into one wrapping stream. */
@media(max-width:1180px) {
  body[data-shell="editorial"] .mfp-commandbar { justify-content:flex-start; }
  body[data-shell="editorial"] .mfp-command-left,
  body[data-shell="editorial"] .mfp-command-right { display:contents; }
}

/* 12 · Will's live review pass (2026-08-21 evening). */
/* Seed chip now lives in the label cell beside the measure name; keep the frozen column from
   ballooning for it. */
body[data-shell="editorial"] .mfp-premium .mfp-mhead .mfp-mcol .mfp-seedchip { margin-left:8px; vertical-align:1px; }
/* Width fit: when the grid overflows its pane by less than ~one column, compress padding so every
   column fits and NOTHING is partially clipped at rest. cadGridFit toggles the class after measuring;
   real overflow (narrow windows) keeps the scroll + fade instead. */
body[data-shell="editorial"] .mfp-premium .mfp-tight .mfp-grid td,
body[data-shell="editorial"] .mfp-premium .mfp-tight .mfp-grid th { padding-left:7px; padding-right:7px; }
body[data-shell="editorial"] .mfp-premium .mfp-tight .mfp-grid .mfp-roll,
body[data-shell="editorial"] .mfp-premium .mfp-tight .mfp-grid .mfp-fy { min-width:80px; }

/* A header label straddling the pinned pane edge hides its text (cadGridFit toggles the class);
   the cell background stays so the band reads continuous. */
body[data-shell="editorial"] .mfp-grid thead th.mfp-gclip { color:transparent!important; }
/* Channel detail rows: the legacy .mfp-wp td bold (640) made read-only Retail/Wholesale/Unclassified
   HEAVIER than the block total while editable Ecom rendered regular - hierarchy inverted per-row.
   All channel detail rows sit at 480; only the total carries weight. */
body[data-shell="editorial"] .mfp-premium .mfp-grid tbody tr.mfp-wp:not(.mfp-wp-total) td { font-weight:480!important; }
body[data-shell="editorial"] .mfp-premium .mfp-grid tbody tr.mfp-wp:not(.mfp-wp-total) .mfp-rlabel { font-weight:520!important; }

/* 13 · The wordmark, tracked — permanently. The canonical .cp-lockup .cp-lockup-wm rule (Newsreader
   720 / 19px / -0.018em / #17141d) loses the cascade to three legacy topbar sidebar rules at (0,3,2)
   that set letter-spacing:0 at 17px — the mechanism behind "the logo keeps shifting". Golden's chrome
   injector already restates canon at higher specificity for golden/nar; this is the same restatement
   for the editorial shell. tools/shoot.js now asserts these values on every capture. */
body[data-shell="editorial"][data-layout="topbar"] .sidebar-brand strong.cp-lockup-wm,
body[data-shell="editorial"] .sidebar-brand strong.cp-lockup-wm,
body[data-shell="editorial"] .cp-lockup strong.cp-lockup-wm {
  font-family:"Newsreader",Georgia,"Times New Roman",serif;
  font-size:19px; font-weight:720; letter-spacing:-0.018em; color:#17141d;
}

/* 14 · Will's preview pass, round 2 (2026-08-22). */
/* Flat slabs, not ribbons: the lit 4px left edge + drop shadow + inset highlight made the measure
   bands read as 3D objects floating over the grid. Ornament with no job — flat ink slab. */
body[data-shell="editorial"] .mfp-premium .mfp-grid tbody.mfp-blk .mfp-mhead .mfp-mcol {
  border-left:0!important; box-shadow:none!important; background:#2f2536!important;
}
body[data-shell="editorial"] .mfp-premium .mfp-grid tbody.mfp-blk .mfp-mhead td,
body[data-shell="editorial"] .mfp-premium .mfp-grid tbody.mfp-blk .mfp-mhead .mfp-mhead-fill {
  box-shadow:none!important;
}
/* The straddling column's content blanks entirely under the veil (cadGridFit toggles the class). */
body[data-shell="editorial"] .mfp-grid td.mfp-veiled { opacity:0!important; }
/* A veiled HEADER cell keeps its background - opacity:0 punched a white hole in the dark band
   (Will's 1430px screenshot). Only its text goes. */
/* the veiled straddler reads as an overflow hint, not a broken headerless column */
body[data-shell="editorial"] .mfp-grid thead th.mfp-veiled { position:relative; }
body[data-shell="editorial"] .mfp-grid thead th.mfp-veiled::after {
  content:"\22ef"; position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  color:rgba(255,255,255,.4); font-size:13px;
}
body[data-shell="editorial"] .mfp-grid th.mfp-veiled,
body[data-shell="editorial"] .mfp-premium .mfp-grid thead th.mfp-veiled,
body[data-shell="editorial"] .otb-grid thead th.mfp-veiled { color:transparent!important; text-shadow:none!important; }
/* opacity, not color: color:transparent lost specificity fights with !important tints (Var% pos/neg
   ghosted through at 1600px); opacity:0 on the cell cannot lose one. */
/* OTB tabs join the plum accent system — the green active state collided with green-as-status. */
body[data-shell="editorial"] .otb-tabs .mfp-tab.active {
  color:#35223e; border-bottom-color:#4b2a63;
}
/* The lockup, proportioned like the site: measured against cadenceplan.com's own header at 3x, the
   app's rabbit was undersized (22px against a 19px wordmark — the site's mark carries ~1.6x the text
   presence), the mark-to-text gap cramped, and the "Cadence Plan" word gap tighter than the site's.
   Same face, wrong proportions — which is what kept reading as "the logo broke again". */
body[data-shell="editorial"] .cp-lockup { column-gap:10px; }
body[data-shell="editorial"] .cp-lockup .cp-lockup-mark { width:30px; height:30px; }
/* markup already carries a literal space between the words; only a hair more. */
/* .cp-lockup-wm is display:flex, which DISCARDS the literal space between the word spans - the gap
   was margin only (~3px, read as "CadencePlan"). Site word gap = 0.49 cap heights = ~6.5px at 19px. */
/* 3.5px, not the site's 6.5px ratio: at 19px against -0.018em tracking the ratio-true gap reads as
   a hole (Will). Optical size wins over measured ratio. */
body[data-shell="editorial"] .cp-lockup .cp-wm-2 { margin-left:3.5px; }
/* The mark nests the WORDMARK line (site: the arc rises above the cap and drops below the baseline),
   not the center of the two-line block; negative margins let it overflow row 1 without growing it. */
/* Vertically BALANCED in the header (site-ratio nesting shoved the rabbit 1.6px from the page top
   at 140% zoom - "spacing is crazy"). Spans both rows, centered; the arc still rises past the cap. */
body[data-shell="editorial"] .cp-lockup .cp-lockup-mark {
  width:28px!important; height:28px!important; grid-row:1; align-self:center; margin:-4px 0;
}
body[data-shell="editorial"] .cp-lockup { padding-top:2px; }
/* Ink-centered, not box-centered: the line box carries ~2.4px more space above the glyphs than
   below (measured: ink center 16.2 vs bunny center 18.6 at 140% zoom), so a box-centered wordmark
   reads HIGH on the bunny. relative-top drops the ink onto the bunny's center without moving the
   subtitle row. */
body[data-shell="editorial"] .cp-lockup .cp-lockup-wm { position:relative; top:2.5px; }
body[data-shell="editorial"] .cp-lockup { column-gap:8.5px; }
/* Subtitle whispers: ~38% of wordmark cap, lighter, tight under the baseline. */
/* Optical left alignment: the serif C's side-bearing paints ~2px in from its box while the sans F
   paints immediately - boxes aligned, ink misaligned, subtitle looked left of the wordmark. */
body[data-shell="editorial"] .cp-lockup .cp-lockup-sub { font-size:9px; font-weight:500; color:#8f8894; margin-left:2px; }

/* ===================================================================================================
   REFINEMENT PASS (Codex spec, Will-approved direction, 2026-08-22). Refinement, not redesign. */

/* -- 1 · Time state and cell role are separate concepts -------------------------------------------- */
/* Closed actual months: cool plum-gray, FULL-contrast values (read-only does not mean unimportant). */
body[data-shell="editorial"] .mfp-grid td.mfp-closed,
body[data-shell="editorial"] .mfp-grid td[data-time-state="closed"] { background:#F3F1F4!important; }
body[data-shell="editorial"] .mfp-grid td.mfp-closed input.mfp-in,
body[data-shell="editorial"] .mfp-grid td[data-time-state="closed"] input.mfp-in {
  color:var(--mfp-ink,#16130f); cursor:default; background:transparent; border-color:transparent;
}
/* Deliberate seam where actuals end and planning begins — driven by the closed classes themselves,
   so it moves with period status, never with a hardcoded month. */
body[data-shell="editorial"] .mfp-grid td.mfp-closed + td:not(.mfp-closed):not(.mfp-fy) {
  border-left:2px solid #9d8aa8!important;
}
/* Editable cells: white, plum whisper on hover, decisive ring while editing. */
body[data-shell="editorial"] .mfp-grid td[data-cell-role="input"]:not([data-time-state="closed"]):hover input.mfp-in {
  box-shadow:inset 0 0 0 1px #c9b6d4;
}
body[data-shell="editorial"] .mfp-grid input.mfp-in { cursor:text; }
body[data-shell="editorial"] .mfp-grid input.mfp-in:focus {
  outline:none; border-color:#4b2a63!important;
  box-shadow:0 0 0 2px rgba(75,42,99,.25)!important;
}

/* -- 2 · Toolbar hierarchy: one dark primary, everything else recedes ------------------------------ */
body[data-shell="editorial"] .mfp-commandbar .plan-save {
  font-size:9.5px; opacity:.75; background:transparent; border:0; box-shadow:none;
}
body[data-shell="editorial"] .mfp-commandbar .secondary-btn,
body[data-shell="editorial"] .mfp-commandbar .plan-reset { font-size:10px; min-height:28px; }
body[data-shell="editorial"] .mfp-commandbar .plan-ver-act { opacity:.85; }

/* -- 3 · Density: same hierarchy, more plan above the fold ----------------------------------------- */
body[data-shell="editorial"] .mfp-premium .mfp-grid tbody.mfp-blk .mfp-mhead td { height:29px; }
body[data-shell="editorial"] .mfp-premium .mfp-grid tbody.mfp-blk .mfp-mlabel { font-size:11px; }
body[data-shell="editorial"] .mfp-workbook-head { min-height:46px; }
body[data-shell="editorial"] .mfp-commandbar { min-height:42px; padding:4px 0; }
body[data-shell="editorial"] #shell-context-nav { min-height:34px; }

/* -- 4 · OTB joins the system: one band treatment, real ink, semantic color ------------------------ */
body .otb-group-row td,
body .otb-group-row.group-inventory-position td,
body .otb-group-row.group-commitments td,
body .otb-group-row.group-decision td {
  color:#35223e; background:#efeadf!important; border-bottom:1px solid #d8cfc0!important;
  border-top:2px solid #fff!important; height:28px;
}
body .otb-group-row span,
body .otb-group-row.group-inventory-position span,
body .otb-group-row.group-commitments span,
body .otb-group-row.group-decision span { color:#35223e; }
body .otb-group-row em { color:#8a8178; }
body[data-shell="editorial"] .otb-grid td { color:#2e282e; }
body[data-shell="editorial"] .otb-grid .mfp-dimrow td { color:#5f5860; }
/* The editrow wash outranks the plain closed rule ((0,6,3) vs (0,3,2)) — closed wins, whatever row. */
body[data-shell="editorial"] .mfp-premium .mfp-grid tbody.mfp-blk tr td.mfp-closed,
body[data-shell="editorial"] .mfp-premium .mfp-grid tbody.mfp-blk tr td[data-time-state="closed"],
body[data-shell="editorial"] .mfp-premium .mfp-grid tbody.mfp-blk .mfp-editrow td.mfp-closed:not(.mfp-rlabel):not(.mfp-mcol):not(.mfp-roll):not(.mfp-fy) {
  background:#F3F1F4!important;
}

/* When the context strip already names the screen the masthead has no title — the tabs take the
   full lead column instead of leaving a 280px hole where the h1 was. */
body[data-shell="editorial"] .mfp-workbook-head:not(:has(.mfp-workbook-title)) {
  grid-template-columns:minmax(0,1fr) auto;
}

/* ===================================================================================================
   THREE-STATE CELLS + QUIET FOCUS (Codex correction + Will, 2026-08-22).
   Open+writable #FFFFFF · open read-only/calculated #F7F5F1 · closed actual #F3F1F4 · aggregates
   keep beige. Perceptible at a glance, quieter than the plum structure. No checkerboard. */
body[data-shell="editorial"] .mfp-premium .mfp-grid tbody td:not(.mfp-rlabel):not(.mfp-mcol):not(.mfp-roll):not(.mfp-fy):not(.mfp-closed) {
  background:#F7F5F1;
}
body[data-shell="editorial"] .mfp-premium .mfp-grid tbody td[data-cell-role="input"]:not(.mfp-closed):not(.mfp-roll):not(.mfp-fy),
body[data-shell="editorial"] .mfp-premium .mfp-grid tbody.mfp-blk .mfp-editrow td[data-cell-role="input"]:not(.mfp-rlabel):not(.mfp-mcol):not(.mfp-roll):not(.mfp-fy):not(.mfp-closed) {
  background:#FFFFFF!important;
}
body[data-shell="editorial"] .mfp-premium .mfp-grid tbody.mfp-blk .mfp-editrow td:not(.mfp-rlabel):not(.mfp-mcol):not(.mfp-roll):not(.mfp-fy):not(.mfp-closed):not([data-cell-role="input"]) {
  background:#F7F5F1!important;
}
/* Focused column: a plum cap on the HEADER, not a bleached wash down the grid. */
body[data-shell="editorial"] .mfp-premium .mfp-grid thead th.mfp-col-focus:not(.mfp-mcol) {
  background:#3a2d44!important; color:#fff!important;
  box-shadow:inset 0 -2px 0 #9d7aaa!important;
}
/* Focused row: the label leans in; the grid itself stays still. */
body[data-shell="editorial"] .mfp-premium .mfp-row-focus td:not(.mfp-cell-active) { background:inherit; }
body[data-shell="editorial"] .mfp-premium .mfp-row-focus .mfp-rlabel { color:var(--mfp-ink,#16130f); font-weight:640; }
/* Active cell: the ring is the signal — the floaty drop shadow made every arrow-move feel like a
   repaint. Selected range keeps its wash (that one carries meaning). */
body[data-shell="editorial"] .mfp-premium .mfp-cell-active {
  background:#fff!important;
  box-shadow:inset 0 0 0 2px #2B2134!important;
}
/* Read-only fill must actually win the legacy white rules (same :not-chain trick as closed), while
   selection/active/hover keep their say. */
body[data-shell="editorial"] .mfp-premium .mfp-grid tbody.mfp-blk tr td:not(.mfp-rlabel):not(.mfp-mcol):not(.mfp-roll):not(.mfp-fy):not(.mfp-closed):not(.mfp-cell-selected):not(.mfp-cell-active):not([data-cell-role="input"]) {
  background:#F7F5F1!important;
}
body[data-shell="editorial"] .mfp-premium .mfp-grid tbody.mfp-blk tr td.mfp-closed:not(.mfp-rlabel):not(.mfp-mcol):not(.mfp-roll):not(.mfp-fy):not(.mfp-cell-selected):not(.mfp-cell-active) {
  background:#F3F1F4!important;
}

/* Masthead re-proportioned for what it now holds (no title, no date pill): the view tabs carry the
   bar - readable size, honest spacing - with Guide quiet at the right. */
body[data-shell="editorial"] .mfp-workbook-head { min-height:44px; align-items:center; }
body[data-shell="editorial"] .mfp-workbook-head .mfp-tabs { gap:28px; min-height:44px; }
body[data-shell="editorial"] .mfp-workbook-head .mfp-tab {
  font-size:12.5px; font-weight:600; letter-spacing:-.005em; padding:13px 0 11px;
}
body[data-shell="editorial"] .mfp-workbook-head .mfp-tab.active { font-weight:680; }
/* Cell-panel actions row (Fill selection / Next variance / Current month moved from the retired
   formula bar). */
body[data-shell="editorial"] .mfp-cp-actions { display:flex; gap:8px; flex-wrap:wrap; }

/* Plan-patch conflict panel: quiet card, per-cell decisions. */
body[data-shell="editorial"] .pp-conf-panel {
  min-width:380px; max-width:520px; background:#fff; border:1px solid #d6cfc6; border-radius:10px;
  box-shadow:0 14px 40px rgba(40,32,45,.16); padding:6px;
}
body[data-shell="editorial"] .pp-conf-head { padding:9px 12px; font-size:11px; color:#6b645c; border-bottom:1px solid #eee8df; }
body[data-shell="editorial"] .pp-conf-row { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:9px 12px; border-bottom:1px solid #f2ede6; }
body[data-shell="editorial"] .pp-conf-row:last-child { border-bottom:0; }
body[data-shell="editorial"] .pp-conf-what b { display:block; font-size:12px; color:#2b2134; }
body[data-shell="editorial"] .pp-conf-what span { font-size:11px; color:#6b645c; }
body[data-shell="editorial"] .pp-conf-act { display:flex; gap:6px; flex:none; }
/* ---- Loading skeleton (home / live-NetSuite screens) ---- */
body[data-shell="editorial"] .cp-skel-wrap { padding:4px 0; }
body[data-shell="editorial"] .cp-skel { background:linear-gradient(100deg, #ece7df 40%, #f6f2ea 50%, #ece7df 60%); background-size:200% 100%; animation:cpSkel 1.4s ease-in-out infinite; border-radius:8px; }
@keyframes cpSkel { from { background-position:120% 0; } to { background-position:-80% 0; } }
body[data-shell="editorial"] .cp-skel-tiles { display:grid; grid-template-columns:repeat(5, minmax(0,1fr)); gap:10px; margin-bottom:14px; }
body[data-shell="editorial"] .cp-skel-tile { height:74px; }
body[data-shell="editorial"] .cp-skel-band { height:34px; margin-bottom:14px; }
body[data-shell="editorial"] .cp-skel-cols { display:grid; grid-template-columns:2fr 1fr; gap:12px; }
body[data-shell="editorial"] .cp-skel-block { height:260px; }
body[data-shell="editorial"] .cp-skel-note { margin-top:12px; font-size:11.5px; color:#8a827a; }
@media (prefers-reduced-motion: reduce) { body[data-shell="editorial"] .cp-skel { animation:none; } }
/* ---- Reports (non-planning outputs) ---- */
body[data-shell="editorial"] .fvrep-prov { margin:2px 0 14px; font-size:11.5px; color:#8a827a; }
body[data-shell="editorial"] .fvrep-tiles { display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:10px; margin:0 0 14px; }
body[data-shell="editorial"] .fvrep-tile { background:#fff; border:1px solid #e2dcd3; border-radius:8px; padding:12px 14px; }
body[data-shell="editorial"] .fvrep-tile label { display:block; font-size:10px; font-weight:650; letter-spacing:.07em; text-transform:uppercase; color:#8a827a; margin-bottom:4px; }
body[data-shell="editorial"] .fvrep-tile strong { display:block; font-size:20px; font-weight:680; color:#2b2134; line-height:1.1; }
body[data-shell="editorial"] .fvrep-tile span { font-size:11px; font-weight:600; }
body[data-shell="editorial"] .fvrep-callouts { display:grid; gap:6px; margin:0 0 16px; }
body[data-shell="editorial"] .fvrep-callout { background:#faf7f2; border-left:3px solid #5b4a6b; border-radius:0 6px 6px 0; padding:8px 12px; font-size:12.5px; color:#3d3733; }
body[data-shell="editorial"] .fvrep-h3 { margin:20px 0 8px; font-family:"Newsreader",Georgia,serif; font-size:18px; font-weight:600; color:#2b2134; }
body[data-shell="editorial"] .fvrep-h3 .fvrep-sub { font-family:"Instrument Sans",sans-serif; font-size:11px; color:#8a827a; font-weight:500; margin-left:8px; }
body[data-shell="editorial"] .fvrep-table th { text-align:left; }
body[data-shell="editorial"] .fvrep-table th.num, body[data-shell="editorial"] .fvrep-table td.num { text-align:right; font-variant-numeric:tabular-nums; }
body[data-shell="editorial"] .fvrep-table .fvrep-rk { width:30px; color:#b0a89d; font-variant-numeric:tabular-nums; }
body[data-shell="editorial"] .fvrep-table .fvrep-ent { font-weight:600; color:#2b2134; white-space:nowrap; }
body[data-shell="editorial"] .fvrep-table .fvrep-ent em { font-style:normal; font-size:9px; font-weight:650; text-transform:uppercase; letter-spacing:.04em; color:#7a3ea8; background:rgba(122,62,168,.1); padding:1px 5px; border-radius:3px; margin-left:5px; }
body[data-shell="editorial"] .fvrep-table tr.fvrep-sys .fvrep-ent { font-style:italic; color:#6b645c; font-weight:500; }
body[data-shell="editorial"] .fvrep-sparkcol { width:132px; }
body[data-shell="editorial"] .fvrep-spark { display:block; width:120px; height:30px; }
body[data-shell="editorial"] .fvrep-legend { font-size:9px; color:#8a827a; font-weight:500; text-transform:none; letter-spacing:0; margin-left:6px; }
body[data-shell="editorial"] .fvrep-legend i { display:inline-block; width:14px; height:0; border-top:2px solid #5b4a6b; vertical-align:middle; margin:0 3px 0 6px; }
body[data-shell="editorial"] .fvrep-legend i.d { border-top-style:dashed; border-top-color:#a596b3; }
body[data-shell="editorial"] .fvrep-foot { margin:10px 0 0; font-size:11.5px; color:#8a827a; }
/* variance cells: colored TEXT only - a sign-only fill looks like a heatmap but carries no magnitude */
body[data-shell="editorial"] .fvrep-table td.mfp-pos, body[data-shell="editorial"] .fvrep-table td.mfp-neg { background:transparent!important; }
@media(max-width:1100px) { body[data-shell="editorial"] .fvrep-tiles { grid-template-columns:repeat(2, minmax(0,1fr)); } }
/* ---- Fresh-eyes critique batch (2026-08-23) ---- */
/* one negative convention: red ink on any negative value cell, matching the Var rows */
body[data-shell="editorial"] .mfp-premium .mfp-grid td.mfp-negval,
body[data-shell="editorial"] .mfp-premium .mfp-grid td.mfp-negval .mfp-in { color:#a7362d; }
/* zero-heavy grids: empties whisper instead of shouting */
body[data-shell="editorial"] .mfp-premium .mfp-grid td.mfp-zeroval,
body[data-shell="editorial"] .mfp-premium .mfp-grid tbody.mfp-blk tr.mfp-wp td.mfp-zeroval .mfp-in { color:#b9b2a9; }
/* wholesale tail aggregates are a different row TYPE: rule above, quieter label */
body[data-shell="editorial"] .mfp-premium .mfp-grid tr.mfp-tailrow td { border-top:1.5px solid #d9d0c6; }
body[data-shell="editorial"] .mfp-premium .mfp-grid tr.mfp-tailrow .mfp-rlabel { font-style:italic; color:#6b645c; }
/* Non-store is a computed system row, styled deliberately (was an off-palette accident) */
body[data-shell="editorial"] .mfp-premium .mfp-grid tr.mfp-sysrow .mfp-rlabel { font-style:italic; color:#6b645c; }
body[data-shell="editorial"] .mfp-premium .mfp-grid tr.mfp-sysrow td { background:inherit; }
/* the Jul/Aug rule finally says what it is: actuals end, plan begins */
body[data-shell="editorial"] .mfp-premium .mfp-grid thead th.mfp-planstart { position:relative; }
body[data-shell="editorial"] .mfp-premium .mfp-grid thead th.mfp-planstart::before {
  content:"PLAN \2192"; position:absolute; left:4px; top:2px;
  font-size:7.5px; font-weight:700; letter-spacing:.08em; color:rgba(255,255,255,.55);
}
/* edit pencils reveal on row hover instead of printing a column of static noise */
body[data-shell="editorial"] .mfp-premium .mfp-editrow .mfp-rlabel::after { opacity:0; transition:opacity .12s; }
body[data-shell="editorial"] .mfp-premium .mfp-editrow:hover .mfp-rlabel::after,
body[data-shell="editorial"] .mfp-premium .mfp-editrow:focus-within .mfp-rlabel::after { opacity:1; }
/* the bare floating "F": a real avatar */
body[data-layout="topbar"][data-shell="editorial"] .shell-actions .shell-user {
  display:inline-flex; align-items:center; justify-content:center; padding:2px 0; line-height:1;
}
body[data-shell="editorial"] .shell-user > span {
  display:inline-flex; align-items:center; justify-content:center;
  width:24px; height:24px; border-radius:50%; flex:none;
  background:rgba(43,33,52,.08); color:#2b2134; font-weight:650; font-size:11px;
}
/* primary actions are BRAND plum, not an off-palette green */
body[data-shell="editorial"] .primary-btn { background:#2b2134; border-color:#2b2134; color:#fff; }
body[data-shell="editorial"] .primary-btn:hover { background:#211927; border-color:#211927; }
/* the item-hierarchy methodology note wraps instead of clipping mid-word */
body[data-shell="editorial"] .mfp-chan-basis { white-space:normal; overflow:visible; display:block; max-width:1100px; line-height:1.45; }
/* Presence: Sheets-style named pills, one per person, colored dot per identity. Advisory only. */
body[data-shell="editorial"] .pp-presence { display:inline-flex; align-items:center; gap:5px; margin-right:10px; }
body[data-shell="editorial"] .pp-pill {
  display:inline-flex; align-items:center; gap:6px; padding:3px 10px 3px 8px;
  font-size:11px; font-weight:650; color:#2b2134; background:#fff;
  border:1.5px solid var(--pp-c,#4a7c59); border-radius:20px; white-space:nowrap;
}
body[data-shell="editorial"] .pp-pill::before {
  content:""; width:7px; height:7px; border-radius:50%; background:var(--pp-c,#4a7c59); flex:none;
}
body[data-shell="editorial"] .pp-pill.pp-more { border-color:#c9c3bb; color:#6b645c; }
body[data-shell="editorial"] .pp-pill.pp-more::before { display:none; }
/* Live cell cursor: the cell a peer is focused in, outlined in their color with a name tag.
   The tag is a real element (.pp-cursor-tag) because the grid already owns td::after. */
body[data-shell="editorial"] td.pp-cursor { position:relative; outline:2px solid var(--pp-c,#4a7c59); outline-offset:-2px; }
body[data-shell="editorial"] .pp-cursor-tag {
  position:absolute; top:-16px; left:-2px; z-index:6;
  padding:1px 7px; border-radius:3px 3px 3px 0;
  color:#fff;
  font-size:9.5px; font-weight:650; line-height:1.5; letter-spacing:.01em; white-space:nowrap;
  pointer-events:none;
}
/* colliding tags on adjacent cells: the later one flips below its cell */
body[data-shell="editorial"] .pp-cursor-tag.pp-tag-below { top:auto; bottom:-16px; border-radius:0 3px 3px 3px; }
/* a peer's multi-cell selection: light wash, no outline competition with the active cell */
/* overlay element, not background or box-shadow: the grid owns BOTH channels on tds (period-state
   backgrounds, hairline shadows) — an absolutely-positioned wash layers over whatever the cell has */
body[data-shell="editorial"] td.pp-range { position:relative; }
body[data-shell="editorial"] .pp-range-fill {
  position:absolute; inset:0; opacity:.16; pointer-events:none; z-index:1;
}
body[data-shell="editorial"] .pp-pill { cursor:pointer; }
body[data-shell="editorial"] .pp-pill:hover { background:color-mix(in srgb, var(--pp-c,#4a7c59) 8%, #fff); }
/* A peer's edit landing in your grid: their identity color washes through the cell and fades. */
body[data-shell="editorial"] td.pp-flash {
  outline:2px solid var(--pp-c,#4a7c59); outline-offset:-2px;
  animation: ppFlashBg 1.9s ease-out forwards;
}
@keyframes ppFlashBg {
  0% { background:color-mix(in srgb, var(--pp-c,#4a7c59) 24%, #fff); }
  100% { background:transparent; }
}

/* FV visible-contract closeout: assistant + non-Topline planning surfaces */
body[data-shell="editorial"] .cadchat-panel {
  width:min(420px,calc(100vw - 32px));
  height:min(520px,calc(100vh - 96px));
  right:20px;
  bottom:78px;
  border:1px solid var(--mfp-rule-strong);
  border-radius:8px;
  background:var(--mfp-cell);
  box-shadow:0 18px 48px rgba(36,28,43,.18);
}
body[data-shell="editorial"] .cadchat-head {
  min-height:auto;
  padding:18px 20px;
  align-items:flex-start;
  background:var(--mfp-head);
  color:var(--mfp-head-ink);
  border-radius:7px 7px 0 0;
}
body[data-shell="editorial"] .cadchat-brand { display:grid; gap:3px; }
body[data-shell="editorial"] .cadchat-kicker { font-size:9px; font-weight:760; line-height:1.1; text-transform:uppercase; letter-spacing:.14em; color:#bdaec7; }
body[data-shell="editorial"] .cadchat-title { font-family:var(--font-display,"Newsreader",serif); font-size:24px; font-weight:520; line-height:1.05; }
body[data-shell="editorial"] .cadchat-subtitle { font-size:11px; font-weight:430; line-height:1.4; color:#cec4d2; }
body[data-shell="editorial"] .cadchat-x { color:inherit; margin-top:1px; }
body[data-shell="editorial"] .cadchat-msgs { padding:18px; gap:14px; background:var(--mfp-paper); }
body[data-shell="editorial"] .cadchat-empty { display:grid; gap:7px; padding:16px; border:1px solid var(--mfp-rule); border-left:3px solid var(--mfp-head); background:#fff; color:var(--mfp-ink-3); font-size:12px; line-height:1.5; }
body[data-shell="editorial"] .cadchat-empty strong { color:var(--mfp-ink); font-size:13px; }
body[data-shell="editorial"] .cadchat-msg { border-radius:6px; padding:11px 13px; box-shadow:none; font-size:12px; line-height:1.55; }
body[data-shell="editorial"] .cadchat-msg.me { align-self:flex-end; max-width:86%; background:#eee8f1; color:var(--mfp-head); border:1px solid #ded4e4; border-bottom-right-radius:6px; }
body[data-shell="editorial"] .cadchat-msg.ai { align-self:stretch; max-width:none; background:#fff; color:var(--mfp-ink); border:1px solid var(--mfp-rule); border-left:3px solid var(--mfp-head); border-bottom-left-radius:6px; }
body[data-shell="editorial"] .cadchat-input { gap:8px; padding:12px; background:#fff; border-top:1px solid var(--mfp-rule); }
body[data-shell="editorial"] .cadchat-input textarea { border:1px solid var(--mfp-rule-strong); border-radius:6px; padding:10px 12px; font-size:12px; color:var(--mfp-ink); }
body[data-shell="editorial"] .cadchat-send { min-width:72px; background:var(--mfp-head); border:1px solid var(--mfp-head); border-radius:6px; padding:0 16px; color:var(--mfp-head-ink); }
body[data-shell="editorial"] .cadchat-fab { width:48px; height:48px; right:20px; bottom:20px; background:var(--mfp-head); box-shadow:0 8px 20px rgba(36,28,43,.24); }

body[data-shell="editorial"] .mfp-secondary-rail,
body[data-shell="editorial"] .mfp-hier-bar {
  display:flex;
  align-items:center;
  gap:10px;
  margin:0;
  padding:8px 12px;
  min-height:50px;
  background:var(--mfp-surface);
  border-bottom:1px solid var(--mfp-rule);
  border-radius:0;
}
body[data-shell="editorial"] .mfp-hier-viewseg { background:#e9e3d8; border:1px solid #d8cfbf; border-radius:6px; padding:2px; }
body[data-shell="editorial"] .mfp-hier-viewseg .seg-btn { min-height:30px; border-radius:4px; color:var(--mfp-ink-3); }
body[data-shell="editorial"] .mfp-hier-viewseg .seg-btn.active { background:#fff; color:var(--mfp-head); box-shadow:0 1px 3px rgba(36,28,43,.10); }
body[data-shell="editorial"] .mfp-scope-chip { display:inline-flex; align-items:center; margin-left:7px; padding:2px 6px; border:1px solid #ded4e4; border-radius:999px; background:#eee8f1; color:#5b4a66; font-size:9px; font-weight:760; line-height:1.2; letter-spacing:.06em; text-transform:uppercase; vertical-align:middle; }
body[data-shell="editorial"] .mfp-chan-basis { display:none!important; }
body[data-shell="editorial"] .mfp-hier-editcount { color:var(--mfp-ink-3); font-size:11px; }
body[data-shell="editorial"] .mfp-hier-bar .secondary-btn { min-height:32px; }

body[data-shell="editorial"] .mfp-fpmd-tools { flex-wrap:nowrap; }
body[data-shell="editorial"] .mfp-fpmd-mix { display:flex; align-items:center; gap:10px; min-width:390px; flex:1 1 46%; }
body[data-shell="editorial"] .mfp-fpmd-tools .mfp-mixbar { height:22px; min-width:220px; margin:0; flex:1; border-radius:3px; }
body[data-shell="editorial"] .mfp-fpmd-tools .mfp-mixseg { font-size:10px; font-weight:700; }
body[data-shell="editorial"] .mfp-fpmd-scope { display:flex; align-items:center; gap:8px; }
body[data-shell="editorial"] .mfp-tools-spacer { flex:1; }
body[data-shell="editorial"] .mfp-fpmd-kpis { display:grid!important; grid-template-columns:repeat(4,minmax(0,1fr))!important; gap:0!important; min-height:52px!important; margin:0!important; overflow:hidden; background:#f3f0f6; border-bottom:1px solid var(--mfp-rule); }
body[data-shell="editorial"] .mfp-fpmd-kpis .mfp-kpi { display:grid; grid-template-columns:auto 1fr auto; align-items:baseline; gap:6px; min-height:52px; margin:0; padding:8px 14px; border:0; border-right:1px solid var(--mfp-rule); border-radius:0; background:transparent; }
body[data-shell="editorial"] .mfp-fpmd-kpis .mfp-kpi:last-child { border-right:0; }
body[data-shell="editorial"] .mfp-fpmd-kpis .mfp-kpi label { grid-column:1/-1; margin:0; font-size:9px; letter-spacing:.08em; color:var(--mfp-ink-3); }
body[data-shell="editorial"] .mfp-fpmd-kpis .mfp-kpi strong { display:block; margin:0; font-size:18px; line-height:1; color:var(--mfp-ink); }
body[data-shell="editorial"] .mfp-fpmd-kpis .mfp-kpi .mfp-flat { justify-self:end; color:var(--mfp-ink-3); font-size:10px; }
@media(max-width:1100px) {
  body[data-shell="editorial"] .mfp-fpmd-tools { flex-wrap:wrap; }
  body[data-shell="editorial"] .mfp-fpmd-mix { min-width:100%; }
  body[data-shell="editorial"] .mfp-fpmd-kpis { grid-template-columns:repeat(2,minmax(0,1fr))!important; }
}