  /* NLS Academy, light. Their lime accent carried onto a warm off-white ground
     rather than their site's near-black, with the wide uppercase display type
     kept. Lime is bright, so anywhere it carries text it steps down to a deeper
     shade that clears contrast on white. Single theme, every colour explicit. */
  :root{
    --pitch:#FAFBF6;
    --surface:#FFFFFF;
    --surface-2:#F3F6EB;
    --line:#E2E7D6;
    --line-soft:#EDF1E4;
    --text:#1B2114;
    --muted:#6D7862;
    --lime:#A6CE39;
    --lime-deep:#4E6B1A;
    --lime-dim:#7C9C2B;
    --lime-wash:rgba(166,206,57,.14);
    --lime-edge:rgba(124,156,43,.34);
    --warn:#9A6B14;
    --warn-wash:rgba(227,179,65,.18);
    --alert:#A8412F;
    --alert-wash:rgba(224,112,92,.14);
    --shadow:0 1px 2px rgba(27,33,20,.05), 0 6px 20px rgba(27,33,20,.05);
    --r:8px;
  }
  *{box-sizing:border-box;}
  [hidden]{display:none !important;}
  body{
    background:var(--pitch);
    color:var(--text);
    font-family:"Barlow",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
    font-size:15px;
    line-height:1.65;
    -webkit-font-smoothing:antialiased;
  }
  .wrap{max-width:1040px;margin:0 auto;padding:0 28px 96px;}

  /* ---------- masthead ---------- */
  .masthead{
    display:flex;align-items:flex-end;justify-content:space-between;
    gap:32px;flex-wrap:wrap;padding:52px 0 24px;
    border-bottom:2px solid var(--lime);
  }
  .masthead .client-logo{width:150px;max-width:44vw;display:block;}
  .masthead .meta{text-align:right;}
  .masthead .doc-kind{
    font-family:"Archivo",sans-serif;
    font-size:11px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;
    color:var(--lime-deep);margin:0 0 4px;
  }
  .masthead .period{
    font-family:"Archivo",sans-serif;
    font-size:30px;font-weight:800;color:var(--text);
    text-transform:uppercase;letter-spacing:-.01em;line-height:1;margin:0;
  }

  /* ---------- banners ---------- */
  .banner{
    display:flex;gap:18px;align-items:flex-start;
    background:var(--lime-wash);border:1px solid var(--lime-edge);
    border-radius:var(--r);padding:18px 22px;margin:24px 0 0;
  }
  .banner .flag{
    flex:0 0 auto;
    font-family:"Archivo",sans-serif;font-size:10.5px;font-weight:800;
    letter-spacing:.14em;text-transform:uppercase;
    color:#FFFFFF;background:var(--lime-deep);
    border-radius:3px;padding:4px 11px;margin-top:3px;white-space:nowrap;
  }
  .banner p{margin:0;font-size:14.5px;color:#3C4632;}
  .banner strong{color:var(--text);}
  .banner.plain{background:var(--surface);border-color:var(--line);}
  .banner.plain .flag{background:var(--muted);color:#FFFFFF;}
  .banner.deadline{background:var(--warn-wash);border-color:rgba(227,179,65,.4);margin:0 0 22px;}
  .banner.deadline p{color:#5A4409;}
  .banner.deadline strong{color:#3E2E05;}
  .banner.deadline .flag{background:var(--warn);color:#FFFFFF;}
  .banner.plain p{color:#4A5540;}

  /* ---------- tabs ---------- */
  .tabs{
    position:sticky;top:0;z-index:20;
    display:flex;gap:2px;flex-wrap:wrap;
    margin-top:22px;padding:6px 0 0;
    background:var(--pitch);border-bottom:1px solid var(--line);
  }
  .tab{
    appearance:none;border:0;cursor:pointer;background:transparent;
    font-family:"Archivo",sans-serif;text-align:left;color:var(--muted);
    padding:11px 16px 12px;border-radius:4px 4px 0 0;
    display:flex;flex-direction:column;gap:1px;
    transition:background .12s ease, color .12s ease;
  }
  .tab .tl{font-size:11.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;line-height:1.3;}
  .tab .ts{
    font-family:"Barlow",sans-serif;font-size:11px;font-weight:600;
    color:var(--muted);opacity:.7;font-variant-numeric:tabular-nums;line-height:1.3;
  }
  .tab:hover{background:var(--surface);color:var(--text);}
  .tab.on{background:var(--lime-deep);color:#FFFFFF;}
  .tab.on .ts{color:#FFFFFF;opacity:.75;}
  .tab:focus-visible{outline:2px solid var(--lime-deep);outline-offset:-3px;}

  /* ---------- sections ---------- */
  section{margin-top:44px;}
  .panel > section:first-child{margin-top:30px;}
  .panel > .banner + section{margin-top:34px;}
  h2{
    font-family:"Archivo",sans-serif;
    font-size:22px;font-weight:800;color:var(--text);
    margin:0 0 8px;text-transform:uppercase;letter-spacing:.02em;text-wrap:balance;
  }
  h2::after{
    content:"";display:block;width:38px;height:3px;background:var(--lime);margin-top:9px;
  }
  .lede{color:var(--muted);font-size:14.5px;margin:0 0 22px;}
  .sub-h{
    font-family:"Archivo",sans-serif;
    font-size:12px;font-weight:800;color:var(--lime-deep);
    text-transform:uppercase;letter-spacing:.16em;margin:26px 0 10px;
  }
  .prose p{margin:0 0 13px;font-size:15px;color:#333D2A;}
  .prose p:last-child{margin-bottom:0;}
  .prose ul{margin:0 0 13px;padding-left:20px;}
  .prose ul li{font-size:15px;color:#333D2A;margin-bottom:6px;line-height:1.6;}
  .prose ul li::marker{color:var(--lime-deep);}
  .prose ul:last-child{margin-bottom:0;}
  .prose strong{color:var(--text);}

  .prose em, .camp-note em, .callout em{font-style:italic;}
  code{
    font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
    font-size:.88em;background:var(--surface-2);color:var(--lime-deep);
    padding:1px 5px;border-radius:3px;border:1px solid var(--line);
    white-space:nowrap;
  }

  /* ---------- KPI tiles ---------- */
  .kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:0 0 14px;}
  .kpis.four{grid-template-columns:repeat(4,1fr);}
  .kpis.three{grid-template-columns:repeat(3,1fr);}
  .kpis:last-of-type{margin-bottom:6px;}
  .kpi{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:16px 18px;box-shadow:var(--shadow);}
  .kpi .label{
    font-family:"Archivo",sans-serif;
    font-size:10px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;
    color:var(--muted);margin-bottom:8px;
  }
  .kpi .value{
    font-family:"Archivo",sans-serif;
    font-size:29px;font-weight:800;color:var(--text);line-height:1;
    font-variant-numeric:tabular-nums;letter-spacing:-.01em;
  }
  .kpi .sub{font-size:12.5px;color:var(--muted);margin-top:6px;}
  .kpi.hero{background:var(--lime-wash);border-color:var(--lime-edge);}
  .kpi.hero .value{color:var(--lime-deep);}

  /* ---------- charts ---------- */
  .charts{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:20px;}
  .chart-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:16px 18px 10px;box-shadow:var(--shadow);}
  .chart-card .ct{
    font-family:"Archivo",sans-serif;
    font-size:10px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;
    color:var(--muted);margin-bottom:14px;
  }
  .chart-card svg{width:100%;height:auto;display:block;}

  /* ---------- campaign blocks ---------- */
  .camp{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);margin-bottom:14px;overflow:hidden;box-shadow:var(--shadow);}
  .camp-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:14px 20px;border-bottom:1px solid var(--line-soft);}
  .camp-head .nm{font-family:"Archivo",sans-serif;font-size:15px;font-weight:700;color:var(--text);}
  .camp-head .dates{margin-left:auto;font-size:12.5px;font-weight:600;color:var(--muted);white-space:nowrap;}
  .tag{
    font-family:"Archivo",sans-serif;
    font-size:10px;font-weight:800;letter-spacing:.13em;text-transform:uppercase;
    padding:3px 9px;border-radius:3px;white-space:nowrap;
  }
  .tag.cold{background:rgba(58,110,180,.12);color:#2F5C97;}
  .tag.warm{background:var(--lime-wash);color:var(--lime-deep);}
  .camp-metrics{display:grid;grid-template-columns:repeat(4,1fr);border-bottom:1px solid var(--line-soft);}
  .cm{padding:13px 20px;border-right:1px solid var(--line-soft);}
  .cm:nth-child(4n){border-right:0;}
  .cm:nth-child(n+5){border-top:1px solid var(--line-soft);}
  .cm .l{
    font-family:"Archivo",sans-serif;
    font-size:9.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;
    color:var(--muted);margin-bottom:4px;
  }
  .cm .v{font-size:18px;font-weight:700;color:var(--text);font-variant-numeric:tabular-nums;line-height:1.25;}
  .camp-creative{padding:2px 20px 6px;}
  .camp-creative .sub-h{margin:16px 0 10px;font-size:11px;}
  .cc-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
  .cc{
    display:flex;gap:11px;padding:10px;
    background:var(--pitch);border:1px solid var(--line);border-radius:6px;
  }
  .cc-thumb{
    width:74px;height:74px;flex:0 0 auto;border-radius:4px;overflow:hidden;
    background:var(--surface-2);border:1px solid var(--line);position:relative;
  }
  .cc-thumb img{width:100%;height:100%;object-fit:cover;display:block;}
  .cc-thumb .vid{
    position:absolute;left:4px;bottom:4px;
    font-family:"Archivo",sans-serif;font-size:7.5px;font-weight:800;letter-spacing:.08em;
    text-transform:uppercase;background:rgba(27,33,20,.84);color:#C6E86A;padding:1px 4px;border-radius:2px;
  }
  .cc-body{flex:1;min-width:0;}
  .cc-name{
    font-family:"Archivo",sans-serif;font-size:12px;font-weight:700;
    color:var(--text);line-height:1.3;margin-bottom:5px;
  }
  .cc-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:3px 8px;}
  .cc-stats div{display:flex;flex-direction:column;line-height:1.25;}
  .cc-stats span{
    font-family:"Archivo",sans-serif;font-size:8px;font-weight:800;
    letter-spacing:.1em;text-transform:uppercase;color:var(--muted);
  }
  .cc-stats b{font-size:12.5px;font-weight:700;color:var(--text);font-variant-numeric:tabular-nums;}
  .cc-link{
    display:inline-block;margin-top:6px;
    font-family:"Archivo",sans-serif;font-size:8.5px;font-weight:800;
    letter-spacing:.1em;text-transform:uppercase;text-decoration:none;
    color:var(--lime-deep);border-bottom:1px solid var(--lime-edge);
  }
  .cc-link:hover{border-bottom-color:var(--lime-deep);}
  .cc-total{
    display:flex;flex-wrap:wrap;gap:6px 22px;align-items:baseline;
    margin-top:10px;padding:9px 12px;
    background:var(--lime-wash);border:1px solid var(--lime-edge);border-radius:5px;
  }
  .cc-total .lbl{
    font-family:"Archivo",sans-serif;font-size:9.5px;font-weight:800;
    letter-spacing:.12em;text-transform:uppercase;color:var(--lime-deep);
  }
  .cc-total span{font-size:13px;font-weight:800;color:var(--lime-deep);font-variant-numeric:tabular-nums;}
  .cc-total span i{
    display:block;font-style:normal;
    font-family:"Archivo",sans-serif;font-size:8px;font-weight:800;
    letter-spacing:.1em;text-transform:uppercase;color:var(--muted);
  }
  @media (max-width:820px){
    .cc-grid{grid-template-columns:1fr;}
    ul.clist li{grid-template-columns:74px 1fr;}
    ul.clist .cdue{grid-column:2;grid-row:auto;text-align:left;}
    ul.clist .cdue i{display:inline;margin-right:5px;}
    ul.clist .cn{grid-column:2;}
  }

  .camp-note{padding:15px 20px 18px;font-size:14.5px;color:#333D2A;}
  .camp-note p{margin:0 0 11px;}
  .camp-note p:last-child{margin:0;}

  /* ---------- creative cards ---------- */
  .ads{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
  .ad{
    background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);
    overflow:hidden;display:flex;flex-direction:column;
  }
  .ad-top{display:flex;gap:14px;padding:16px 18px 12px;}
  .ad-thumb{
    width:108px;height:108px;flex:0 0 auto;border-radius:5px;overflow:hidden;
    background:var(--surface-2);border:1px solid var(--line);position:relative;
  }
  .ad-thumb img{width:100%;height:100%;object-fit:cover;display:block;}
  .ad-thumb .vid{
    position:absolute;left:6px;bottom:6px;
    font-family:"Archivo",sans-serif;font-size:8.5px;font-weight:800;letter-spacing:.1em;
    text-transform:uppercase;background:rgba(27,33,20,.84);color:#C6E86A;
    padding:2px 6px;border-radius:3px;
  }
  .ad-id{flex:1;min-width:0;}
  .ad-id .nm{font-family:"Archivo",sans-serif;font-size:14px;font-weight:700;color:var(--text);line-height:1.3;}
  .ad-id .where{font-size:12px;color:var(--muted);margin-top:3px;}
  .ad-links{display:flex;gap:8px;flex-wrap:wrap;margin-top:9px;}
  .ad-links a{
    font-family:"Archivo",sans-serif;font-size:9.5px;font-weight:800;
    letter-spacing:.11em;text-transform:uppercase;text-decoration:none;
    color:var(--lime-deep);border:1px solid var(--lime-edge);border-radius:3px;
    padding:4px 9px;transition:background .12s ease,color .12s ease;
  }
  .ad-links a:hover{background:var(--lime-deep);color:#FFFFFF;}
  .ad-links a:focus-visible{outline:2px solid var(--lime-deep);outline-offset:2px;}
  .ad-stats{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line-soft);}
  .ad-stats div{padding:10px 12px;border-right:1px solid var(--line-soft);}
  .ad-stats div:nth-child(4n){border-right:0;}
  .ad-stats div:nth-child(n+5){border-top:1px solid var(--line-soft);}
  .ad-stats .l{
    font-family:"Archivo",sans-serif;font-size:9px;font-weight:800;
    letter-spacing:.13em;text-transform:uppercase;color:var(--muted);
  }
  .ad-stats .v{font-size:15px;font-weight:700;color:var(--text);font-variant-numeric:tabular-nums;}
  .ad-note{padding:13px 18px 16px;font-size:13.5px;color:#3B4531;border-top:1px solid var(--line-soft);}
  .ad-note p{margin:0 0 9px;}
  .ad-note p:last-child{margin:0;}

  /* ---------- funnel ---------- */
  .funnel{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:6px 0 4px;}
  .step{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:16px 18px;position:relative;box-shadow:var(--shadow);}
  .step .l{
    font-family:"Archivo",sans-serif;font-size:10px;font-weight:800;
    letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:8px;
  }
  .step .v{font-family:"Archivo",sans-serif;font-size:26px;font-weight:800;color:var(--text);line-height:1;font-variant-numeric:tabular-nums;}
  .step .r{font-size:12.5px;color:var(--lime-deep);margin-top:6px;font-weight:600;}
  .step:last-child{background:var(--lime-wash);border-color:var(--lime-edge);}
  .step:last-child .v{color:var(--lime-deep);}

  /* ---------- tables ---------- */
  .tbl-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);box-shadow:var(--shadow);}
  table{width:100%;border-collapse:collapse;font-size:14px;min-width:520px;}
  thead th{
    background:var(--surface-2);color:var(--lime-deep);text-align:left;padding:11px 16px;
    font-family:"Archivo",sans-serif;font-size:10px;font-weight:800;
    letter-spacing:.14em;text-transform:uppercase;white-space:nowrap;
    border-bottom:1px solid var(--line);
  }
  thead th:not(:first-child){text-align:right;}
  tbody td{padding:11px 16px;border-top:1px solid var(--line-soft);vertical-align:top;color:#333D2A;}
  tbody td:not(:first-child){text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;}
  tbody tr:nth-child(even){background:#FBFCF7;}
  tbody .prod{max-width:340px;white-space:normal;color:var(--text);}
  tfoot td{
    padding:11px 16px;border-top:1px solid var(--line);
    font-weight:800;background:var(--lime-wash);color:var(--lime-deep);
  }
  tfoot td:not(:first-child){text-align:right;font-variant-numeric:tabular-nums;}

  /* ---------- callout ---------- */
  .callout{
    background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--lime);
    border-radius:var(--r);padding:17px 20px;margin-top:18px;
  }
  .callout .ct{
    font-family:"Archivo",sans-serif;font-size:13px;font-weight:800;
    text-transform:uppercase;letter-spacing:.1em;color:var(--lime-deep);margin:0 0 8px;
  }
  .callout p{margin:0 0 11px;font-size:14.5px;color:#333D2A;}
  .callout p:last-child{margin:0;}

  /* the changelog is prose in a table, so it reads left aligned */
  .changelog thead th:not(:first-child),
  .changelog tbody td:not(:first-child){text-align:left;white-space:normal;}
  .changelog table{min-width:620px;}
  .changelog tbody td:first-child{
    white-space:nowrap;font-weight:700;color:var(--text);
    font-variant-numeric:tabular-nums;
  }
  .changelog tbody td:nth-child(2){font-weight:600;color:var(--text);white-space:nowrap;}
  .changelog tbody td:nth-child(3){color:#3B4531;}

  /* ---------- the next scheduled change ---------- */
  .switch{
    background:var(--surface);border:1px solid var(--lime-edge);border-left:4px solid var(--lime-deep);
    border-radius:var(--r);box-shadow:var(--shadow);margin-bottom:26px;overflow:hidden;
  }
  .switch-head{
    padding:12px 20px;border-bottom:1px solid var(--line-soft);background:var(--lime-wash);
    display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;
  }
  .switch-head .sl{
    font-family:"Archivo",sans-serif;font-size:10.5px;font-weight:800;
    letter-spacing:.14em;text-transform:uppercase;color:var(--lime-deep);
  }
  .switch-head .sw{
    font-family:"Archivo",sans-serif;font-size:14px;font-weight:800;color:var(--text);
    font-variant-numeric:tabular-nums;
  }
  .switch ul{list-style:none;margin:0;padding:4px 0;}
  .switch li{
    display:grid;grid-template-columns:74px 1fr;gap:3px 14px;align-items:baseline;
    padding:11px 20px;border-top:1px solid var(--line-soft);
  }
  .switch li:first-child{border-top:0;}
  .switch .act{
    grid-row:1 / span 2;align-self:start;text-align:center;
    font-family:"Archivo",sans-serif;font-size:9px;font-weight:800;
    letter-spacing:.11em;text-transform:uppercase;padding:4px 0;border-radius:3px;
  }
  .switch .act.pause{background:var(--warn-wash);color:var(--warn);}
  .switch .act.enable{background:var(--lime-wash);color:var(--lime-deep);}
  .switch .what{font-size:14.5px;font-weight:700;color:var(--text);}
  .switch .det{grid-column:2;font-size:12.5px;color:var(--muted);line-height:1.5;}
  @media (max-width:480px){ .switch li{grid-template-columns:1fr;} .switch .act{grid-row:auto;justify-self:start;padding:4px 10px;} .switch .det{grid-column:1;} }

  /* ---------- September timeline ---------- */
  .timeline{
    background:var(--surface);border:1px solid var(--line);border-radius:var(--r);
    box-shadow:var(--shadow);padding:14px 18px 18px;overflow-x:auto;
  }
  .tl-row{display:grid;grid-template-columns:180px 1fr;gap:14px;align-items:center;min-width:820px;}
  .tl-row + .tl-row{margin-top:12px;padding-top:12px;border-top:1px solid var(--line-soft);}
  .tl-row.head + .tl-row.head{margin-top:2px;padding-top:0;border-top:0;}
  .tl-track.months span.mo{
    font-family:"Archivo",sans-serif;font-size:10px;font-weight:800;
    letter-spacing:.16em;text-transform:uppercase;color:var(--lime-deep);
    border-bottom:1px solid var(--lime-edge);padding-bottom:3px;
  }
  .tl-track.lanes > i.mline{
    border-left:1px solid var(--line);
  }
  .tl-lane .lead.warn{color:var(--warn);}
  .tl-lane .lnote{
    font-size:11px;color:var(--lime-deep);font-weight:600;margin-top:3px;
    padding-left:9px;border-left:2px solid var(--lime-edge);line-height:1.35;
  }
  .tl-row.head{margin-bottom:2px;}
  .tl-lane{display:flex;flex-direction:column;gap:1px;}
  .tl-lane .ln{
    font-family:"Archivo",sans-serif;font-size:12.5px;font-weight:800;
    text-transform:uppercase;letter-spacing:.07em;color:var(--text);
  }
  .tl-lane .ls{font-size:11.5px;color:var(--muted);}
  .tl-lane .lead{font-size:11px;color:var(--muted);font-weight:600;margin-top:2px;}
  .tl-lane .lead.ok{color:var(--lime-deep);}
  .tl-track{display:grid;position:relative;align-items:center;}
  .tl-row.head .tl-track span{
    font-size:9px;color:var(--muted);text-align:center;
    font-variant-numeric:tabular-nums;line-height:1.4;
  }
  .tl-row.head .tl-track span.wknd{color:#A9B49C;}
  .tl-row.head .tl-track span.now{color:var(--lime-deep);font-weight:800;}
  .tl-track.lanes{grid-template-rows:auto auto;row-gap:4px;min-height:46px;padding:4px 0;}
  .tl-track.lanes > i{grid-row:1 / span 2;display:block;height:100%;}
  .tl-track.lanes > i.wk{background:var(--surface-2);}
  .tl-track.lanes > i.today{border-left:2px dashed var(--lime-deep);opacity:.75;}
  .tl-track.lanes .bar{
    grid-row:1;z-index:1;margin-right:2px;
    background:#EEF5DB;border:1px solid var(--lime-edge);border-radius:3px;
    font-size:10.5px;font-weight:700;color:var(--lime-deep);
    padding:4px 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  }
  .tl-track.lanes .ev{
    grid-row:2;z-index:2;
    background:var(--lime-deep);color:#FFFFFF;border-radius:3px;
    font-family:"Archivo",sans-serif;font-size:9.5px;font-weight:800;
    letter-spacing:.06em;text-transform:uppercase;
    padding:4px 7px;text-align:center;white-space:nowrap;
    font-variant-numeric:tabular-nums;
    min-width:max-content;justify-self:center;
  }

  /* ---------- status board, three columns ---------- */
  .board{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;}
  .board.two{grid-template-columns:repeat(2,1fr);}
  .col{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow);}
  .col-head{
    padding:13px 18px;border-bottom:1px solid var(--line-soft);
    display:flex;align-items:baseline;justify-content:space-between;gap:10px;
  }
  .col-head .t{
    font-family:"Archivo",sans-serif;font-size:11.5px;font-weight:800;
    text-transform:uppercase;letter-spacing:.13em;color:var(--text);
  }
  .col-head .n{font-size:12px;font-weight:800;color:var(--muted);font-variant-numeric:tabular-nums;}
  .col.done .col-head{background:var(--lime-wash);border-bottom-color:var(--lime-edge);}
  .col.done .col-head .t, .col.done .col-head .n{color:var(--lime-deep);}
  .col.wip .col-head{background:var(--warn-wash);border-bottom-color:rgba(227,179,65,.24);}
  .col.wip .col-head .t, .col.wip .col-head .n{color:var(--warn);}
  .col.dates{box-shadow:var(--shadow);}
  .col.dates .col-head{background:var(--surface-2);}
  ul.items{list-style:none;margin:0;padding:4px 0;}
  ul.items li{padding:11px 18px;border-top:1px solid var(--line-soft);font-size:13.5px;line-height:1.55;color:#333D2A;}
  ul.items li:first-child{border-top:0;}
  ul.items li .txt{display:block;}
  ul.items li .when{display:block;font-size:11.5px;color:var(--muted);margin-top:3px;font-variant-numeric:tabular-nums;}
  ul.items li .amt{
    display:block;font-family:"Archivo",sans-serif;font-size:13px;font-weight:800;
    color:var(--lime-deep);margin-top:3px;font-variant-numeric:tabular-nums;
  }
  .chip{
    display:inline-block;margin-top:7px;
    font-family:"Archivo",sans-serif;font-size:9.5px;font-weight:800;letter-spacing:.11em;
    text-transform:uppercase;padding:3px 9px;border-radius:3px;white-space:nowrap;
  }
  .chip.meta{background:rgba(58,110,180,.12);color:#2F5C97;}
  .chip.client{background:var(--lime-wash);color:var(--lime-deep);}
  .chip.isadora{background:var(--warn-wash);color:var(--warn);}
  .tick{color:var(--lime-deep);font-weight:800;margin-right:7px;}

  /* ---------- content plan ---------- */
  .cgroup{
    background:var(--surface);border:1px solid var(--line);border-radius:var(--r);
    box-shadow:var(--shadow);overflow:hidden;margin-bottom:14px;
  }
  .cgroup-head{
    padding:14px 20px;border-bottom:1px solid var(--line-soft);background:var(--surface-2);
    display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;
  }
  .cgroup-titles{display:flex;flex-direction:column;gap:2px;}
  .cgroup-head .folder{
    flex:0 0 auto;
    font-family:"Archivo",sans-serif;font-size:10px;font-weight:800;
    letter-spacing:.11em;text-transform:uppercase;text-decoration:none;
    background:var(--lime-deep);color:#FFFFFF;
    padding:8px 14px;border-radius:4px;white-space:nowrap;
    transition:background .12s ease;
  }
  .cgroup-head .folder:hover{background:#5E7F22;}
  .cgroup-head .folder:focus-visible{outline:2px solid var(--lime);outline-offset:2px;}
  .isnew{
    display:inline-block;margin-left:8px;vertical-align:2px;
    font-family:"Archivo",sans-serif;font-size:8.5px;font-weight:800;
    letter-spacing:.12em;text-transform:uppercase;
    background:var(--lime-deep);color:#FFFFFF;padding:2px 6px;border-radius:3px;
  }
  .cgroup-head .t{
    font-family:"Archivo",sans-serif;font-size:13px;font-weight:800;
    text-transform:uppercase;letter-spacing:.12em;color:var(--lime-deep);
  }
  .cgroup-head .s{font-size:13px;color:var(--muted);}
  ul.clist{list-style:none;margin:0;padding:4px 0;}
  ul.clist li{
    display:grid;grid-template-columns:74px 1fr auto;gap:4px 14px;align-items:baseline;
    padding:12px 20px;border-top:1px solid var(--line-soft);
  }
  ul.clist li:first-child{border-top:0;}
  ul.clist .kind{
    grid-row:1 / span 2;align-self:start;
    font-family:"Archivo",sans-serif;font-size:9px;font-weight:800;
    letter-spacing:.11em;text-transform:uppercase;text-align:center;
    padding:4px 0;border-radius:3px;
  }
  ul.clist .kind.video{background:rgba(58,110,180,.12);color:#2F5C97;}
  ul.clist .kind.graphic{background:var(--warn-wash);color:var(--warn);}
  ul.clist .kind.carousel{background:rgba(150,90,180,.12);color:#6E4A8C;}
  ul.clist .ct{font-size:14.5px;font-weight:600;color:var(--text);line-height:1.4;}
  ul.clist .cn{grid-column:2 / span 2;font-size:12.5px;color:var(--muted);line-height:1.5;}
  ul.clist .cdue{
    grid-column:3;grid-row:1;text-align:right;white-space:nowrap;
    font-family:"Archivo",sans-serif;font-size:12px;font-weight:800;
    color:var(--warn);font-variant-numeric:tabular-nums;line-height:1.3;
  }
  ul.clist .cdue i{
    display:block;font-style:normal;font-size:8px;font-weight:800;
    letter-spacing:.12em;text-transform:uppercase;color:var(--muted);
  }

  /* the away band is a constraint, not a campaign */
  .tl-track.lanes.away .bar{
    background:var(--warn-wash);border-color:rgba(227,179,65,.45);color:var(--warn);
  }

  /* ---------- next steps ---------- */
  ol.steps{margin:0;padding:0;list-style:none;counter-reset:s;}
  ol.steps li{
    counter-increment:s;position:relative;
    background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);
    padding:15px 20px 15px 58px;margin-bottom:10px;font-size:14.5px;color:#333D2A;
  }
  ol.steps li::before{
    content:counter(s);position:absolute;left:18px;top:14px;
    width:24px;height:24px;border-radius:3px;background:var(--lime-deep);color:#FFFFFF;
    font-family:"Archivo",sans-serif;font-size:12px;font-weight:800;
    display:flex;align-items:center;justify-content:center;font-variant-numeric:tabular-nums;
  }

  /* ---------- footer ---------- */
  footer{
    margin-top:60px;padding-top:24px;border-top:1px solid var(--line);
    display:flex;align-items:center;justify-content:space-between;gap:26px;flex-wrap:wrap;
  }
  footer .ib-logo{width:200px;max-width:50vw;display:block;}
  footer .fine{font-size:12.5px;color:var(--muted);text-align:right;}

  /* ---------- login ---------- */
  .gate{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:28px;}
  .gate-card{
    background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow);
    padding:36px 32px;width:100%;max-width:380px;text-align:center;
  }
  .gate-card img{width:130px;max-width:100%;margin:0 auto 24px;display:block;}
  .gate-card h1{
    font-family:"Archivo",sans-serif;font-size:15px;font-weight:800;
    color:var(--lime-deep);text-transform:uppercase;letter-spacing:.16em;margin:0 0 6px;
  }
  .gate-card p.hint{font-size:13.5px;color:var(--muted);margin:0 0 22px;}
  .gate-card input{
    width:100%;padding:12px 14px;font-size:15px;font-family:inherit;text-align:center;
    border:1px solid var(--line);border-radius:5px;background:var(--pitch);color:var(--text);
  }
  .gate-card input:focus{outline:2px solid var(--lime);outline-offset:1px;border-color:var(--lime);}
  .gate-card button{
    width:100%;margin-top:11px;padding:12px 14px;
    font-family:"Archivo",sans-serif;font-size:12px;font-weight:800;
    letter-spacing:.14em;text-transform:uppercase;
    background:var(--lime-deep);color:#FFFFFF;border:0;border-radius:5px;cursor:pointer;
  }
  .gate-card button:hover{background:#5E7F22;}
  .gate-card button:focus-visible{outline:2px solid var(--lime);outline-offset:2px;}
  .gate-card .err{color:var(--alert);font-size:13.5px;margin:13px 0 0;min-height:19px;}

  /* ---------- toolbar ---------- */
  .toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:14px 0 0;}
  .toolbar label{
    font-family:"Archivo",sans-serif;font-size:10px;font-weight:800;
    letter-spacing:.16em;text-transform:uppercase;color:var(--muted);
  }
  .toolbar select{
    font-family:inherit;font-size:14px;font-weight:600;color:var(--text);
    background:var(--surface);border:1px solid var(--line);border-radius:5px;padding:7px 12px;cursor:pointer;
  }
  .toolbar select:focus-visible{outline:2px solid var(--lime);outline-offset:1px;}
  .toolbar .spacer{flex:1;}
  .toolbar .print{
    font-family:"Archivo",sans-serif;font-size:10.5px;font-weight:800;
    letter-spacing:.13em;text-transform:uppercase;
    background:transparent;color:var(--muted);border:1px solid var(--line);
    border-radius:5px;padding:7px 14px;cursor:pointer;
  }
  .toolbar .print:hover{color:var(--lime-deep);border-color:var(--lime-edge);}

  @media (max-width:820px){
    .tabs{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;}
    .tabs::-webkit-scrollbar{display:none;}
    .tab{white-space:nowrap;padding:10px 13px 11px;}
    .kpis, .kpis.four, .kpis.three{grid-template-columns:repeat(2,1fr);}
    .charts, .board, .board.two, .ads{grid-template-columns:1fr;}
    .tl-row{grid-template-columns:150px 1fr;gap:10px;}
    .funnel{grid-template-columns:repeat(2,1fr);}
    .camp-metrics{grid-template-columns:repeat(2,1fr);}
    .cm:nth-child(2n){border-right:0;}
    .cm:nth-child(n+3){border-top:1px solid var(--line-soft);}
    .masthead{padding-top:36px;}
    .masthead .meta{text-align:left;}
    .camp-head .dates{margin-left:0;flex-basis:100%;}
  }
  @media (max-width:480px){
    .kpis, .kpis.four, .kpis.three, .funnel{grid-template-columns:1fr;}
    .ad-stats{grid-template-columns:repeat(2,1fr);}
    .ad-stats div:nth-child(2n){border-right:0;}
  }
