:root{
  --accent:#7B2D3B; --ink:#1F2933; --muted:#667080; --faint:#98A2B3; --line:#E5E8EC;
  --bg:#FAFAF9; --card:#fff;
  --prog:#9A6212; --prog-bg:#FCF4E6;
  --new:#3A5B88;  --new-bg:#EEF3FA;
  --done:#2E6B4F; --done-bg:#ECF4EF;
  --late:#9B3B22; --late-bg:#FBEEEA;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font-family:'Public Sans',system-ui,sans-serif;font-size:14px;line-height:1.5}
h1,h2,h3{font-family:Fraunces,Georgia,serif;font-weight:600;margin:0}

.top{display:flex;align-items:center;gap:20px;padding:13px 28px;background:var(--accent);color:#fff;flex-wrap:wrap}
.brand{display:flex;flex-direction:column;line-height:1.1;border-right:1px solid rgba(255,255,255,.26);padding-right:18px}
.wordmark{font-family:Fraunces,serif;font-size:22px;font-weight:700;letter-spacing:.04em}
.brand .sub{font-size:9px;letter-spacing:.12em;text-transform:uppercase;opacity:.8;margin-top:3px}
.title h1{font-size:18px}
.title p{margin:2px 0 0;font-size:11.5px;opacity:.85}
.asof{margin-left:auto;font-size:11.5px;opacity:.9}

.wrap{max-width:980px;margin:0 auto;padding:24px 28px 50px}

.states{display:grid;grid-template-columns:repeat(4,1fr);gap:11px;margin-bottom:30px}
.state{background:var(--card);border:1px solid var(--line);border-radius:9px;padding:15px 17px}
.state .n{font-family:Fraunces,serif;font-size:32px;font-weight:700;line-height:1}
.state .l{font-size:11px;letter-spacing:.05em;text-transform:uppercase;margin-top:6px;color:var(--muted)}
.s-progress{border-top:3px solid var(--prog)} .s-progress .n{color:var(--prog)}
.s-notstarted{border-top:3px solid var(--new)} .s-notstarted .n{color:var(--new)}
.s-done{border-top:3px solid var(--done)} .s-done .n{color:var(--done)}
.s-past{border-top:3px solid var(--late)} .s-past .n{color:var(--late)}

.block{margin-bottom:34px}
.block h2{font-size:15px;margin-bottom:3px}
.h-sub{font-size:12px;color:var(--muted);margin:0 0 12px}
.bhead{display:flex;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:12px}
.tools{margin-left:auto;display:flex;gap:9px;align-items:center;flex-wrap:wrap}
.tools input{border:1px solid var(--line);border-radius:999px;padding:6px 14px;font:inherit;font-size:12.5px;
  background:#fff;outline:none;min-width:150px}
.tools input:focus{border-color:var(--accent)}
.chips{display:flex;gap:6px;flex-wrap:wrap}
.chip{font:inherit;font-size:12px;padding:6px 12px;border-radius:999px;border:1px solid var(--line);
  background:#fff;color:var(--muted);cursor:pointer}
.chip:hover{border-color:var(--accent);color:var(--accent)}
.chip.on{background:var(--accent);border-color:var(--accent);color:#fff}

/* needs attention — the only thing that is a plain list */
.att{list-style:none;margin:0;padding:0;background:var(--card);border:1px solid var(--line);border-radius:9px;overflow:hidden}
.att li{display:grid;grid-template-columns:76px 150px 1fr;gap:14px;align-items:baseline;
  padding:10px 16px;border-top:1px solid #F2F4F7;font-size:13px}
.att li:first-child{border-top:0}
.att li.late{background:var(--late-bg)}
.att-w{font-size:11.5px;font-weight:700;color:var(--muted)}
.att li.late .att-w{color:var(--late)}
.att-p{font-weight:600}
.att-t{color:var(--muted);font-size:12.5px}

.area{background:var(--card);border:1px solid var(--line);border-radius:9px;margin-bottom:11px;overflow:hidden}
.area-h{padding:11px 16px 9px}
.area-h h3{font-size:14.5px}
.stands{padding:0 16px 10px}
.stand{font-size:12.5px;color:var(--muted);line-height:1.55;padding:4px 0}
.stand b{color:var(--ink);font-weight:600}
.stand em{font-style:normal;display:inline-block;margin-left:8px;font-size:10.5px;font-weight:700;
  letter-spacing:.04em;text-transform:uppercase;color:var(--accent);background:#F8F1F2;border-radius:999px;padding:1px 8px}

.items{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.item{border-top:1px solid #F3F5F7}
.item:first-child{border-top:0}
.item.late{background:var(--late-bg)}
.row{display:grid;grid-template-columns:96px 1fr 70px;gap:13px;align-items:baseline;width:100%;
  padding:10px 16px;background:none;border:0;font:inherit;text-align:left;cursor:pointer}
.row:hover{background:#FAFBFC}
.item.late .row:hover{background:#F8E7E2}
.pill{font-size:9.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;
  border-radius:999px;padding:3px 8px;text-align:center}
.p-progress{background:var(--prog-bg);color:var(--prog)}
.p-notstarted{background:var(--new-bg);color:var(--new)}
.p-done{background:var(--done-bg);color:var(--done)}
.task{font-size:13px;line-height:1.5}
.when{font-size:11.5px;color:var(--faint);text-align:right;white-space:nowrap}
.item.late .when{color:var(--late);font-weight:700}
.more{padding:0 16px 13px 125px;font-size:12.5px;color:var(--muted);line-height:1.6}
.more p{margin:0 0 6px}
.more .ref{font-size:10.5px;color:var(--faint)}

.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px}
.kpi{background:var(--card);border:1px solid var(--line);border-radius:9px;padding:12px 14px}
.kpi b{display:block;font-family:Fraunces,serif;font-size:21px;color:var(--accent)}
.kpi span{display:block;font-size:12.5px;font-weight:600;margin-top:3px}
.kpi i{display:block;font-style:normal;font-size:10.5px;color:var(--muted);margin-top:3px;line-height:1.45}

.empty{font-size:13px;color:var(--muted);text-align:center;padding:26px}
.foot{max-width:980px;margin:0 auto;padding:16px 28px 36px;font-size:11px;color:var(--muted);border-top:1px solid var(--line)}

@media (max-width:720px){
  .states{grid-template-columns:repeat(2,1fr)}
  .att li{grid-template-columns:64px 1fr}
  .att-t{grid-column:1/-1}
  .row{grid-template-columns:90px 1fr}
  .when{display:none}
  .more{padding-left:16px}
}

/* waiting on a partner is not the same as late on this desk */
.states{grid-template-columns:repeat(5,1fr)}
.s-waiting{border-top:3px solid var(--prog)} .s-waiting .n{color:var(--prog)}
.att li.waiting{background:#FCF8F0}
.att li.waiting .att-w{color:var(--prog)}
.item.waiting{background:#FCF8F0}
.item.waiting .when{color:var(--prog);font-weight:700}
@media (max-width:860px){.states{grid-template-columns:repeat(3,1fr)}}
@media (max-width:620px){.states{grid-template-columns:repeat(2,1fr)}}
