/* ═══════════════ BRASH Reporting — New Business & Reputation ═══════════════
   The ten reporting and tracker screens (Lara's "Route C / Atlas" handoff,
   October 2026) brought onto the platform's brand on 7 Oct 2026. The layout
   and the behaviour are the handoff's; the type and the colours are the
   platform's (platform/tokens.css, as New Biz, Atlas and the OS carry them):
   Neue Haas Grotesk Display, paper #F3F2EF and graphite #141414, ink
   controls, red #F40000 as the one accent — fill-only, with --red-text for
   words — and the OS's court blue for "won". The masthead is the platform's
   uniform app bar (BRASH Intelligence System version 3.0/assets/apps/newbiz/
   masthead.html is the reference).

   Tokens are COPIED from platform/tokens.css, as every app copies them: no
   app links a file inside another folder. The fonts are the platform's own
   TTFs, which the switcher and the Assistant already load from there. */

@font-face{font-family:"Neue Haas Display";src:url("../../platform/fonts/NeueHaasDisplayRoman.ttf") format("truetype");font-weight:400;font-display:swap}
@font-face{font-family:"Neue Haas Display";src:url("../../platform/fonts/NeueHaasDisplayBold.ttf") format("truetype");font-weight:600 800;font-display:swap}
@font-face{font-family:"Neue Haas Display";src:url("../../platform/fonts/NeueHaasDisplayLight.ttf") format("truetype");font-weight:300;font-display:swap}

/* ── tokens: light (the resting appearance) ── */
:root{
  color-scheme:light;
  --canvas:#F3F2EF; --canvas-2:#ECEBE7; --surface:#FFFFFF; --surface-raised:#FFFFFF;
  --line:rgba(0,0,0,.08); --line-strong:rgba(0,0,0,.14);
  --ink:#111111; --ink-2:#4A4A48; --ink-3:#66655F; --on-ink:#FFFFFF;
  --f3:rgba(17,17,17,.03); --f6:rgba(17,17,17,.06); --f8:rgba(17,17,17,.08); --f12:rgba(17,17,17,.12); --f16:rgba(17,17,17,.16); --f24:rgba(17,17,17,.24);
  --red:#F40000; --red-text:#D40000; --red-soft:rgba(244,0,0,.10); --on-red:#0b0b0b;
  --amber:#F5A623; --amber-text:#9A5C00; --amber-soft:rgba(245,166,35,.16);
  --green:#34C26B; --green-text:#1E7F4A; --green-soft:rgba(52,194,107,.14);
  --teal:#1B6E8F; --teal-wash:rgba(27,110,143,.14);
  --focus:#2F6FED;
  --shadow-1:0 1px 2px rgba(0,0,0,.06); --shadow-raised:0 8px 32px rgba(0,0,0,.14); --shadow-paper:0 12px 40px rgba(0,0,0,.12);
  --logo-filter:none;
  --sans:"Neue Haas Display","Helvetica Neue",Helvetica,Arial,sans-serif;
  --display:"Neue Haas Display","Helvetica Neue",Helvetica,Arial,sans-serif;
  --radius:8px; --radius-lg:12px;

  /* the outcomes of a lead — the court blue for won, as New Biz paints it;
     amber and red checked against each other for colour-blind readers
     (dataviz validator, 7 Oct 2026) and never shown without their word */
  --st-won:#1B6E8F; --st-open:#C27A00; --st-lost:#D40000; --st-cancelled:#8A8984; --st-declined:#C9C7C2;
  /* RAG on the reputation scorecard — always paired with a label */
  --rag-green:#1E7F4A; --rag-amber:#C27A00; --rag-red:#D40000; --rag-none:#B9B7B2;
  /* one hue, light to dark: the share won, by market */
  --seq-1:#DBE8ED; --seq-2:#A4C5D2; --seq-3:#5F9AB1; --seq-4:#1B6E8F; --on-seq:#FFFFFF;
  /* the source split and the three-year bars: ink, stepped */
  --ink-ramp-1:#111111; --ink-ramp-2:#66655F; --ink-ramp-3:#A6A4A0; --ink-ramp-4:#D6D4CF;
}
/* ── tokens: dark (stamped by the moon in the masthead; written twice, as
   tokens.css does, because a media query and an attribute selector cannot
   share one rule) ── */
:root[data-theme="dark"]{
  color-scheme:dark;
  --canvas:#141414; --canvas-2:#26262A; --surface:#1C1C1E; --surface-raised:#26262A;
  --line:rgba(255,255,255,.10); --line-strong:rgba(255,255,255,.18);
  --ink:#F5F5F3; --ink-2:#C9C8C4; --ink-3:#9C9B96; --on-ink:#111111;
  --f3:rgba(245,245,243,.04); --f6:rgba(245,245,243,.07); --f8:rgba(245,245,243,.09); --f12:rgba(245,245,243,.13); --f16:rgba(245,245,243,.17); --f24:rgba(245,245,243,.25);
  --red:#F40000; --red-text:#FF5A4F; --red-soft:rgba(244,0,0,.18); --on-red:#0b0b0b;
  --amber:#F5A623; --amber-text:#F5A623; --amber-soft:rgba(245,166,35,.18);
  --green:#34C26B; --green-text:#4FC57A; --green-soft:rgba(52,194,107,.16);
  --teal:#6FB7D6; --teal-wash:rgba(111,183,214,.18);
  --focus:#7FB2FF;
  --shadow-1:inset 0 1px 0 rgba(255,255,255,.05),0 1px 2px rgba(0,0,0,.4); --shadow-raised:0 8px 32px rgba(0,0,0,.6); --shadow-paper:0 12px 40px rgba(0,0,0,.5);
  --st-won:#6FB7D6; --st-open:#D98E1C; --st-lost:#E5453A; --st-cancelled:#8A8984; --st-declined:#4A4A4E;
  --rag-green:#4FC57A; --rag-amber:#D98E1C; --rag-red:#E5453A; --rag-none:#5A5A5E;
  --seq-1:#29353B; --seq-2:#3D5A68; --seq-3:#56889F; --seq-4:#6FB7D6; --on-seq:#111111;
  --ink-ramp-1:#F5F5F3; --ink-ramp-2:#9C9B96; --ink-ramp-3:#5E5D5A; --ink-ramp-4:#38383A;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    color-scheme:dark;
    --canvas:#141414; --canvas-2:#26262A; --surface:#1C1C1E; --surface-raised:#26262A;
    --line:rgba(255,255,255,.10); --line-strong:rgba(255,255,255,.18);
    --ink:#F5F5F3; --ink-2:#C9C8C4; --ink-3:#9C9B96; --on-ink:#111111;
    --f3:rgba(245,245,243,.04); --f6:rgba(245,245,243,.07); --f8:rgba(245,245,243,.09); --f12:rgba(245,245,243,.13); --f16:rgba(245,245,243,.17); --f24:rgba(245,245,243,.25);
    --red:#F40000; --red-text:#FF5A4F; --red-soft:rgba(244,0,0,.18); --on-red:#0b0b0b;
    --amber:#F5A623; --amber-text:#F5A623; --amber-soft:rgba(245,166,35,.18);
    --green:#34C26B; --green-text:#4FC57A; --green-soft:rgba(52,194,107,.16);
    --teal:#6FB7D6; --teal-wash:rgba(111,183,214,.18);
    --focus:#7FB2FF;
    --shadow-1:inset 0 1px 0 rgba(255,255,255,.05),0 1px 2px rgba(0,0,0,.4); --shadow-raised:0 8px 32px rgba(0,0,0,.6); --shadow-paper:0 12px 40px rgba(0,0,0,.5);
    --st-won:#6FB7D6; --st-open:#D98E1C; --st-lost:#E5453A; --st-cancelled:#8A8984; --st-declined:#4A4A4E;
    --rag-green:#4FC57A; --rag-amber:#D98E1C; --rag-red:#E5453A; --rag-none:#5A5A5E;
    --seq-1:#29353B; --seq-2:#3D5A68; --seq-3:#56889F; --seq-4:#6FB7D6; --on-seq:#111111;
    --ink-ramp-1:#F5F5F3; --ink-ramp-2:#9C9B96; --ink-ramp-3:#5E5D5A; --ink-ramp-4:#38383A;
  }
}

/* ── base ── */
*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;background:var(--canvas)}
body{font-family:var(--sans);color:var(--ink);font-size:14px;line-height:1.4;-webkit-font-smoothing:antialiased;min-height:100vh;display:flex;flex-direction:column}
h1,h2,h3{font-family:var(--display);font-weight:700;letter-spacing:-.015em;margin:0}
p{margin:0}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}
:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
@media (prefers-reduced-motion: reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
/* while the gate is deciding, nothing of the page shows (assets/gate.js) */
html[data-gate="pending"] body>*:not(.rp-gate){visibility:hidden}

/* ── masthead: the platform's uniform app bar ── */
.rp-mast{display:flex;align-items:center;justify-content:space-between;gap:16px;height:64px;padding:0 24px;border-bottom:1px solid var(--line);background:var(--canvas);position:sticky;top:0;z-index:20}
.rp-brand{display:flex;align-items:center;gap:12px;min-width:0;flex:none}
.rp-logo{height:24px;width:auto;display:block;flex:none;filter:var(--logo-filter,none)}
.rp-name{font-size:15px;line-height:20px;font-weight:700;white-space:nowrap}
.rp-mast-mid{display:flex;align-items:center;gap:14px;min-width:0;overflow-x:auto;scrollbar-width:none;flex:1;justify-content:center}
.rp-mast-mid::-webkit-scrollbar{display:none}
.rp-mast-mid>*{flex:none}
.rp-nav{display:flex;gap:4px;padding:4px;background:var(--canvas-2);border-radius:999px;font-size:13px}
.rp-nav a{display:flex;align-items:center;gap:8px;height:32px;padding:0 14px;border-radius:999px;color:var(--ink-2);white-space:nowrap}
.rp-nav a span:first-child{font-size:11px}
.rp-nav a:hover{background:var(--surface)}
.rp-nav a.on{background:var(--canvas);color:var(--ink);font-weight:600;box-shadow:0 1px 2px rgba(34,32,28,.08)}
.rp-tools{display:flex;align-items:center;gap:10px;font-size:13px}
.rp-clock,.rp-readout{color:var(--ink-2);font-variant-numeric:tabular-nums;white-space:nowrap}
/* the currency dropdown (7 Oct 2026): a compact select, the code in bold */
.rp-select.rp-cur{height:36px;padding:0 26px 0 10px;font-weight:600;font-size:12px;letter-spacing:.01em}
.rp-ibtn{width:36px;height:36px;border:1px solid var(--line);background:var(--surface);border-radius:10px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--ink);padding:0}
.rp-ibtn:hover{background:var(--f6)}
.rp-ibtn svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
/* the product switch: New Business | Reputation, a segmented control */
.rp-seg{display:flex;padding:3px;background:var(--canvas-2);border-radius:10px}
.rp-seg a,.rp-seg button{height:30px;padding:0 12px;border-radius:8px;font-size:13px;color:var(--ink-2);display:flex;align-items:center;border:0;background:transparent;cursor:pointer;white-space:nowrap}
.rp-seg .on{background:var(--surface);color:var(--ink);font-weight:600;box-shadow:0 1px 2px rgba(34,32,28,.08)}
.rp-seg.sm a,.rp-seg.sm button{height:26px;padding:0 10px;font-size:12px;border-radius:6px}
/* the phone bar: the sections, at the foot */
.rp-phonebar{display:none;position:fixed;left:0;right:0;bottom:0;height:56px;padding:0 8px env(safe-area-inset-bottom,0);background:var(--canvas);border-top:1px solid var(--line);align-items:center;justify-content:space-around;z-index:30}
.rp-phonebar a{display:flex;flex-direction:column;align-items:center;gap:2px;font-size:10px;color:var(--ink-2);padding:6px 8px;border-radius:8px}
.rp-phonebar a span:first-child{font-size:11px;font-weight:600;color:var(--ink)}
.rp-phonebar a.on{background:var(--canvas-2);color:var(--ink)}

/* ── page ── */
.rp-main{width:100%;max-width:1400px;margin:0 auto;padding:28px 32px 96px;display:flex;flex-direction:column;gap:32px;flex:1}
.rp-page-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px 40px}
.rp-page-head .l{display:flex;flex-direction:column;gap:8px;min-width:0}
.rp-page-head .r{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.rp-h1{font-size:clamp(28px,3.4vw,40px);line-height:1.05;letter-spacing:-.025em}
.rp-lede{font-size:15px;line-height:1.5;color:var(--ink-2);max-width:64ch}
.rp-back{font-size:13px;color:var(--ink-2);display:inline-flex;align-items:center;gap:6px}
.rp-back:hover{color:var(--ink)}
.rp-sec{display:flex;flex-direction:column;gap:14px;min-width:0}
.rp-sec-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 14px;padding-top:12px;border-top:1px solid var(--line)}
.rp-sec-head.flush{padding-top:0;border-top:0}
.rp-h2{font-size:20px;line-height:1.2;letter-spacing:-.015em}
.rp-idx{font-size:13px;font-weight:600;color:var(--ink-3);font-variant-numeric:tabular-nums}
.rp-sec-note{font-size:13px;color:var(--ink-2)}
.rp-sec-tail{margin-left:auto;font-size:12px;color:var(--ink-3)}
.rp-cap{font-size:12px;line-height:16px;font-weight:500;color:var(--ink-2)}
.rp-muted{font-size:13px;color:var(--ink-2)}
.rp-note{font-size:13px;line-height:1.5;color:var(--ink-2);max-width:64ch}
.rp-foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 24px;padding-top:12px;border-top:1px solid var(--line);font-size:12px;color:var(--ink-3)}
.rp-grid{display:grid;gap:12px}
.rp-grid-2{grid-template-columns:repeat(auto-fit,minmax(min(420px,100%),1fr));gap:24px 32px}
.rp-grid-3{grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr));gap:24px 32px}
.rp-grid-4{grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr))}
.rp-grid-6{grid-template-columns:repeat(auto-fit,minmax(min(180px,100%),1fr))}
.rp-stack{display:flex;flex-direction:column;gap:14px;min-width:0}

/* ── cards and stat tiles ── */
.rp-card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:18px 20px}
.rp-card.flat{background:var(--canvas-2);border-color:transparent}
.rp-stat{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:20px 22px;display:flex;flex-direction:column;justify-content:space-between;gap:18px;min-height:176px}
.rp-stat.ink{background:var(--ink);color:var(--on-ink);border-color:var(--ink)}
.rp-stat.hero{min-height:220px}
.rp-stat-label{display:inline-flex;align-items:center;gap:8px;font-size:13px;line-height:18px;font-weight:500;color:var(--ink-2)}
.rp-stat.ink .rp-stat-label,.rp-stat.ink .rp-stat-sub{color:inherit;opacity:.72}
.rp-stat-value{font-family:var(--display);font-weight:700;font-size:clamp(40px,4.4vw,64px);line-height:.95;letter-spacing:-.04em}
.rp-stat.hero .rp-stat-value{font-size:clamp(56px,6vw,88px)}
.rp-stat.sm{min-height:0;padding:16px 18px;gap:10px}
.rp-stat.sm .rp-stat-value{font-size:clamp(28px,3vw,40px)}
.rp-stat-sub{font-size:13px;line-height:18px;color:var(--ink-2)}
.rp-stat-row{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.rp-stat.met{border-color:var(--rag-green)}
.rp-stat.met .rp-stat-label{color:var(--rag-green)}

/* ── status: dots, pills, tags, legends ── */
.rp-dot{width:8px;height:8px;border-radius:50%;background:var(--ink-3);flex:none;display:inline-block}
.rp-dot.lg{width:10px;height:10px}
[data-st="won"]>.rp-dot,.rp-dot[data-st="won"]{background:var(--st-won)}
[data-st="open"]>.rp-dot,.rp-dot[data-st="open"]{background:var(--st-open)}
[data-st="lost"]>.rp-dot,.rp-dot[data-st="lost"]{background:var(--st-lost)}
[data-st="cancelled"]>.rp-dot,.rp-dot[data-st="cancelled"]{background:var(--st-cancelled)}
[data-st="declined"]>.rp-dot,.rp-dot[data-st="declined"]{background:var(--st-declined)}
[data-st="other"]>.rp-dot,.rp-dot[data-st="other"]{background:var(--st-cancelled)}
[data-st="all"]>.rp-dot,.rp-dot[data-st="all"]{background:var(--ink)}
[data-rag="green"]>.rp-dot,.rp-dot[data-rag="green"]{background:var(--rag-green)}
[data-rag="amber"]>.rp-dot,.rp-dot[data-rag="amber"]{background:var(--rag-amber)}
[data-rag="red"]>.rp-dot,.rp-dot[data-rag="red"]{background:var(--rag-red)}
[data-rag="none"]>.rp-dot,.rp-dot[data-rag="none"]{background:var(--rag-none)}
.rp-status{display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:600;color:var(--ink-2);white-space:nowrap}
.rp-status[data-st="won"]{color:var(--st-won)}
.rp-status[data-st="open"]{color:var(--st-open)}
.rp-status[data-st="lost"]{color:var(--st-lost)}
.rp-status[data-rag="green"]{color:var(--rag-green)}
.rp-status[data-rag="amber"]{color:var(--rag-amber)}
.rp-status[data-rag="red"]{color:var(--rag-red)}
.rp-status[data-rag="none"]{color:var(--ink-3)}
.rp-tag{display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 8px;border-radius:999px;font-size:11px;font-weight:600;background:var(--canvas-2);color:var(--ink-2);white-space:nowrap}
.rp-tag.ink{background:var(--ink);color:var(--on-ink)}
.rp-tag.teal{background:var(--teal-wash);color:var(--teal)}
.rp-tag.warn{background:var(--red-soft);color:var(--red-text)}
.rp-tag.amber{background:var(--amber-soft);color:var(--amber-text)}
.rp-tag.green{background:var(--green-soft);color:var(--green-text)}
.rp-legend{display:flex;flex-wrap:wrap;gap:8px 16px;font-size:13px;color:var(--ink-2)}
.rp-legend>span{display:inline-flex;align-items:center;gap:6px}
.rp-legend .rp-dot{width:10px;height:10px}
/* the four stat tiles' outcome word, e.g. "Won", carries its dot */
.rp-kicker{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:600}

/* ── controls ── */
.rp-btn{height:40px;padding:0 16px;border:1px solid var(--line);background:transparent;border-radius:10px;font-size:13px;color:var(--ink);cursor:pointer;display:inline-flex;align-items:center;gap:8px;white-space:nowrap;text-decoration:none}
.rp-btn:hover{background:var(--canvas-2)}
.rp-btn.fill{background:var(--ink);color:var(--on-ink);border-color:var(--ink);font-weight:600}
.rp-btn.fill:hover{background:var(--ink);opacity:.92}
.rp-btn.ink{border-color:var(--ink);font-weight:600}
.rp-btn.sm{height:32px;padding:0 12px;border-radius:8px;font-size:12px}
.rp-btn.big{height:44px;border-radius:12px;font-size:14px;font-weight:600}
.rp-btn.warn{border-color:var(--red-text);color:var(--red-text)}
.rp-btn.dashed{border-style:dashed;color:var(--ink-2)}
.rp-btn svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.rp-chip{display:inline-flex;align-items:center;gap:8px;height:32px;padding:0 12px;border-radius:999px;border:1px solid var(--line);font-size:13px;color:var(--ink);cursor:pointer;background:transparent;white-space:nowrap}
.rp-chip .n{color:var(--ink-2)}
.rp-chip:hover{background:var(--canvas-2)}
.rp-chip.on{background:var(--ink);color:var(--on-ink);border-color:var(--ink)}
.rp-chip.on .n{color:inherit;opacity:.7}
.rp-chips{display:flex;flex-wrap:wrap;gap:6px}
.rp-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.rp-toolbar .l,.rp-toolbar .r{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.rp-search{display:flex;align-items:center;gap:8px;height:36px;padding:0 10px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}
.rp-search svg{width:13px;height:13px;stroke:var(--ink-2);fill:none;stroke-width:2;stroke-linecap:round}
.rp-search input{border:0;background:transparent;font-size:13px;width:200px;outline:none;color:var(--ink);min-width:0}
.rp-search input::placeholder{color:var(--ink-3)}
.rp-select{height:36px;padding:0 28px 0 12px;border:1px solid var(--line);background:var(--surface);border-radius:10px;font-size:13px;color:var(--ink);cursor:pointer;-webkit-appearance:none;appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--ink-2) 50%),linear-gradient(135deg,var(--ink-2) 50%,transparent 50%);background-position:calc(100% - 14px) 50%,calc(100% - 9px) 50%;background-size:5px 5px;background-repeat:no-repeat}
/* fields */
.rp-field{display:flex;flex-direction:column;gap:6px;min-width:0}
.rp-field label,.rp-label{font-size:12px;line-height:16px;font-weight:600;color:var(--ink-2)}
.rp-field input,.rp-field select,.rp-field textarea,.rp-input{height:40px;padding:0 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);font-size:14px;color:var(--ink);outline:none;width:100%;min-width:0}
.rp-field.lg input,.rp-field.lg select{height:44px;border-radius:12px}
.rp-field textarea{height:96px;padding:12px 14px;line-height:1.45;resize:vertical}
.rp-field input:focus,.rp-field select:focus,.rp-field textarea:focus,.rp-input:focus{border-color:var(--ink)}
.rp-field input::placeholder,.rp-field textarea::placeholder{color:var(--ink-3)}
.rp-field select{-webkit-appearance:none;appearance:none;padding-right:32px;background-image:linear-gradient(45deg,transparent 50%,var(--ink-2) 50%),linear-gradient(135deg,var(--ink-2) 50%,transparent 50%);background-position:calc(100% - 16px) 50%,calc(100% - 11px) 50%;background-size:5px 5px;background-repeat:no-repeat}
.rp-field .h{font-size:12px;color:var(--ink-3)}
.rp-field.ro input{background:var(--canvas-2);color:var(--ink-2)}
.rp-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 16px}
.rp-form .full{grid-column:1/-1}
.rp-form .half{grid-column:span 2}
.rp-form-acts{display:flex;gap:8px;align-items:center;flex-wrap:wrap;grid-column:1/-1}
.rp-fieldset{border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:18px 20px 20px;margin:0;min-width:0;display:flex;flex-direction:column;gap:14px}
.rp-fieldset legend{padding:0 6px;margin-left:-6px;display:flex;align-items:baseline;gap:10px}
.rp-fieldset legend .t{font-size:16px;font-weight:600;letter-spacing:-.01em}
.rp-fieldset legend .s{font-size:13px;color:var(--ink-2)}
.rp-kv{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 16px;font-size:14px}
.rp-kv .k{color:var(--ink-2)}
.rp-kv .v{text-align:right;font-weight:600;font-variant-numeric:tabular-nums}
.rp-mask{display:inline-flex;align-items:center;gap:10px;font-variant-numeric:tabular-nums;letter-spacing:.12em}

/* ── tables ── */
.rp-table-wrap{background:var(--surface);border:1px solid var(--line);border-radius:14px;overflow:auto}
.rp-table{width:100%;border-collapse:collapse;font-size:13px}
.rp-table th{position:sticky;top:0;z-index:1;background:var(--surface);text-align:left;font-size:12px;line-height:16px;font-weight:600;color:var(--ink-2);padding:12px 14px;border-bottom:1px solid var(--line);white-space:nowrap}
.rp-table td{padding:10px 14px;border-bottom:1px solid var(--line);vertical-align:middle;background:var(--surface)}
.rp-table tr:last-child td{border-bottom:0}
.rp-table th.num,.rp-table td.num{text-align:right;font-variant-numeric:tabular-nums}
.rp-table td.t{font-weight:600;font-size:14px}
.rp-table td.m{color:var(--ink-2)}
.rp-table tr.foot td{background:var(--canvas-2);color:var(--ink-2);font-size:12px}
.rp-table.tight td{padding:8px 14px}
.rp-table.cells td{padding:4px 6px}
.rp-table.cells td:first-child{padding-left:10px}
/* a cell that is a real input: quiet until hovered, framed when focused */
.rp-cell{font-size:13px;color:var(--ink);background:transparent;border:1px solid transparent;border-radius:8px;padding:0 8px;min-height:36px;width:100%;min-width:0}
.rp-cell:hover{border-color:var(--line);background:var(--f3)}
.rp-cell:focus{outline:none;border-color:var(--ink);background:var(--surface)}
.rp-cell.num{text-align:right;font-variant-numeric:tabular-nums}
.rp-cell.ro{color:var(--ink-2)}
.rp-cell.b{font-weight:600}
.rp-cell.big{font-size:16px;font-weight:600}
select.rp-cell{-webkit-appearance:none;appearance:none;padding-right:26px;background-image:linear-gradient(45deg,transparent 50%,var(--ink-2) 50%),linear-gradient(135deg,var(--ink-2) 50%,transparent 50%);background-position:calc(100% - 13px) 50%,calc(100% - 8px) 50%;background-size:5px 5px;background-repeat:no-repeat;cursor:pointer}
textarea.rp-cell{min-height:36px;padding:8px;resize:vertical;line-height:1.4}
.rp-cellwrap{display:flex;align-items:center;gap:0}
.rp-cellwrap .rp-dot{margin-left:8px}
.rp-cellcol{display:flex;flex-direction:column;gap:0;padding:4px 0}
.rp-cellcol a{font-weight:600;font-size:14px;padding:0 8px}
.rp-cellcol a:hover{color:var(--teal)}
/* a hairline list (sectors, sources) */
.rp-rows{display:flex;flex-direction:column}
.rp-row{display:grid;grid-template-columns:var(--cols,minmax(0,1fr) auto);gap:12px;align-items:center;padding:9px 0;border-bottom:1px solid var(--line);font-size:14px}
.rp-row:last-child{border-bottom:0}
.rp-row .k{font-weight:600}
.rp-row .n{text-align:right;font-variant-numeric:tabular-nums}
.rp-row .n.won{color:var(--st-won);font-weight:600}
.rp-row .n.quiet{color:var(--ink-2)}
.rp-row.cap{font-size:12px;color:var(--ink-3);padding-top:8px}
.rp-row .sw{width:12px;height:12px;border-radius:3px;display:inline-block}

/* ── marks: dots, bars, meters ── */
.rp-months{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:12px;align-items:end}
.rp-month{display:flex;flex-direction:column;gap:10px;align-items:center}
.rp-dots{display:grid;grid-template-columns:repeat(3,10px);gap:4px;justify-content:center;align-content:end;min-height:160px}
.rp-dots i{width:10px;height:10px;border-radius:50%;display:block;background:var(--st-cancelled)}
.rp-dots i[data-st="won"]{background:var(--st-won)} .rp-dots i[data-st="open"]{background:var(--st-open)} .rp-dots i[data-st="lost"]{background:var(--st-lost)}
.rp-month-total{font-family:var(--display);font-size:18px;font-weight:700;letter-spacing:-.02em;line-height:1}
.rp-month-name{font-size:12px;color:var(--ink-2)}
/* proportional blocks: width is the share; a 2px gap of canvas between fills */
.rp-bars{display:flex;gap:2px;height:var(--h,56px);min-width:0}
.rp-bar{flex:var(--w,1) 1 0;min-width:0;overflow:hidden;border-radius:6px;padding:10px 10px;display:flex;flex-direction:column;justify-content:space-between;background:var(--canvas-2);color:var(--ink);font-size:13px;position:relative}
.rp-bar.end{justify-content:flex-end}
.rp-bar .k{font-size:12px;font-weight:600;white-space:nowrap}
.rp-bar .v{font-family:var(--display);font-size:clamp(18px,2.6vw,36px);font-weight:700;letter-spacing:-.03em;line-height:.95}
.rp-bar .v small{display:block;font-family:var(--sans);font-size:12px;font-weight:500;letter-spacing:0;margin-top:6px;opacity:.8}
.rp-bar.s1{background:var(--seq-1)} .rp-bar.s2{background:var(--seq-2)} .rp-bar.s3{background:var(--seq-3);color:var(--on-seq)} .rp-bar.s4{background:var(--seq-4);color:var(--on-seq)}
.rp-bar.i1{background:var(--ink-ramp-1);color:var(--on-ink)} .rp-bar.i2{background:var(--ink-ramp-2);color:var(--on-ink)} .rp-bar.i3{background:var(--ink-ramp-3)} .rp-bar.i4{background:var(--ink-ramp-4)}
.rp-bar[data-st="won"]{background:var(--st-won);color:#fff} .rp-bar[data-st="open"]{background:var(--st-open);color:#fff} .rp-bar[data-st="lost"]{background:var(--st-lost);color:#fff} .rp-bar[data-st="cancelled"]{background:var(--st-cancelled);color:#fff} .rp-bar[data-st="declined"]{background:var(--st-declined)}
.rp-bar[data-rag="green"]{background:var(--rag-green)} .rp-bar[data-rag="amber"]{background:var(--rag-amber)} .rp-bar[data-rag="red"]{background:var(--rag-red)} .rp-bar[data-rag="none"]{background:var(--rag-none)}
:root[data-theme="dark"] .rp-bar[data-st="won"],:root[data-theme="dark"] .rp-bar[data-st="open"],:root[data-theme="dark"] .rp-bar[data-st="lost"]{color:#111}
.rp-bars.thin{--h:24px}
.rp-bars.thin .rp-bar{padding:0;border-radius:4px}
.rp-ramp{display:inline-flex;align-items:center;gap:8px;font-size:12px;color:var(--ink-2)}
.rp-ramp i{display:inline-block;width:18px;height:10px}
.rp-ramp i:first-of-type{border-radius:3px 0 0 3px}.rp-ramp i:last-of-type{border-radius:0 3px 3px 0}
/* horizontal bars with a label and a value (years, peers, baselines) */
.rp-hbars{display:flex;flex-direction:column;gap:6px}
.rp-hbar{display:grid;grid-template-columns:var(--lab,56px) minmax(0,1fr) var(--val,auto);gap:12px;align-items:center;font-size:13px}
.rp-hbar .k{color:var(--ink-2);font-weight:500}
.rp-hbar .k.on{color:var(--ink);font-weight:600}
.rp-hbar .bar{height:var(--h,40px);width:var(--w,100%);min-width:0;border-radius:6px;background:var(--ink-ramp-4);display:flex;align-items:center;padding:0 12px;gap:10px;font-family:var(--display);font-size:18px;font-weight:700;letter-spacing:-.02em;white-space:nowrap;overflow:hidden}
.rp-hbar .bar small{font-family:var(--sans);font-size:12px;font-weight:500;letter-spacing:0;color:var(--ink-2)}
.rp-hbar .bar.won{background:var(--st-won);color:#fff}
.rp-hbar .bar.won small{color:inherit;opacity:.8}
.rp-hbar .bar.ink{background:var(--ink);color:var(--on-ink)}
.rp-hbar .bar.ink small{color:inherit;opacity:.72}
.rp-hbar .bar.quiet{background:var(--ink-ramp-3)}
.rp-hbar .bar.goal{background:transparent;border:2px solid var(--teal)}
.rp-hbar .v.goal{color:var(--teal)}
.rp-hbar .v{text-align:right;font-variant-numeric:tabular-nums;font-weight:600}
.rp-hbar .v.quiet{color:var(--ink-2);font-weight:400}
:root[data-theme="dark"] .rp-hbar .bar.won{color:#111}
/* a track with a fill, for baseline-versus-target rows */
.rp-meter{height:10px;border-radius:5px;background:var(--f8);overflow:hidden;position:relative}
.rp-meter i{display:block;height:100%;width:var(--w,0%);background:var(--ink);border-radius:5px}
.rp-meter i.won{background:var(--st-won)}
.rp-meter i.quiet{background:var(--ink-ramp-3)}
.rp-meter .mark{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--ink);left:var(--x,100%)}

/* ── tabs (the registers) ── */
.rp-tabs{display:flex;gap:4px;padding:4px;background:var(--canvas-2);border-radius:12px;width:max-content;max-width:100%}
.rp-tabs button{height:36px;padding:0 14px;border:0;background:transparent;border-radius:9px;font-size:13px;color:var(--ink-2);cursor:pointer;display:inline-flex;align-items:center;gap:8px;white-space:nowrap}
.rp-tabs button .n{font-size:12px;color:var(--ink-3)}
.rp-tabs button.on{background:var(--surface);color:var(--ink);font-weight:600;box-shadow:0 1px 2px rgba(34,32,28,.08)}
.rp-tabs button.on .n{color:var(--ink-2)}
[hidden]{display:none!important}

/* ── empty, help ── */
.rp-empty{padding:28px 14px;color:var(--ink-2);font-size:13px}
.rp-help{position:relative}
.rp-help summary{list-style:none;cursor:pointer;display:inline-flex}
.rp-help summary::-webkit-details-marker{display:none}
.rp-help .pop{position:absolute;right:0;top:calc(100% + 8px);width:min(360px,calc(100vw - 32px));background:var(--surface-raised);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-raised);padding:14px 16px;font-size:13px;line-height:1.5;color:var(--ink-2);z-index:25}
.rp-help .pop p+p{margin-top:8px}

/* ── the A4 sheets (the two reports) ── */
.rp-a4-stage{display:flex;justify-content:center;padding:28px 16px 96px}
.rp-a4{width:794px;min-height:1123px;background:var(--surface);color:var(--ink);box-shadow:var(--shadow-paper);padding:40px 48px;display:flex;flex-direction:column;gap:22px;font-size:13px;line-height:1.4;flex:none;max-width:100%}
.rp-a4-head{display:flex;justify-content:space-between;align-items:center;gap:16px;padding-bottom:12px;border-bottom:1px solid var(--line);font-size:12px;color:var(--ink-2)}
.rp-a4-head .brand{display:flex;align-items:center;gap:10px;color:var(--ink);font-weight:600}
.rp-a4-head .brand img{height:18px;width:auto;display:block;filter:var(--logo-filter,none)}
.rp-a4 .rp-stat{min-height:0;padding:14px 16px;gap:8px}
.rp-a4 .rp-stat-value{font-size:30px}
.rp-a4 .rp-h2{font-size:16px}
.rp-a4 .rp-sec{gap:10px}
.rp-a4 .rp-sec-head{padding-top:8px}
.rp-a4 .rp-foot{margin-top:auto}
.rp-a4-big{font-family:var(--display);font-size:150px;line-height:.8;letter-spacing:-.06em;font-weight:700;color:var(--st-won)}
.rp-a4-lede{font-size:17px;font-weight:500;line-height:1.35;letter-spacing:-.01em;text-wrap:pretty}
.rp-a4 .rp-bar .v{font-size:22px}
@page{size:A4;margin:0}
@media print{
  html,body{background:#fff}
  .rp-mast,.rp-phonebar,.rp-a4-tools,.rp-aside,.rp-strip,.bpx-wrap,.bpx-menu,.bax-btn,.bax-panel,[class^="bax-"]{display:none!important}
  .rp-split,.rp-body{display:block}
  .rp-a4-stage{padding:0}
  .rp-a4{box-shadow:none;width:210mm;max-width:none;min-height:297mm;padding:14mm 16mm}
  html[data-gate="pending"] body>*{visibility:visible}
}

/* ── phone and tablet ── */
@media (max-width:1180px){
  .rp-readout{display:none}
  .rp-nav a{padding:0 11px;gap:6px}
}
@media (max-width:1000px){
  .rp-mast{padding:0 20px}
  .rp-clock{display:none}
  .rp-main{padding:20px 20px 96px}
  .rp-form{grid-template-columns:repeat(2,minmax(0,1fr))}
  .rp-form .half{grid-column:1/-1}
  .rp-months{grid-template-columns:repeat(5,minmax(0,1fr))}
}
@media (max-width:700px){
  .rp-mast{height:56px;padding:0 16px;gap:8px}
  .rp-logo{height:20px}
  .rp-name,.rp-nav,.rp-readout{display:none} /* the wordmark says BRASH; the phone bar says where you are */
  .rp-mast-mid{justify-content:flex-end}
  .rp-seg.rp-product a{height:28px;padding:0 10px;font-size:12px}
  .rp-phonebar{display:flex}
  .rp-stat,.rp-stat.hero{min-height:0;gap:14px}
  .rp-main{padding:16px 16px 100px;gap:24px}
  .rp-form{grid-template-columns:1fr}
  .rp-stat{min-height:140px;padding:16px 18px}
  .rp-stat-value{font-size:40px}
  .rp-stat.hero .rp-stat-value{font-size:56px}
  .rp-page-head{align-items:flex-start;flex-direction:column}
  .rp-search input{width:140px}
  .rp-a4-stage{padding:16px 0 100px}
  .rp-a4{padding:24px 20px}
  .rp-a4-big{font-size:96px}
  .rp-bar .v{font-size:18px}
}

/* ── the toast (reporting.js) ── */
.rp-toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,16px);opacity:0;pointer-events:none;background:var(--ink);color:var(--on-ink);padding:10px 16px;border-radius:10px;font-size:13px;font-weight:600;z-index:90;box-shadow:var(--shadow-raised);transition:opacity .2s,transform .2s;max-width:calc(100vw - 32px);text-align:center}
.rp-toast.on{opacity:1;transform:translate(-50%,0)}
@media (max-width:700px){.rp-toast{bottom:calc(64px + env(safe-area-inset-bottom,0px))}}

/* the A4 sheets' small tiles keep the sheet's size, and a page head that only
   introduces a sheet does not push it 96px down */
.rp-a4 .rp-stat.sm .rp-stat-value{font-size:30px}
.rp-main:has(+ .rp-a4-stage){padding-bottom:0}

/* printed from the dark appearance, the sheet still goes to paper white: the
   light values are restated on the sheet itself for print only */
@media print{
  .rp-a4{background:#fff;color:#111;box-shadow:none;
    --surface:#FFFFFF;--canvas:#F3F2EF;--canvas-2:#ECEBE7;--ink:#111111;--ink-2:#4A4A48;--ink-3:#66655F;--on-ink:#FFFFFF;--line:rgba(0,0,0,.08);--f8:rgba(17,17,17,.08);
    --st-won:#1B6E8F;--st-open:#C27A00;--st-lost:#D40000;--st-cancelled:#8A8984;--st-declined:#C9C7C2;
    --rag-green:#1E7F4A;--rag-amber:#C27A00;--rag-red:#D40000;--rag-none:#B9B7B2;
    --seq-1:#DBE8ED;--seq-2:#A4C5D2;--seq-3:#5F9AB1;--seq-4:#1B6E8F;--on-seq:#FFFFFF;
    --ink-ramp-1:#111111;--ink-ramp-2:#66655F;--ink-ramp-3:#A6A4A0;--ink-ramp-4:#D6D4CF;--logo-filter:none}
}
/* on paper, only the sheet: the page head that introduces it stays on screen */
@media print{.rp-main:has(+ .rp-a4-stage){display:none}}
/* the same paper values as a class: the archive's PDF capture (reporting.js,
   ARCHIVE.render) puts .paper on the sheet for the moment it is drawn, so a
   PDF saved from the dark appearance is still the white sheet */
.rp-a4.paper{background:#fff;color:#111;box-shadow:none;
  --surface:#FFFFFF;--canvas:#F3F2EF;--canvas-2:#ECEBE7;--ink:#111111;--ink-2:#4A4A48;--ink-3:#66655F;--on-ink:#FFFFFF;--line:rgba(0,0,0,.08);--f8:rgba(17,17,17,.08);
  --st-won:#1B6E8F;--st-open:#C27A00;--st-lost:#D40000;--st-cancelled:#8A8984;--st-declined:#C9C7C2;
  --rag-green:#1E7F4A;--rag-amber:#C27A00;--rag-red:#D40000;--rag-none:#B9B7B2;
  --seq-1:#DBE8ED;--seq-2:#A4C5D2;--seq-3:#5F9AB1;--seq-4:#1B6E8F;--on-seq:#FFFFFF;
  --ink-ramp-1:#111111;--ink-ramp-2:#66655F;--ink-ramp-3:#A6A4A0;--ink-ramp-4:#D6D4CF;--logo-filter:none}

/* ── top clients (15 Oct 2026): a client's name on its row, cut short rather
   than wrapped; the value is the share, then the money ── */
.rp-clients .rp-hbar .k{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.rp-clients .rp-hbar .v{white-space:nowrap;font-weight:500}
.rp-clients .rp-hbar .v b{font-weight:700}
.rp-clients .rp-hbar .v.quiet b{color:var(--ink)}
.rp-a4 .rp-clients .rp-hbar{font-size:12px;gap:10px}
/* the sheet since 15 Oct 2026 carries one more figure: its rows and gaps sit a
   little tighter so it still prints on one page */
.rp-a4{gap:16px;padding:36px 44px}
.rp-a4 .rp-row{padding:5px 0;font-size:12px}
.rp-a4 .rp-hbars{gap:5px}
.rp-a4 .rp-grid-6{gap:3px 14px}
.rp-clients .rp-meter{height:12px;border-radius:6px}
.rp-clients .rp-meter i{border-radius:6px}

/* the report period picker beside Save PDF and Print (15 Oct 2026) */
.rp-page-head .r .rp-period{height:40px;border-radius:10px;max-width:220px}

/* ── the archive fold under an A4 sheet's page head (15 Oct 2026) ── */
.rp-archive{border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.rp-archive>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:10px;padding:12px 16px;font-size:13px;font-weight:600;color:var(--ink)}
.rp-archive>summary::-webkit-details-marker{display:none}
.rp-archive>summary .n{color:var(--ink-2);font-weight:500}
.rp-archive>summary::after{content:"";width:7px;height:7px;border-right:1.5px solid var(--ink-2);border-bottom:1.5px solid var(--ink-2);transform:rotate(45deg);margin-left:auto;margin-top:-4px;transition:transform .2s}
.rp-archive[open]>summary::after{transform:rotate(-135deg);margin-top:4px}
.rp-archive .rp-archive-list{padding:0 16px 6px;border-top:1px solid var(--line)}
.rp-archive .rp-archive-list .rp-empty{padding:16px 0}
.rp-archive-row{--cols:minmax(0,1.3fr) minmax(0,1fr) auto;font-size:13px}
.rp-archive-row b{font-size:14px}
@media (max-width:700px){.rp-archive-row{--cols:minmax(0,1fr) auto}.rp-archive-row>span:nth-child(2){display:none}}

/* ── the trends screen and the switchable dashboard (7 Oct 2026) ── */
.rp-month.on .rp-month-total{color:var(--ink)}
.rp-month.dim{opacity:.38}
.rp-month.on .rp-month-name{color:var(--ink);font-weight:600}
.rp-cols{display:flex;align-items:flex-end;gap:3px;height:88px;padding-top:4px}
.rp-cols i{flex:1;min-width:0;background:var(--ink);border-radius:3px 3px 0 0;display:block;min-height:2px}
.rp-cols i.zero{background:var(--f12)}
.rp-cols.quiet i{background:var(--ink-ramp-3)}
.rp-cols.won i{background:var(--st-won)}
.rp-cols-axis{display:grid;grid-template-columns:repeat(12,1fr);gap:3px;font-size:11px;color:var(--ink-3);text-align:center;margin-top:6px}
.rp-delta{font-variant-numeric:tabular-nums;color:var(--ink-3)}
.rp-delta.up{color:var(--green-text)}
.rp-delta.down{color:var(--red-text)}
.rp-table tr.quiet td{color:var(--ink-3)}
.rp-cell.saved{border-color:var(--green-text);background:var(--green-soft)}
.rp-readout .rp-tag{margin-left:8px;vertical-align:middle}
@media (max-width:700px){.rp-cols{height:64px}.rp-cols-axis{font-size:9px}}

/* ── motion (12 Oct 2026) ──
   Proportional blocks (markets, sources): a condensed block widens on hover,
   on keyboard focus, or when its line in the list below is hovered, and shows
   the name and the figures the width could not hold; the others give way.
   Everything else here is entrance and change: the marks rise in when a screen
   paints or the year switches, bars grow to their length, the stat tiles count
   to their number (reporting.js), the trends columns name themselves on hover,
   the scorecard's RAG colours and bar re-proportion as actuals are typed.
   prefers-reduced-motion collapses all of it (the rule near the top). */
@keyframes rp-rise{from{opacity:0;transform:translateY(6px)}}
@keyframes rp-in{from{opacity:0;transform:translateY(3px)}}
@keyframes rp-grow{from{width:0}}
@keyframes rp-up{from{transform:scaleY(0)}}
/* the blocks: what each width tier shows at rest */
.rp-bar{transition:flex-grow .4s cubic-bezier(.2,.7,.2,1),padding .4s cubic-bezier(.2,.7,.2,1),min-width .4s;cursor:default}
.rp-bar.narrow{padding:10px 6px}
.rp-bar.hair{min-width:6px;padding:0}
.rp-bar .k .ab,.rp-bar .k .nm{display:none}
.rp-bar[data-fit="2"] .k .ab{display:inline}
.rp-bar[data-fit="3"] .k .nm,.rp-bar[data-fit="4"] .k .nm{display:inline}
.rp-bar[data-fit="0"] .k,.rp-bar[data-fit="1"] .k,.rp-bar[data-fit="0"] .v,.rp-bar.quietk .k{display:none}
.rp-bar[data-fit]:not([data-fit="4"]) .v small{display:none}
.rp-bar .v.sm{font-size:16px}
/* the widened block: hovered, focused, or named from the list */
.rp-live .rp-bar:is(:hover,:focus-visible,.hot){flex-grow:var(--wh,var(--w,1));padding:10px 10px;min-width:0;justify-content:space-between}
.rp-live .rp-bar:is(:hover,:focus-visible,.hot) .k,.rp-live .rp-bar:is(:hover,:focus-visible,.hot) .v{display:block}
.rp-live .rp-bar:is(:hover,:focus-visible,.hot) .k .ab{display:none}
.rp-live .rp-bar:is(:hover,:focus-visible,.hot) .k .nm,.rp-live .rp-bar:is(:hover,:focus-visible,.hot) .v small{display:block;animation:rp-in .3s .16s cubic-bezier(.2,.7,.2,1) both}
.rp-live .rp-bar:is(:hover,:focus-visible,.hot) .v.sm{font-size:clamp(18px,2.6vw,36px)}
.rp-live .rp-bar:focus-visible{outline-offset:-2px}
/* the list under a block chart lights the block it names, and the reverse */
.rp-link [data-key]{transition:color .2s;cursor:default}
.rp-link [data-key].hot{color:var(--ink)}
.rp-link .rp-row .sw{transition:transform .2s}
.rp-link .rp-row.hot .sw{transform:scale(1.35)}
/* entrance: the marks a screen paints rise in, one after the other */
.rp-fresh>*{animation:rp-rise .5s cubic-bezier(.2,.7,.2,1) both;animation-delay:calc(var(--i,0)*28ms)}
.rp-hbar .bar,.rp-meter i{animation:rp-grow .7s cubic-bezier(.2,.7,.2,1) both;animation-delay:calc(var(--i,0)*60ms)}
.rp-hbar:nth-child(2){--i:1}.rp-hbar:nth-child(3){--i:2}.rp-hbar:nth-child(4){--i:3}.rp-hbar:nth-child(5){--i:4}.rp-hbar:nth-child(6){--i:5}.rp-hbar:nth-child(7){--i:6}.rp-hbar:nth-child(8){--i:7}
.rp-fresh.rp-cols>i{animation-name:rp-up;transform-origin:bottom}
.rp-a4 *{animation:none!important}
html[data-gate="pending"] :is(.rp-main,.rp-split) *{animation-play-state:paused!important}
/* the months: hover one and the rest step back */
.rp-month{transition:opacity .25s}
.rp-months:hover .rp-month:not(:hover){opacity:.45}
.rp-months:hover .rp-month:hover .rp-month-total,.rp-months:hover .rp-month:hover .rp-month-name{color:var(--ink)}
/* the trends columns: hover one and it names its month and value */
.rp-cols{padding-top:18px}
.rp-cols i{position:relative;transition:opacity .2s}
.rp-cols:hover i:not(:hover){opacity:.5}
.rp-cols i::after{content:attr(data-v);position:absolute;bottom:calc(100% + 4px);left:50%;transform:translate(-50%,3px);white-space:nowrap;font-size:11px;font-weight:600;line-height:14px;padding:2px 7px;border-radius:5px;background:var(--ink);color:var(--on-ink);opacity:0;pointer-events:none;transition:opacity .18s,transform .18s;z-index:2}
.rp-cols i:hover::after{opacity:1;transform:translate(-50%,0)}
.rp-cols i:first-child::after{left:0;transform:translate(0,3px)}.rp-cols i:first-child:hover::after{transform:none}
.rp-cols i:last-child::after{left:auto;right:0;transform:translate(0,3px)}.rp-cols i:last-child:hover::after{transform:none}
/* the scorecard: RAG colours and the status bar move as actuals are typed */
.rp-kpi{transition:border-top-color .35s}
.rp-status{transition:color .25s}
.rp-stat-value[data-n]{font-variant-numeric:tabular-nums}

/* registers (12 Oct 2026): text cells beside input cells keep the row's padding */
.rp-table.cells td.pad{padding:4px 14px}
.rp-table tr.quiet td{color:var(--ink-3)}

/* ═══════════ Route A3 (21 Oct 2026): the aside, the dot strip, the ledgers ═══════════
   Lara's redesign in Claude Design, "Dot strip as the nav": every screen is an
   aside on the left (what the screen is, its counts as hairlines, the small
   print at the foot) and a body on the right whose sections sit in a strip
   pinned under the masthead — each section as its number, its name, a word on
   where it stands and one dot per line, filled in its colour once there is a
   figure, an outline while there is none. The dots are the navigation. The
   cards and tiles of 7 Oct are gone; every table is a ledger of hairlines.
   Tweaked to the platform as every app carries it: the uniform masthead and
   phone bar stay, the colours are the tokens (so the dark appearance holds),
   and the tracked-caps labels of the design are set in sentence case, which
   is the platform's rule. */
.rp-split{display:flex;flex-wrap:wrap;flex:1;align-items:stretch;width:100%;min-width:0}
.rp-aside{flex:1 1 260px;max-width:280px;min-width:0;padding:28px 24px 40px;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:28px}
.rp-aside.wide{max-width:300px}
.rp-aside-head{display:flex;flex-direction:column;gap:10px}
.rp-kicker{font-size:12px;line-height:16px;font-weight:600;color:var(--ink-3)}
.rp-aside .rp-h1{font-size:32px}
.rp-aside .rp-h1.sm{font-size:22px;line-height:1.2;letter-spacing:-.02em;text-wrap:pretty}
.rp-aside .rp-h1 .hi{color:var(--red-text)}
.rp-aside .rp-lede{font-size:13px}
.rp-aside .rp-aside-month{font-size:15px;font-weight:600;color:var(--ink-2)}
.rp-aside .rp-select{height:40px;width:100%;font-size:14px;font-weight:600;padding:0 32px 0 12px}
.rp-aside .rp-btn{flex:1;justify-content:center}
.rp-aside-foot{margin-top:auto;display:flex;flex-direction:column;gap:6px;font-size:12px;line-height:1.5;color:var(--ink-3);padding-top:12px;border-top:1px solid var(--line)}
.rp-aside-foot .rp-legend{font-size:12px;gap:6px}
.rp-aside-foot .rp-legend>span{color:var(--ink-3)}
/* the counts: a dot, a word, a number, one hairline each */
.rp-counts{display:flex;flex-direction:column}
.rp-count{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--line);font-size:14px;font-weight:600}
.rp-count:first-child{border-top:1px solid var(--line)}
.rp-count .n{margin-left:auto;font-family:var(--display);font-size:28px;font-weight:700;letter-spacing:-.03em;line-height:1;font-variant-numeric:tabular-nums}
.rp-count[data-rag="green"] .w{color:var(--rag-green)}
.rp-count[data-rag="amber"] .w{color:var(--amber-text)}
.rp-count[data-rag="red"] .w{color:var(--rag-red)}
.rp-count.teal .w{color:var(--teal)}
.rp-count.quiet .w,.rp-count.quiet .n{color:var(--ink-3)}
.rp-counts .rp-note{margin-top:12px;font-size:12px}
/* a figure with its sub, one hairline each (the floor, the goal) */
.rp-figs{display:flex;flex-direction:column}
.rp-fig{display:flex;flex-direction:column;gap:4px;padding:12px 0;border-bottom:1px solid var(--line)}
.rp-fig:first-child{border-top:1px solid var(--line)}
.rp-fig .k{font-size:12px;font-weight:600;color:var(--ink-2)}
.rp-fig .row{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.rp-fig .v{font-family:var(--display);font-size:40px;font-weight:700;letter-spacing:-.04em;line-height:1;font-variant-numeric:tabular-nums}
.rp-fig .s{font-size:12px;color:var(--ink-2)}
.rp-fig .c{font-size:12px;color:var(--ink-3)}
/* a legend of dots down the aside */
.rp-keys{display:flex;flex-direction:column;gap:8px}
.rp-keys>span{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--ink-2)}
/* the body and the strip pinned at its top */
.rp-body{flex:999 1 560px;min-width:0;display:flex;flex-direction:column}
.rp-strip{position:sticky;top:64px;z-index:5;background:var(--canvas);border-bottom:1px solid var(--line);padding:16px 32px 14px;display:flex;flex-wrap:wrap;gap:6px 10px}
.rp-grp{display:flex;flex-direction:column;gap:8px;padding:8px 10px;border-radius:8px;color:var(--ink);min-width:0;flex:0 1 auto}
.rp-grp:hover{background:var(--f6)}
.rp-grp .t{display:flex;align-items:baseline;gap:8px;font-size:12px;white-space:nowrap}
.rp-grp .t .i{font-weight:600;color:var(--ink-3);font-variant-numeric:tabular-nums}
.rp-grp .t .nm{font-weight:600}
.rp-grp .t .tl{color:var(--ink-3);font-variant-numeric:tabular-nums}
.rp-grp .d{display:flex;flex-wrap:wrap;gap:6px;min-height:16px;align-items:center;font-size:12px;color:var(--ink-3)}
/* the dot: filled in its colour once scored, an outline while there is nothing to score */
.rp-pip{width:16px;height:16px;border-radius:50%;flex:none;display:inline-block;background:var(--rag-none);border:2px solid var(--rag-none);transition:background .3s,border-color .3s}
.rp-pip.sm{width:14px;height:14px}
.rp-pip.xs{width:12px;height:12px}
.rp-pip.tiny{width:10px;height:10px}
.rp-pip[data-rag="green"]{background:var(--rag-green);border-color:var(--rag-green)}
.rp-pip[data-rag="amber"]{background:var(--rag-amber);border-color:var(--rag-amber)}
.rp-pip[data-rag="red"]{background:var(--rag-red);border-color:var(--rag-red)}
.rp-pip[data-rag="none"],.rp-pip.empty{background:transparent;border-color:var(--rag-none)}
.rp-pip.ink{background:var(--ink);border-color:var(--ink)}
.rp-pip.grey{background:var(--ink-ramp-3);border-color:var(--ink-ramp-3)}
.rp-pip.teal{background:var(--teal);border-color:var(--teal)}
.rp-pip.amber{background:transparent;border-color:var(--rag-amber)}
.rp-pip.hollow{background:transparent}
/* how firm a target is, in the scorecard's colours (Lara, 21 Oct 2026):
   benchmarked is green, the plan amber, a guesstimate red */
.rp-pip[data-basis="bench"]{background:var(--rag-green);border-color:var(--rag-green)}
.rp-pip[data-basis="plan"]{background:var(--rag-amber);border-color:var(--rag-amber)}
.rp-pip[data-basis="guess"]{background:var(--rag-red);border-color:var(--rag-red)}
.rp-status[data-basis="bench"]{color:var(--rag-green)}
.rp-status[data-basis="plan"]{color:var(--amber-text)}
.rp-status[data-basis="guess"]{color:var(--rag-red)}
.rp-status.ink{color:var(--ink);font-size:13px}
.rp-status[data-rag="amber"]{color:var(--amber-text)}
.rp-pages{padding:28px 32px 80px;display:flex;flex-direction:column;gap:36px}
.rp-pages .rp-sec{scroll-margin-top:150px}
.rp-pages .rp-sec-head{padding-top:0;border-top:0}
.rp-pages .rp-sec-tail{font-weight:600;font-variant-numeric:tabular-nums}
.rp-pages .rp-note{max-width:72ch}
.rp-pair{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(380px,100%),1fr));gap:40px 48px}
/* the ledger: a grid of hairlines, the head in small bold */
.rp-ledger-wrap{overflow-x:auto;min-width:0;display:flex;flex-direction:column}
.rp-ledger{display:grid;grid-template-columns:var(--cols);gap:0 16px;align-items:center;min-width:var(--min,0)}
.rp-ledger.head{padding:0 0 6px;border-bottom:1px solid var(--line-strong);font-size:12px;line-height:16px;font-weight:600;color:var(--ink-3)}
.rp-ledger.row{min-height:52px;border-bottom:1px solid var(--line);padding:4px 0}
.rp-ledger.row.short{min-height:48px}
.rp-ledger .num{text-align:right;font-variant-numeric:tabular-nums}
.rp-ledger .nm{font-size:14px;font-weight:600;line-height:1.3;min-width:0}
.rp-ledger .m{font-size:14px;color:var(--ink-2)}
.rp-ledger .b{font-size:14px;font-weight:600}
.rp-ledger .d{font-size:13px;color:var(--ink-2);white-space:nowrap}
.rp-ledger .ell{font-size:14px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rp-ledger .rp-cell{height:40px;min-height:40px;padding:0 10px}
.rp-ledger .rp-cell.big{font-size:18px;font-weight:700;letter-spacing:-.02em}
.rp-ledger .rp-cell.note{font-size:13px;font-weight:400}
.rp-ledger .rp-cell.num{-moz-appearance:textfield}
.rp-ledger .rp-cell.num::-webkit-outer-spin-button,.rp-ledger .rp-cell.num::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.rp-ledger .rp-btn.sm{justify-self:end}
.rp-ledger.scorecard{--cols:minmax(220px,1.4fr) 140px 120px 110px 170px minmax(180px,1fr);--min:960px}
.rp-ledger.targets{--cols:minmax(240px,1.5fr) 120px 100px 140px 170px;--min:760px}
.rp-ledger.floors{--cols:minmax(0,1fr) auto 100px}
.rp-ledger.csfloors{--cols:minmax(0,1fr) 100px}
.rp-ledger.log{--cols:90px 150px minmax(240px,1.6fr) 90px 44px 150px 80px;gap:0 14px;--min:900px}
.rp-ledger-wrap .rp-empty{padding:28px 0}
/* the rules: how we hold ourselves to it */
.rp-rules{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr));gap:0 32px;border-top:1px solid var(--line-strong)}
.rp-rule{display:flex;flex-direction:column;gap:6px;padding:14px 0 16px;border-bottom:1px solid var(--line)}
.rp-rule .k{font-size:12px;font-weight:600;color:var(--ink-2)}
.rp-rule p{font-size:13px;line-height:1.5}
.rp-rule .rp-legend{flex-direction:column;gap:6px;font-size:13px}
/* the content log's form: fields on a hairline */
.rp-logform{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(150px,100%),1fr));gap:12px 20px;align-items:end;padding:16px 0 20px;border-top:1px solid var(--line-strong);border-bottom:1px solid var(--line);margin:0}
.rp-ufield{display:flex;flex-direction:column;gap:6px;min-width:0}
.rp-ufield.span2{grid-column:span 2}
.rp-ufield label{font-size:12px;line-height:16px;font-weight:600;color:var(--ink-3)}
.rp-ufield input,.rp-ufield select{height:40px;padding:0;border:0;border-bottom:1px solid var(--line-strong);border-radius:0;background:transparent;font-size:14px;font-weight:600;width:100%;min-width:0;color:var(--ink);outline:none}
.rp-ufield input:focus,.rp-ufield select:focus{border-bottom-color:var(--ink)}
.rp-ufield input::placeholder{color:var(--ink-3);font-weight:400}
.rp-ufield select{-webkit-appearance:none;appearance:none;padding-right:24px;background-image:linear-gradient(45deg,transparent 50%,var(--ink-2) 50%),linear-gradient(135deg,var(--ink-2) 50%,transparent 50%);background-position:calc(100% - 12px) 50%,calc(100% - 7px) 50%;background-size:5px 5px;background-repeat:no-repeat;cursor:pointer}
.rp-logform .rp-btn.big{height:44px}
/* the archive, down the summary's aside */
.rp-arow{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}
.rp-arow:first-child{border-top:1px solid var(--line)}
.rp-arow b{font-size:14px;font-weight:600}
.rp-arow .rp-cap{font-size:12px;color:var(--ink-3);font-weight:400}
.rp-arow .rp-btn{margin-left:auto;flex:none}
/* the report sheet sits on the A4 stage at the size New Biz's report has (794px, one page) */
.rp-body>.rp-a4-stage{flex:1}
.rp-a4 .rp-a4-head{border-bottom-color:var(--ink)}
.rp-a4 .rp-fig{padding:8px 0 10px}
.rp-a4 .rp-fig:first-child{border-top-color:var(--line-strong)}
.rp-a4 .rp-fig .k,.rp-a4 .rp-fig .s{font-size:11px}
.rp-a4 .rp-kicker{font-size:11px}
.rp-a4 .rp-sec-head,.rp-a4 .rp-sec-head.flush{padding-top:8px;border-top:1px solid var(--line-strong)}
.rp-a4 .rp-h2{font-size:18px}
.rp-a4 .rp-a4-lede{font-size:24px;font-weight:600;line-height:1.25;letter-spacing:-.02em;max-width:30ch}
.rp-a4 .rp-a4-lede .hi{color:var(--red-text)}
.rp-a4 .rp-legend{font-size:11px;gap:6px 12px}
.rp-a4 .rp-rules-list p{margin:0;padding:8px 0;border-bottom:1px solid var(--line);font-size:12px;line-height:1.5}
.rp-a4 .rp-note{font-size:12px;max-width:90ch}
.rp-a4 .rp-foot{border-top-color:var(--line-strong);font-size:11px}
.rp-a4 .rp-hbar .bar{border-radius:4px}
.rp-a4 .rp-hbar{font-size:12px;gap:10px}
.rp-mark{display:inline-block;width:14px;height:4px;border-radius:2px;background:var(--ink)}
/* the meters: a dot for what the figure is, a track to the target, the mark at the target */
.rp-meters{display:flex;flex-direction:column}
.rp-mrow{display:grid;grid-template-columns:220px 14px minmax(0,1fr) 150px;gap:14px;align-items:center;font-size:13px;padding:8px 0;border-bottom:1px solid var(--line)}
.rp-mrow .k{color:var(--ink-2);font-weight:500}
.rp-mrow.has .k{color:var(--ink);font-weight:600}
.rp-mrow .rp-meter{height:12px;border-radius:6px;overflow:visible}
.rp-mrow .rp-meter i{border-radius:6px}
.rp-mrow .rp-meter .mark{left:100%;margin-left:-2px}
.rp-mrow .v{text-align:right;font-variant-numeric:tabular-nums}
.rp-mrow .v .was{color:var(--ink-2)}
.rp-mrow.has .v .was{color:var(--ink);font-weight:600}
@media (max-width:1000px){
  .rp-aside,.rp-aside.wide{max-width:none;flex-basis:100%;border-right:0;border-bottom:1px solid var(--line);padding:20px 20px 24px;gap:20px}
  .rp-aside-foot{margin-top:0}
  .rp-strip{padding:12px 20px 10px}
  .rp-pages{padding:20px 20px 80px}
  .rp-mrow{grid-template-columns:150px 14px minmax(0,1fr) 120px}
}
@media (max-width:700px){
  .rp-strip{top:56px}
  .rp-aside{padding:16px 16px 20px}
  .rp-pages{padding:16px 16px 100px;gap:28px}
  .rp-a4 .rp-a4-lede{font-size:18px}
  .rp-mrow{grid-template-columns:1fr 14px 1fr;gap:8px 10px}
  .rp-mrow .v{grid-column:1/-1;text-align:left}
}
/* ── trends (21 Oct 2026): the New Biz columns, one figure per metric, the
   column in the month's RAG colour and the target as a line across ── */
.rp-trend-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));gap:24px 32px}
.rp-trend{display:flex;flex-direction:column;gap:8px;min-width:0;margin:0;max-width:520px}
.rp-trend .rp-sec-head{padding-top:0;border-top:0;gap:6px 10px}
.rp-trend .rp-h2{font-size:15px;line-height:1.3}
.rp-trend .rp-cols{position:relative;height:72px}
.rp-trend .rp-cols .tline{position:absolute;left:0;right:0;bottom:var(--y,100%);border-top:1px dashed var(--ink-3);pointer-events:none}
.rp-cols i[data-rag="green"]{background:var(--rag-green)}
.rp-cols i[data-rag="amber"]{background:var(--rag-amber)}
.rp-cols i[data-rag="red"]{background:var(--rag-red)}
.rp-cols i[data-rag="none"]{background:var(--f12)}
.rp-cols i.future{background:transparent;border-top:2px dotted var(--f24);min-height:0}
.rp-trend .rp-cap{display:flex;justify-content:space-between;gap:8px;font-weight:400;color:var(--ink-3)}
.rp-ledger.trend{--cols:120px repeat(7,minmax(96px,1fr));--min:880px}
.rp-ledger.trend .rp-delta{font-size:12px;margin-left:6px}
.rp-ledger.row.quiet>*{color:var(--ink-3)}

/* ═══════════ the desks (22 Oct 2026): Today · Queue · Bank · Studio ═══════════
   The Desks rail beside Reporting, as New Biz has it. The desks keep Route A3's
   shape (the aside, the strip, the ledgers) and add the run-sheet: a post as a
   dated card — the day large on the left, the copy in the middle with its
   platform switch, the status and the actions on the right — grouped by week;
   the generator's options as cards of the same shape; the bank as a ledger
   with a fold under the row to edit a project. A post's status has one colour
   wherever it shows (the pill, the dot in the strip, the count in the aside):
   draft grey, in review amber, changes red, approved green, scheduled teal,
   posted ink. */
.rp-pip[data-ps="draft"]{background:var(--ink-ramp-3);border-color:var(--ink-ramp-3)}
.rp-pip[data-ps="review"]{background:var(--rag-amber);border-color:var(--rag-amber)}
.rp-pip[data-ps="changes"]{background:var(--rag-red);border-color:var(--rag-red)}
.rp-pip[data-ps="approved"]{background:var(--rag-green);border-color:var(--rag-green)}
.rp-pip[data-ps="scheduled"]{background:var(--teal);border-color:var(--teal)}
.rp-pip[data-ps="posted"]{background:var(--ink);border-color:var(--ink)}
.rp-pip[data-ps="suggested"]{background:transparent;border-color:var(--rag-amber)}
.rp-pip[data-ps="taken"]{background:var(--rag-green);border-color:var(--rag-green)}
.rp-pip[data-ps="dismissed"]{background:var(--ink-ramp-4);border-color:var(--ink-ramp-4)}
.rp-pill{display:inline-flex;align-items:center;gap:7px;height:24px;padding:0 10px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap;background:var(--canvas-2);color:var(--ink-2)}
.rp-pill[data-ps="review"]{background:var(--amber-soft);color:var(--amber-text)}
.rp-pill[data-ps="changes"]{background:var(--red-soft);color:var(--red-text)}
.rp-pill[data-ps="approved"]{background:var(--green-soft);color:var(--green-text)}
.rp-pill[data-ps="scheduled"]{background:var(--teal-wash);color:var(--teal)}
.rp-pill[data-ps="posted"]{background:var(--ink);color:var(--on-ink)}
.rp-count[data-ps="review"] .w{color:var(--amber-text)}
.rp-count[data-ps="changes"] .w{color:var(--rag-red)}
.rp-count[data-ps="approved"] .w{color:var(--rag-green)}
.rp-count[data-ps="scheduled"] .w{color:var(--teal)}
.rp-count.pick{cursor:pointer;border-radius:6px;margin:0 -6px;padding-left:6px;padding-right:6px}
.rp-count.pick:hover{background:var(--f6)}
.rp-count.pick.on{background:var(--f6)}
.rp-count.pick.on .n{color:var(--ink)}
/* the week, and the post card */
.rp-week{display:flex;flex-direction:column}
.rp-week-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:0 0 8px;border-bottom:2px solid var(--ink);font-size:12px;font-weight:600;color:var(--ink-3)}
.rp-week-head b{color:var(--ink);font-size:13px}
.rp-week-head .tl{font-variant-numeric:tabular-nums;font-weight:400}
.rp-post{display:grid;grid-template-columns:96px minmax(0,1fr) 190px;gap:20px;padding:20px 0;border-bottom:1px solid var(--line);scroll-margin-top:150px}
.rp-post.sel{background:var(--f3);margin:0 -12px;padding-left:12px;padding-right:12px;border-radius:8px}
.rp-post.late .when .d{color:var(--red-text)}
.rp-when{display:flex;flex-direction:column;gap:2px}
.rp-when .d{font-family:var(--display);font-size:34px;font-weight:700;letter-spacing:-.04em;line-height:1;font-variant-numeric:tabular-nums}
.rp-when .m{font-size:12px;font-weight:600;color:var(--ink-2)}
.rp-when .t{font-size:12px;color:var(--ink-3);font-variant-numeric:tabular-nums}
.rp-when label{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--ink-3);margin-top:10px;cursor:pointer}
.rp-when input[type="checkbox"]{width:14px;height:14px;margin:0;accent-color:var(--ink)}
.rp-post-body{min-width:0;display:flex;flex-direction:column;gap:10px}
.rp-post-body h3{font-size:18px;font-weight:600;letter-spacing:-.01em;line-height:1.25}
.rp-post-meta{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:13px;color:var(--ink-2)}
.rp-post-meta a{color:var(--teal);text-decoration:underline;text-decoration-color:var(--teal-wash);text-underline-offset:3px}
.rp-post-meta .rp-tag{height:20px}
.rp-copy{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:14px 16px;white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px;line-height:1.5;max-width:72ch;position:relative}
.rp-copy.clamp{max-height:168px;overflow:hidden}
.rp-copy.clamp::after{content:"";position:absolute;inset:auto 0 0;height:56px;background:linear-gradient(transparent,var(--surface));border-radius:0 0 10px 10px}
.rp-copy.empty{color:var(--ink-3);font-style:italic}
.rp-copy[dir="rtl"]{text-align:right}
.rp-post-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.rp-post-row .rp-cap{margin-left:auto}
.rp-cap{font-size:12px;color:var(--ink-3);font-variant-numeric:tabular-nums}
.rp-cap.over{color:var(--red-text);font-weight:600}
.rp-kv2{display:grid;grid-template-columns:90px minmax(0,1fr);gap:4px 12px;font-size:13px;max-width:80ch;margin:0}
.rp-kv2 dt{color:var(--ink-3);font-weight:600}
.rp-kv2 dd{margin:0;overflow-wrap:anywhere}
.rp-kv2 dd.flag{color:var(--amber-text)}
.rp-thread{border-left:2px solid var(--line);padding-left:12px;display:flex;flex-direction:column;gap:8px;max-width:72ch}
.rp-note{font-size:13px;line-height:1.45}
.rp-note .h{font-size:12px;color:var(--ink-3)}
.rp-note.changes .h{color:var(--red-text)}
.rp-thread form{display:flex;gap:8px;align-items:center}
.rp-thread input{flex:1;min-width:0;height:34px;padding:0 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface);font-size:13px;outline:none}
.rp-thread input:focus{border-color:var(--ink)}
.rp-post-side{display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.rp-post-side .by{font-size:12px;color:var(--ink-3)}
.rp-post-side .rp-btn{width:100%;justify-content:center}
.rp-post-side .rp-btn.sm{height:30px}
.rp-post textarea.rp-edit{width:100%;max-width:72ch;min-height:220px;padding:12px 14px;border:1px solid var(--ink);border-radius:10px;background:var(--surface);font-size:14px;line-height:1.5;resize:vertical;outline:none;font-family:inherit}
/* bulk actions on the queue */
.rp-bulkbar{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line-strong);font-size:13px}
.rp-bulkbar label{display:flex;align-items:center;gap:6px;cursor:pointer}
.rp-bulkbar input[type="checkbox"]{width:14px;height:14px;margin:0;accent-color:var(--ink)}
.rp-bulkbar .sp{flex:1}
/* the new-post fold and the project editor: fields on hairlines, as the log form */
.rp-fold{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr));gap:12px 20px;align-items:start;padding:16px 0 20px;border-top:1px solid var(--line-strong);border-bottom:1px solid var(--line);margin:0}
.rp-fold[hidden]{display:none}
.rp-fold .rp-ufield.span2{grid-column:span 2}
.rp-fold .rp-ufield.full{grid-column:1/-1}
.rp-fold .rp-ufield textarea{min-height:120px;padding:8px 0;border:0;border-bottom:1px solid var(--line-strong);border-radius:0;background:transparent;font-size:14px;line-height:1.5;width:100%;resize:vertical;outline:none;color:var(--ink);font-family:inherit}
.rp-fold .rp-ufield textarea:focus{border-bottom-color:var(--ink)}
.rp-fold .rp-ufield textarea::placeholder{color:var(--ink-3);font-weight:400}
.rp-fold .rp-checks{display:flex;gap:14px;flex-wrap:wrap;height:40px;align-items:center;font-size:13px;font-weight:600}
.rp-fold .rp-checks label{display:flex;align-items:center;gap:6px;cursor:pointer}
.rp-fold .rp-checks input{width:14px;height:14px;margin:0;accent-color:var(--ink)}
.rp-fold .acts{grid-column:1/-1;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.rp-fold .acts .rp-cap{margin-left:auto}
/* the generator's options */
.rp-sugg{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:16px}
.rp-opt{display:flex;flex-direction:column;gap:10px;padding:16px 18px;border:1px solid var(--line);border-radius:12px;background:var(--surface);min-width:0}
.rp-opt.taken{border-color:var(--rag-green)}
.rp-opt.dismissed{opacity:.5}
.rp-opt .head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.rp-opt .head .n{font-family:var(--display);font-size:22px;font-weight:700;letter-spacing:-.03em;color:var(--ink-3);line-height:1}
.rp-opt .head h3{font-size:16px;font-weight:600;line-height:1.25;min-width:0}
.rp-opt .why{font-size:13px;color:var(--ink-2);line-height:1.45}
.rp-opt .rp-copy{max-width:none;font-size:13px}
.rp-opt .rp-copy.clamp{max-height:120px}
.rp-opt .acts{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:auto}
.rp-opt .acts .rp-cap{margin-left:auto}
/* the bank ledger and the fold under a row */
.rp-ledger.bank{--cols:minmax(200px,1.3fr) 150px minmax(240px,1.8fr) 120px 120px 44px;--min:980px}
.rp-ledger.bank .nm .sub{display:block;font-size:12px;font-weight:400;color:var(--ink-3);margin-top:2px}
.rp-ledger.bank .hook{font-size:13px;line-height:1.4;min-width:0;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.rp-ledger.bank .hook.none{color:var(--ink-3);font-style:italic}
.rp-ledger.bank .hook .fl{display:block;color:var(--amber-text);font-size:12px;margin-top:2px;-webkit-line-clamp:1}
.rp-ledger.bank .as{font-size:12px;color:var(--ink-2);display:flex;flex-wrap:wrap;gap:4px}
.rp-ledger.row.bank.open{border-bottom:0}
.rp-ledger.row.bank .rp-btn.sm{height:28px;padding:0 8px;justify-self:end}
.rp-bank-fold{margin:0 0 4px;border-top:1px dashed var(--line-strong)}
.rp-stage{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--ink-2)}
.rp-stage .rp-pip.tiny[data-stage="green"]{background:var(--rag-green);border-color:var(--rag-green)}
.rp-stage .rp-pip.tiny[data-stage="orange"]{background:var(--rag-amber);border-color:var(--rag-amber)}
.rp-stage .rp-pip.tiny[data-stage="red"]{background:var(--rag-red);border-color:var(--rag-red)}
.rp-stage .rp-pip.tiny[data-stage="black"]{background:var(--ink);border-color:var(--ink)}
.rp-aside .rp-filters{display:flex;flex-direction:column;gap:10px}
.rp-aside .rp-filters .rp-search{width:100%}
.rp-aside .rp-filters .rp-search input{width:100%}
.rp-aside .rp-filters .rp-select{width:100%;height:36px;font-weight:500;font-size:13px}
/* the day strip on Today: seven days, a dot per post */
.rp-grp.today .t .nm{color:var(--red-text)}
.rp-grp.past{opacity:.55}
/* the house rules on the Studio */
.rp-rules-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));gap:14px 24px;padding:16px 0 20px;border-top:1px solid var(--line-strong);border-bottom:1px solid var(--line)}
.rp-rules-form .rp-ufield.full{grid-column:1/-1}
.rp-rules-form .rp-ufield textarea{min-height:180px;padding:8px 0;border:0;border-bottom:1px solid var(--line-strong);border-radius:0;background:transparent;font-size:13px;line-height:1.5;width:100%;resize:vertical;outline:none;color:var(--ink);font-family:inherit}
.rp-rules-form .rp-ufield textarea:focus{border-bottom-color:var(--ink)}
.rp-rules-form .days{display:flex;gap:6px;flex-wrap:wrap;height:40px;align-items:center}
.rp-rules-form .days label{display:inline-flex;align-items:center;justify-content:center;width:36px;height:30px;border:1px solid var(--line);border-radius:8px;font-size:12px;font-weight:600;cursor:pointer;color:var(--ink-2)}
.rp-rules-form .days input{display:none}
.rp-rules-form .days input:checked+span{color:var(--on-ink)}
.rp-rules-form .days label:has(input:checked){background:var(--ink);border-color:var(--ink);color:var(--on-ink)}
.rp-rules-form .acts{grid-column:1/-1;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.rp-rules-form .acts .rp-cap{margin-left:auto}
@media (max-width:820px){
  .rp-post{grid-template-columns:1fr;gap:12px}
  .rp-when{flex-direction:row;align-items:baseline;gap:10px;flex-wrap:wrap}
  .rp-when label{margin-top:0;margin-left:auto}
  .rp-post-side{flex-direction:row;flex-wrap:wrap}
  .rp-post-side .rp-btn{width:auto}
  .rp-fold .rp-ufield.span2{grid-column:auto}
}

/* ── the calendar (22 Oct 2026 pm): the month as a grid, Planable's shape ── */
.rp-cal{display:flex;flex-direction:column;gap:0;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--surface)}
.rp-cal-head{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-bottom:1px solid var(--line-strong);background:var(--canvas)}
.rp-cal-head span{padding:10px 12px;font-size:12px;font-weight:600;color:var(--ink-3)}
.rp-cal-head span.we{color:var(--ink-ramp-3)}
.rp-cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.rp-cal-day{min-height:118px;padding:8px 8px 10px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:6px;min-width:0;cursor:pointer;position:relative;transition:background .15s}
.rp-cal-day:nth-child(7n){border-right:0}
.rp-cal-day:hover{background:var(--f3)}
.rp-cal-day.other{background:var(--canvas);color:var(--ink-3)}
.rp-cal-day.other:hover{background:var(--canvas-2)}
.rp-cal-day.cad{background:var(--teal-wash)}
.rp-cal-day.cad.other{background:var(--canvas)}
.rp-cal-day.we .n{color:var(--ink-ramp-3)}
.rp-cal-day .n{font-size:13px;font-weight:600;font-variant-numeric:tabular-nums;display:flex;align-items:center;gap:6px}
.rp-cal-day.today .n b{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:24px;padding:0 6px;border-radius:12px;background:var(--red);color:var(--on-ink)}
.rp-cal-day .n .cadw{font-size:11px;font-weight:600;color:var(--teal);margin-left:auto}
.rp-cal-day .add{position:absolute;right:8px;bottom:8px;width:22px;height:22px;border-radius:6px;border:1px dashed var(--line-strong);color:var(--ink-3);font-size:14px;line-height:20px;text-align:center;opacity:0;transition:opacity .15s;background:var(--surface)}
.rp-cal-day:hover .add{opacity:1}
.rp-cal-chip{display:flex;align-items:center;gap:6px;padding:4px 7px;border-radius:7px;background:var(--canvas-2);font-size:12px;line-height:1.3;min-width:0;color:var(--ink);text-decoration:none;border:1px solid transparent}
.rp-cal-chip:hover{border-color:var(--ink)}
.rp-cal-chip .t{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:1}
.rp-cal-chip .h{color:var(--ink-3);font-variant-numeric:tabular-nums;flex:none}
.rp-cal-chip .ch{display:inline-flex;gap:2px;flex:none}
.rp-cal-chip .ch i{width:6px;height:6px;border-radius:2px;background:var(--ink-ramp-3);display:block}
.rp-cal-chip .ch i.li{background:var(--teal)}
.rp-cal-chip .ch i.ig{background:var(--rag-amber)}
.rp-cal-chip[data-ps="posted"]{background:var(--ink);color:var(--on-ink)}
.rp-cal-chip[data-ps="posted"] .h{color:inherit;opacity:.7}
.rp-cal-chip[data-ps="approved"],.rp-cal-chip[data-ps="scheduled"]{background:var(--green-soft)}
.rp-cal-chip[data-ps="scheduled"]{background:var(--teal-wash)}
.rp-cal-chip[data-ps="review"]{background:var(--amber-soft)}
.rp-cal-chip[data-ps="changes"]{background:var(--red-soft)}
.rp-cal-chip.sugg{background:transparent;border:1px dashed var(--rag-amber);color:var(--amber-text)}
.rp-cal-chip.sugg:hover{border-style:solid}
.rp-cal-day .more{font-size:11px;color:var(--ink-3);font-weight:600}
@media (max-width:700px){
  .rp-cal-day{min-height:72px;padding:6px}
  .rp-cal-chip .t,.rp-cal-chip .h{display:none}
  .rp-cal-chip{padding:4px;width:max-content}
  .rp-cal-head span{padding:8px 6px;font-size:11px}
}

/* ── undo, history and Recently removed (26 Oct 2026) ──
   platform/recovery.js draws the toast, the history popover and the
   Recently removed sheet itself; these are only the door's ways in. Every
   one carries .rp-rcv-only and shows once the recovery functions answered
   (html.rp-rcv), so nothing here appears on a backend without them. The
   clock sits after a line's name, faint until the line is pointed at. */
html:not(.rp-rcv) .rp-rcv-only{display:none!important}
.rp-hist{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;margin:-4px 0 -4px 4px;padding:0;border:0;border-radius:6px;background:transparent;color:var(--ink-3);cursor:pointer;vertical-align:middle;opacity:.55;transition:opacity .15s,background .15s}
.rp-hist[hidden]{display:none}
.rp-hist svg,.rp-removed svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
.rp-hist:hover,.rp-hist:focus-visible,.rp-ledger.row:hover .rp-hist{opacity:1}
.rp-hist:hover{background:var(--f6);color:var(--ink)}
.rp-hist:focus-visible,.rp-removed:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
@media (hover:none){.rp-hist{opacity:1;width:32px;height:32px}}
.rp-removed{align-self:flex-start;height:28px;padding:0 10px;font-size:12px;color:var(--ink-2);gap:6px;margin-bottom:4px}
.rp-removed span{display:inline-flex}
.rp-rule-hist{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:6px}
