/* ===========================================================================
   renew-system.css — the Renew Workspace design system: tokens and components.

   Phase 1 of the redesign (doc 224, approved by Steele 17 Oct 2026; doc 225).
   NO PAGE LOADS THIS FILE YET. It changes nothing until a page opts in.

   HOW A PAGE OPTS IN (Phase 2 onward, one page at a time, with Steele's OK):
     1. <html lang="en" data-ui="2">
     2. <link rel="stylesheet" href="renew-system.css"> in <head>, before the
        page's own <style>, after the pre-paint block.
     3. Rebuild the page's markup with the rw-* classes below, keeping every
        id, data-* attribute and onclick name its script and the training
        screenshots use.
   renew-ui.js keeps its older global look rules (table headings, card lift,
   26px h1, eyebrow, page tint) off any page with data-ui="2" — see the
   ":where(html:not([data-ui=\"2\"]))" fence there — so the two never fight.

   RULES FOR THIS FILE (HANDBOOK/09-design-system.md has the long version)
   - Every rule is a class (rw-…) or sits under :where(html[data-ui="2"]).
     No bare element selectors, no ids, no !important.
   - Nothing here may style a document that leaves the workspace: contract
     previews (DOC_CSS, exhibitHTML), the docx→PDF stylesheet, proforma
     shares, deck slides. Those keep their own CSS.
   - Colour carries meaning (the colour rule, 20 Oct 2026):
       navy  = structure — the sidebar, page titles, section headings, key
               figures, the few high-priority areas;
       blue  = "click here" or "you are here" — primary buttons, the current
               sidebar item, selected tabs and segments, focus rings, links;
       tint  = grouping — a pale blue section holds a summary strip or a
               filter bar, used occasionally so not everything is a white box;
       intel = the one navy-to-blue treatment, for the AI surfaces only;
       green/amber/orange/red (and the info navy) = state only, each with its
               words. The accent is never a status.
   - A figure that did not load is shown with .rw-missing ("— not loaded"),
     never as 0.
   =========================================================================== */

/* ---------------------------------------------------------------- tokens
   Contrast, measured (WCAG relative luminance): the accent #3268c8 is 5.3:1
   on white, 4.9 on the canvas, 4.7 on the tint; white on it 5.3, on its
   hover 6.7, on its pressed 8.6. Navy #102747 is 15.0 on white, 13.2 on the
   tint. Control edges #7b8698 are 3.7 on white, 3.4 on the canvas, 3.2 on
   the tint. On the sidebar (#0e2044) the current item's accent fill is 3.0
   and its hover 3.4; focus there is #8db6e6 (7.6), white on the accent. */
:root{
  --rw-font:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;
  --rw-mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;

  /* brand — navy is structure */
  --rw-navy:#102747;       /* the anchor: page titles, section headings, key figures, high-priority areas */
  --rw-navy-950:#0e2044;   /* sidebar — one step deeper, so the accent current item keeps 3:1 on it */
  --rw-navy-900:#102c66;   /* the logo's navy: icon chips, type tags, the avatar */
  --rw-navy-800:#1b3c7d;   /* hover of navy fills */
  --rw-navy-50:#eef2f8;    /* icon chips, quiet fills, type tags */

  /* the accent — blue means "click here" or "you are here" */
  --rw-accent:#3268c8;  --rw-accent-hover:#2a59ae;  --rw-accent-pressed:#234a90;
  --rw-accent-50:#e9f0fc;                           /* selected rows, ghost hover, filter chips */
  --rw-accent-100:#d3e1f7;                          /* pressed ghost; a selection on the tint */
  --rw-accent-on-navy:#8db6e6;                      /* the accent's light form on the sidebar */
  --rw-focus:#3268c8;  --rw-focus-on-navy:#8db6e6;
  /* the older names, kept so every page's own rules follow the accent */
  --rw-blue:#3268c8;  --rw-blue-hover:#2a59ae;  --rw-blue-50:#e9f0fc;  --rw-blue-on-navy:#8db6e6;

  /* neutrals and surfaces: canvas, then white working cards, then the
     occasional pale blue section */
  --rw-canvas:#f3f6fa; --rw-surface:#ffffff; --rw-surface-2:#f8fafc;
  --rw-tint:#eaf1fa;   --rw-tint-line:#d6e2f2;
  --rw-border:#e3e8ef; --rw-border-soft:#eef1f5; --rw-border-strong:#cfd7e2;
  --rw-border-control:#7b8698;                       /* 3.7:1 on white, 3.2 on the tint — a field's edge must be visible */
  --rw-text:#0f1b2d; --rw-text-2:#3a4a5f; --rw-text-3:#5f6b7d;   /* 17.3, 9.0, 5.4 : 1 on white; 4.8 for text-3 on the tint */

  /* the intelligence treatment (AI surfaces only): at its lightest point (the
     gradient's end under the corner highlight, #3a6bc3) white is 5.2:1 and
     --rw-intel-sub 4.5:1 */
  --rw-intel-grad:linear-gradient(118deg,#102747 0%,#163a78 52%,#2c5fbd 100%);
  --rw-intel-line:#c7d6ee;  --rw-intel-sub:#eaf1fb;

  /* status — state only, always with words */
  --rw-success:#166534; --rw-success-bg:#ecf8f0; --rw-success-line:#cdebd8;
  --rw-info:#1e3a6e;    --rw-info-bg:#eef2f9;    --rw-info-line:#d5deef;
  --rw-warning:#92400e; --rw-warning-bg:#fef6e6; --rw-warning-line:#f6dfb0;
  --rw-attention:#9a3412; --rw-attention-bg:#fff1e6; --rw-attention-line:#f7d4b8;
  --rw-danger:#b42318;  --rw-danger-bg:#fdf0ef;  --rw-danger-line:#f6cfcb;
  --rw-neutral:#475467; --rw-neutral-bg:#f2f4f7; --rw-neutral-line:#e3e8ef;

  /* type */
  --rw-fs-title:30px;  --rw-lh-title:36px;
  --rw-fs-h2:18px;     --rw-lh-h2:26px;
  --rw-fs-stat:28px;   --rw-lh-stat:34px;    /* key figures */
  --rw-fs-h3:15px;     --rw-lh-h3:20px;
  --rw-fs-body:14px;   --rw-lh-body:20px;
  --rw-fs-small:13px;  --rw-lh-small:18px;
  --rw-fs-xs:12px;     --rw-lh-xs:16px;

  /* space (4-point scale) */
  --rw-1:4px; --rw-2:8px; --rw-3:12px; --rw-4:16px; --rw-5:20px; --rw-6:24px; --rw-8:32px; --rw-10:40px; --rw-12:48px;
  --rw-pad:32px;                 /* page edge; 24 tablet, 16 phone */

  /* shape and depth */
  --rw-r-control:8px; --rw-r-card:12px; --rw-r-pill:999px;
  --rw-shadow-1:0 1px 2px rgba(15,27,45,.05);
  --rw-shadow-card:0 1px 2px rgba(16,39,71,.05),0 3px 10px -2px rgba(16,39,71,.07);        /* working cards: soft, never heavy */
  --rw-shadow-card-hover:0 2px 4px rgba(16,39,71,.06),0 10px 24px -6px rgba(16,39,71,.14);
  --rw-shadow-pop:0 4px 12px rgba(15,27,45,.08),0 16px 40px rgba(15,27,45,.14);

  /* sizes */
  --rw-control-h:36px; --rw-control-h-sm:32px; --rw-touch:44px;
  --rw-w-hub:1120px; --rw-w-form:760px; --rw-w-text:72ch;
}
@media (max-width:1023px){:root{--rw-pad:24px}}
@media (max-width:640px){:root{--rw-pad:16px}}

/* ---------------------------------------------------------------- box model
   Every component sizes its padding and border inside its width, whatever the
   page's own reset says (a 100%-wide field must not spill out of its column). */
[class*="rw-"],[class*="rw-"]::before,[class*="rw-"]::after{box-sizing:border-box}

/* ---------------------------------------------------------------- base
   Only for opted-in pages; zero-specificity so a page can still override. */
:where(html[data-ui="2"]){background:var(--rw-canvas);color-scheme:light}
:where(html[data-ui="2"]) body{font-family:var(--rw-font);font-size:var(--rw-fs-body);line-height:var(--rw-lh-body);color:var(--rw-text);background:var(--rw-canvas);-webkit-font-smoothing:antialiased}
:where(html[data-ui="2"]) :focus-visible{outline:2px solid var(--rw-focus);outline-offset:2px}
:where(html[data-ui="2"]) table{font-variant-numeric:tabular-nums}
@media (prefers-reduced-motion:reduce){:where(html[data-ui="2"]) *{transition-duration:0s;animation-duration:0s}}

/* ---------------------------------------------------------------- layout */
.rw-page{max-width:var(--rw-w-hub);margin:0 auto 0 0}
.rw-page--wide{max-width:none}
.rw-page--form{max-width:var(--rw-w-form)}
.rw-stack{display:flex;flex-direction:column;gap:var(--rw-4)}
.rw-cluster{display:flex;flex-wrap:wrap;gap:var(--rw-2);align-items:center}
.rw-grid-2,.rw-grid-3,.rw-grid-4{display:grid;gap:var(--rw-4)}
.rw-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.rw-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.rw-grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:1023px){.rw-grid-3,.rw-grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.rw-grid-2,.rw-grid-3,.rw-grid-4{grid-template-columns:minmax(0,1fr)}}
.rw-split{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:var(--rw-5);align-items:start}
@media (max-width:1100px){.rw-split{grid-template-columns:minmax(0,1fr)}}
.rw-sticky{position:sticky;top:calc(var(--renew-navh,56px) + var(--rw-4))}
.rw-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------------------------------------------------------------- page header */
.rw-crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 var(--rw-2);padding:0;list-style:none;font-size:12.5px;line-height:16px;color:var(--rw-text-3)}
.rw-crumbs a{color:var(--rw-text-3);text-decoration:none;border-radius:4px}
.rw-crumbs a:hover{color:var(--rw-accent);text-decoration:underline;text-underline-offset:2px}
.rw-crumbs li+li::before{content:"/";margin-right:6px;color:var(--rw-border-strong)}
.rw-crumbs [aria-current]{color:var(--rw-text-2);font-weight:500}
.rw-head{display:flex;flex-wrap:wrap;align-items:flex-start;gap:var(--rw-4);margin:0 0 var(--rw-5)}
.rw-head__text{flex:1 1 420px;min-width:0}
.rw-title{margin:0;font-size:var(--rw-fs-title);line-height:var(--rw-lh-title);font-weight:700;letter-spacing:-.022em;color:var(--rw-navy);text-wrap:balance}
.rw-lede{margin:6px 0 0;max-width:var(--rw-w-text);font-size:var(--rw-fs-body);line-height:21px;color:var(--rw-text-2)}
.rw-head__actions{display:flex;flex-wrap:wrap;gap:var(--rw-2);align-items:center}
.rw-meta{font-size:12.5px;line-height:16px;color:var(--rw-text-3);font-variant-numeric:tabular-nums}
.rw-h2{margin:var(--rw-8) 0 var(--rw-3);font-size:var(--rw-fs-h2);line-height:var(--rw-lh-h2);font-weight:600;letter-spacing:-.008em;color:var(--rw-navy)}
.rw-h3{margin:0;font-size:var(--rw-fs-h3);line-height:var(--rw-lh-h3);font-weight:600;color:var(--rw-navy)}
.rw-label{font-size:13px;line-height:18px;font-weight:600;color:var(--rw-text-2)}
@media (max-width:640px){.rw-title{font-size:26px;line-height:32px}}

/* ---------------------------------------------------------------- tabs */
.rw-tabs{display:flex;gap:var(--rw-5);margin:0 0 var(--rw-4);border-bottom:1px solid var(--rw-border);overflow-x:auto;scrollbar-width:none}
.rw-tabs::-webkit-scrollbar{display:none}
@media (max-width:640px){.rw-tabs{flex-wrap:wrap;row-gap:var(--rw-2);overflow:visible}}
.rw-tab{appearance:none;border:0;background:none;padding:0 0 10px;margin:0;font:500 13.5px/18px var(--rw-font);color:var(--rw-text-3);cursor:pointer;white-space:nowrap;border-bottom:2px solid transparent;text-decoration:none}
.rw-tab:hover{color:var(--rw-navy);border-bottom-color:var(--rw-border-strong)}
.rw-tab[aria-selected="true"],.rw-tab[aria-current="page"]{color:var(--rw-navy);border-bottom-color:var(--rw-accent)}
.rw-tab .rw-count{margin-left:6px}
.rw-seg{display:inline-flex;padding:3px;background:var(--rw-neutral-bg);border:1px solid var(--rw-border);border-radius:var(--rw-r-control)}
.rw-seg button{appearance:none;border:0;background:none;height:28px;padding:0 12px;border-radius:6px;font:500 13px/1 var(--rw-font);color:var(--rw-text-2);cursor:pointer}
.rw-seg button:hover{color:var(--rw-navy)}
.rw-seg button[aria-pressed="true"]{background:var(--rw-surface);color:var(--rw-accent);box-shadow:inset 0 0 0 1px var(--rw-accent),var(--rw-shadow-1)}

/* ---------------------------------------------------------------- buttons */
.rw-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--rw-2);height:var(--rw-control-h);padding:0 14px;border:1px solid transparent;border-radius:var(--rw-r-control);
  font:600 13.5px/1 var(--rw-font);text-decoration:none;white-space:nowrap;cursor:pointer;background:var(--rw-surface);color:var(--rw-text);border-color:var(--rw-border-control)}
.rw-btn svg{width:16px;height:16px;flex:none}
.rw-btn:hover{background:var(--rw-surface-2);border-color:var(--rw-text-3)}
.rw-btn:active{background:var(--rw-navy-50)}
.rw-btn--primary{background:var(--rw-accent);border-color:var(--rw-accent);color:#fff;box-shadow:0 1px 2px rgba(16,39,71,.12)}
.rw-btn--primary:hover{background:var(--rw-accent-hover);border-color:var(--rw-accent-hover)}
.rw-btn--primary:active{background:var(--rw-accent-pressed);border-color:var(--rw-accent-pressed)}
.rw-btn--secondary svg{color:var(--rw-accent)}
.rw-btn--ghost{background:transparent;border-color:transparent;color:var(--rw-accent)}
.rw-btn--ghost:hover{background:var(--rw-accent-50);border-color:transparent;color:var(--rw-accent-hover)}
.rw-btn--ghost:active{background:var(--rw-accent-100);color:var(--rw-accent-pressed)}
.rw-btn--danger{background:var(--rw-danger);border-color:var(--rw-danger);color:#fff}
.rw-btn--danger:hover{background:#912018;border-color:#912018}
.rw-btn--sm{height:var(--rw-control-h-sm);padding:0 12px;font-size:13px}
.rw-btn--icon{width:var(--rw-control-h);padding:0}
.rw-btn--sm.rw-btn--icon{width:var(--rw-control-h-sm)}
.rw-btn[disabled],.rw-btn[aria-disabled="true"]{opacity:.5;cursor:default;pointer-events:none}
.rw-btn.is-busy{position:relative;color:transparent}
.rw-btn.is-busy::after{content:"";position:absolute;width:14px;height:14px;border:2px solid currentColor;border-color:var(--rw-text-3) transparent var(--rw-text-3) transparent;border-radius:50%;animation:rw-spin .8s linear infinite}
.rw-btn--primary.is-busy::after{border-color:#fff transparent #fff transparent}
@keyframes rw-spin{to{transform:rotate(360deg)}}
.rw-link{color:var(--rw-accent);text-decoration:underline;text-underline-offset:2px;background:none;border:0;padding:0;font:inherit;cursor:pointer}
.rw-link:hover{color:var(--rw-accent-hover)}
html.touch .rw-btn{min-height:var(--rw-touch)}
html.touch .rw-btn--icon{min-width:var(--rw-touch)}

/* ---------------------------------------------------------------- forms */
.rw-field{display:flex;flex-direction:column;gap:6px;min-width:0}
.rw-field > label,.rw-field__label{font-size:13px;line-height:18px;font-weight:600;color:var(--rw-text-2)}
.rw-field__hint{font-size:12.5px;line-height:17px;color:var(--rw-text-3)}
.rw-field__error{display:flex;gap:6px;font-size:12.5px;line-height:17px;color:var(--rw-danger);font-weight:500}
.rw-req{color:var(--rw-danger);margin-left:2px}
.rw-input,.rw-select,.rw-textarea{width:100%;min-width:0;height:var(--rw-control-h);padding:0 12px;border:1px solid var(--rw-border-control);border-radius:var(--rw-r-control);background:var(--rw-surface);color:var(--rw-text);font:400 14px/20px var(--rw-font)}
.rw-textarea{height:auto;min-height:88px;padding:8px 12px;resize:vertical}
.rw-select{appearance:none;-webkit-appearance:none;padding-right:32px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235f6b7d' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;background-size:14px}
.rw-input::placeholder,.rw-textarea::placeholder{color:#7b8698}
.rw-input:hover,.rw-select:hover,.rw-textarea:hover{border-color:var(--rw-text-3)}
.rw-input:focus,.rw-select:focus,.rw-textarea:focus{outline:2px solid var(--rw-focus);outline-offset:0;border-color:var(--rw-focus)}
.rw-input[readonly]{background:var(--rw-surface-2);color:var(--rw-text-2)}
.rw-input[disabled],.rw-select[disabled],.rw-textarea[disabled]{background:var(--rw-neutral-bg);color:var(--rw-text-3);cursor:not-allowed}
.rw-field.is-invalid .rw-input,.rw-field.is-invalid .rw-select,.rw-field.is-invalid .rw-textarea,.rw-input[aria-invalid="true"]{border-color:var(--rw-danger);box-shadow:inset 0 0 0 1px var(--rw-danger)}
.rw-select.is-active{border-color:var(--rw-accent);box-shadow:inset 0 0 0 1px var(--rw-accent)}
.rw-check{display:inline-flex;align-items:center;gap:8px;font-size:14px;color:var(--rw-text);cursor:pointer}
.rw-check input{width:16px;height:16px;margin:0;accent-color:var(--rw-accent)}
html.touch .rw-input,html.touch .rw-select,html.touch .rw-textarea{font-size:max(16px,1em);min-height:var(--rw-touch)}
html.touch .rw-check input{width:20px;height:20px}
.rw-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--rw-4) var(--rw-5)}
.rw-form-grid .rw-span-2{grid-column:1/-1}
@media (max-width:640px){.rw-form-grid{grid-template-columns:minmax(0,1fr)}}
.rw-fieldset{border:0;margin:0;padding:0;min-width:0}
.rw-fieldset > legend{padding:0;margin:0 0 var(--rw-3);font-size:var(--rw-fs-h3);line-height:var(--rw-lh-h3);font-weight:600;color:var(--rw-text)}
.rw-confirm-flag{display:inline-flex;align-items:center;gap:6px;padding:1px 6px;border-radius:4px;background:var(--rw-warning-bg);color:var(--rw-warning);border:1px dashed #d9a441;font-weight:600}

/* ---------------------------------------------------------------- toolbar and filters */
.rw-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--rw-2)}
.rw-toolbar .rw-input[type="search"],.rw-toolbar .rw-search{flex:1 1 240px;width:auto}
.rw-toolbar .rw-select{width:auto;max-width:100%}
.rw-toolbar__end{margin-left:auto;display:flex;flex-wrap:wrap;gap:var(--rw-2);align-items:center}
.rw-filter{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 6px 0 10px;border-radius:6px;background:var(--rw-accent-50);color:var(--rw-navy);box-shadow:inset 0 0 0 1px var(--rw-accent-100);font-size:12.5px;font-weight:500}
.rw-filter button{appearance:none;border:0;background:transparent;width:20px;height:20px;border-radius:4px;color:inherit;cursor:pointer;display:grid;place-items:center}
.rw-filter button:hover{background:rgba(50,104,200,.16)}
.rw-filter button svg{width:12px;height:12px}

/* ---------------------------------------------------------------- surfaces */
.rw-panel{background:var(--rw-surface);border:1px solid var(--rw-border);border-radius:var(--rw-r-card);box-shadow:var(--rw-shadow-card);min-width:0}
.rw-panel__head{display:flex;flex-wrap:wrap;align-items:center;gap:var(--rw-3);padding:14px var(--rw-5);border-bottom:1px solid var(--rw-border-soft)}
.rw-panel__head .rw-h3{flex:1 1 auto}
.rw-panel__body{padding:var(--rw-5)}
.rw-panel__foot{display:flex;flex-wrap:wrap;align-items:center;gap:var(--rw-2);padding:12px var(--rw-5);border-top:1px solid var(--rw-border-soft);background:var(--rw-surface-2);border-radius:0 0 var(--rw-r-card) var(--rw-r-card)}
.rw-card{position:relative;display:flex;flex-direction:column;padding:var(--rw-5);background:var(--rw-surface);border:1px solid var(--rw-border);border-radius:var(--rw-r-card);box-shadow:var(--rw-shadow-card);color:inherit;text-decoration:none;transition:border-color .15s ease,box-shadow .15s ease}
a.rw-card:hover{border-color:var(--rw-accent-100);box-shadow:var(--rw-shadow-card-hover)}
a.rw-card:hover .rw-go{color:var(--rw-accent);transform:translateX(2px)}
a.rw-card:hover h2,a.rw-card:hover .rw-card__title{color:var(--rw-accent)}
.rw-card__top{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--rw-3)}
.rw-card h2,.rw-card__title{margin:14px 0 0;font-size:var(--rw-fs-h2);line-height:var(--rw-lh-h2);font-weight:600;letter-spacing:-.01em;color:var(--rw-navy);transition:color .15s ease}
.rw-card p,.rw-card__text{margin:6px 0 0;font-size:14px;line-height:21px;color:var(--rw-text-2)}
.rw-icon-chip{width:36px;height:36px;flex:none;display:grid;place-items:center;border-radius:8px;background:var(--rw-navy-50);color:var(--rw-navy-900)}
.rw-icon-chip svg{width:20px;height:20px}
.rw-icon-chip--sm{width:32px;height:32px}.rw-icon-chip--sm svg{width:18px;height:18px}
.rw-go{width:20px;height:20px;flex:none;color:var(--rw-text-3);transition:color .15s ease,transform .15s ease}
.rw-list{margin:0;padding:0;list-style:none;background:var(--rw-surface);border:1px solid var(--rw-border);border-radius:var(--rw-r-card);box-shadow:var(--rw-shadow-card);overflow:hidden}
.rw-list > li + li{border-top:1px solid var(--rw-border-soft)}
.rw-row{display:flex;align-items:center;gap:var(--rw-4);padding:var(--rw-4) var(--rw-5);color:inherit;text-decoration:none;transition:background-color .12s ease}
a.rw-row:hover,button.rw-row:hover{background:var(--rw-surface-2)}
a.rw-row:hover .rw-go{color:var(--rw-accent);transform:translateX(2px)}
.rw-row:focus-visible{outline:2px solid var(--rw-focus);outline-offset:-2px}
button.rw-row{width:100%;border:0;background:none;text-align:left;font:inherit;cursor:pointer}
.rw-row__text{flex:1 1 auto;min-width:0}
.rw-row__title{display:flex;flex-wrap:wrap;align-items:center;gap:var(--rw-2);font-size:15px;line-height:20px;font-weight:600;color:var(--rw-navy)}
.rw-row__sub{display:block;margin-top:3px;font-size:13.5px;line-height:19px;color:var(--rw-text-2)}
.rw-dl{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:var(--rw-3) var(--rw-6);margin:0}
.rw-dl dt{font-size:12px;line-height:16px;color:var(--rw-text-3)}
.rw-dl dd{margin:2px 0 0;font-size:14px;line-height:20px;color:var(--rw-text);min-width:0;overflow-wrap:anywhere}

/* ---------------------------------------------------------------- tint sections
   A pale blue section that groups a summary strip or a filter bar, so a page
   is canvas, white working cards and, now and then, one of these. Used
   occasionally — one or two on a page. Cards, stats and fields inside stay
   white. Never a status, never a table row. */
.rw-tint{background:var(--rw-tint);border:1px solid var(--rw-tint-line);border-radius:var(--rw-r-card);padding:var(--rw-4);min-width:0}
.rw-tint--bar{padding:10px var(--rw-3)}
.rw-tint .rw-label,.rw-tint__label{color:var(--rw-navy)}
.rw-tint__label{display:block;margin:0 0 var(--rw-2);font-size:12px;line-height:16px;font-weight:600}

/* ---------------------------------------------------------------- intelligence
   THE one navy-to-blue treatment (Steele, 20 Oct 2026), and it stays rare so
   it stays special: the workspace's AI surfaces only — the shell's Ask panel
   and the Workspace Assistant (renew-ui.js and renew-feedback.js write the
   same values out, because they also run on pages without this file) — and,
   when it exists, the Home briefing (doc 230 §6.10). Nowhere else, never for
   a status, and never with invented content.
     <section class="rw-intel">
       <header class="rw-intel__head"><span class="rw-intel__mark">✦ svg</span>
         <div class="rw-intel__text"><h2 class="rw-intel__title">…</h2><span class="rw-intel__sub">sources · as of</span></div></header>
       <div class="rw-intel__body"><p class="rw-intel__label">…</p>
         <ol class="rw-intel__list"><li class="rw-intel__item">…</li></ol></div>
       <footer class="rw-intel__foot">…</footer>
     </section>
   The head is the gradient (white 5.2:1 and --rw-intel-sub 4.5:1 at its
   lightest point); the body is a white working surface, so long text and
   recommendations read like the rest of the workspace. Each recommendation
   carries an accent edge: something to act on. */
.rw-intel{position:relative;overflow:hidden;background:var(--rw-surface);border:1px solid var(--rw-intel-line);border-radius:var(--rw-r-card);box-shadow:var(--rw-shadow-card);min-width:0}
.rw-intel__head{position:relative;display:flex;align-items:center;gap:var(--rw-3);padding:14px var(--rw-5);background:var(--rw-intel-grad);color:#fff}
.rw-intel__head::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(120% 140% at 100% 0%,rgba(141,182,230,.14),transparent 55%)}
.rw-intel__head > *{position:relative;z-index:1}
.rw-intel__mark{width:32px;height:32px;flex:none;display:grid;place-items:center;border-radius:9px;background:rgba(255,255,255,.14);box-shadow:inset 0 0 0 1px rgba(255,255,255,.24);color:#fff}
.rw-intel__mark svg{width:18px;height:18px}
.rw-intel__text{flex:1 1 auto;min-width:0}
.rw-intel__title{margin:0;font-size:15px;line-height:20px;font-weight:600;letter-spacing:-.005em;color:#fff}
.rw-intel__sub{display:block;margin-top:2px;font-size:12.5px;line-height:17px;color:var(--rw-intel-sub)}
.rw-intel__head .rw-btn--ghost{color:#fff}
.rw-intel__head .rw-btn--ghost:hover{background:rgba(255,255,255,.14);color:#fff}
.rw-intel__head .rw-btn--ghost:active{background:rgba(255,255,255,.22);color:#fff}
.rw-intel__head :focus-visible{outline-color:#fff}
.rw-intel__body{padding:var(--rw-4) var(--rw-5)}
.rw-intel__label{margin:0 0 var(--rw-2);font-size:12px;line-height:16px;font-weight:600;color:var(--rw-text-3)}
.rw-intel__list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:var(--rw-2)}
.rw-intel__item{display:flex;align-items:flex-start;gap:var(--rw-3);padding:10px 12px;background:var(--rw-surface);border:1px solid var(--rw-border);border-left:3px solid var(--rw-accent);border-radius:var(--rw-r-control);font-size:14px;line-height:20px;color:var(--rw-text)}
.rw-intel__foot{display:flex;flex-wrap:wrap;align-items:center;gap:var(--rw-2) var(--rw-3);padding:10px var(--rw-5);border-top:1px solid var(--rw-border-soft);background:var(--rw-surface-2);font-size:12.5px;line-height:17px;color:var(--rw-text-3)}

/* ---------------------------------------------------------------- figures */
.rw-stat{display:flex;flex-direction:column;gap:4px;padding:var(--rw-4) var(--rw-5);background:var(--rw-surface);border:1px solid var(--rw-border);border-radius:var(--rw-r-card);box-shadow:var(--rw-shadow-card);min-width:0}
.rw-stat__label{font-size:12.5px;line-height:16px;font-weight:600;color:var(--rw-text-2)}
.rw-stat__value{font-size:var(--rw-fs-stat);line-height:var(--rw-lh-stat);font-weight:700;letter-spacing:-.022em;color:var(--rw-navy);font-variant-numeric:tabular-nums}
.rw-stat__sub{font-size:12.5px;line-height:16px;color:var(--rw-text-3)}
button.rw-stat{font:inherit;text-align:left;cursor:pointer}
button.rw-stat{transition:border-color .15s ease,box-shadow .15s ease}
button.rw-stat:hover{border-color:var(--rw-accent-100);box-shadow:var(--rw-shadow-card-hover)}
button.rw-stat[aria-pressed="true"]{border-color:var(--rw-accent);box-shadow:inset 0 0 0 1px var(--rw-accent),var(--rw-shadow-card)}
button.rw-stat[aria-pressed="true"] .rw-stat__label{color:var(--rw-accent)}
.rw-num{font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}
.rw-delta--up{color:var(--rw-success)} .rw-delta--down{color:var(--rw-danger)}
.rw-missing{color:var(--rw-text-3);font-weight:400;font-variant-numeric:tabular-nums}
.rw-missing::before{content:"— "}
.rw-progress{display:block;height:6px;border-radius:var(--rw-r-pill);background:var(--rw-border);overflow:hidden}
.rw-progress > span{display:block;height:100%;border-radius:inherit;background:var(--rw-accent)}
.rw-progress--success > span{background:var(--rw-success)}

/* ---------------------------------------------------------------- tables */
.rw-table-wrap{position:relative;overflow-x:auto;background:var(--rw-surface);border:1px solid var(--rw-border);border-radius:var(--rw-r-card);box-shadow:var(--rw-shadow-card)}
.rw-table{width:100%;border-collapse:separate;border-spacing:0;font-size:13.5px;line-height:19px;font-variant-numeric:tabular-nums}
.rw-table th{position:sticky;top:0;z-index:1;text-align:left;vertical-align:bottom;padding:10px 12px;background:var(--rw-surface-2);border-bottom:1px solid var(--rw-border);font-size:12px;line-height:16px;font-weight:600;color:var(--rw-text-2);white-space:nowrap}
.rw-table--sticky-page th{top:var(--renew-navh,56px)}
.rw-table td{padding:10px 12px;border-bottom:1px solid var(--rw-border-soft);vertical-align:middle}
.rw-table tbody tr:last-child td{border-bottom:0}
.rw-table tbody tr:hover td{background:var(--rw-surface-2)}
.rw-table tr.is-selected td{background:var(--rw-accent-50)}
.rw-table tr.is-open td{background:var(--rw-surface-2);border-bottom-color:transparent}
.rw-table .rw-num,.rw-table th.rw-num{text-align:right}
.rw-table tfoot td{font-weight:600;background:var(--rw-surface-2);border-top:1px solid var(--rw-border)}
.rw-table--dense td,.rw-table--dense th{padding:7px 10px}
.rw-sort{appearance:none;border:0;background:none;padding:0;margin:0;font:inherit;color:inherit;cursor:pointer;display:inline-flex;align-items:center;gap:4px;border-radius:4px}
.rw-sort::after{content:"";width:8px;height:8px;opacity:.45;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath d='M4 0l3 3H1zM4 8L1 5h6z'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath d='M4 0l3 3H1zM4 8L1 5h6z'/%3E%3C/svg%3E") center/contain no-repeat}
th[aria-sort="ascending"] .rw-sort,th[aria-sort="descending"] .rw-sort{color:var(--rw-text)}
th[aria-sort="ascending"] .rw-sort::after{opacity:1;background:var(--rw-accent);-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath d='M4 1l3 4H1z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath d='M4 1l3 4H1z'/%3E%3C/svg%3E")}
th[aria-sort="descending"] .rw-sort::after{opacity:1;background:var(--rw-accent);-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath d='M4 7L1 3h6z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath d='M4 7L1 3h6z'/%3E%3C/svg%3E")}
.rw-disclose{appearance:none;border:0;background:none;width:24px;height:24px;flex:none;border-radius:6px;color:var(--rw-text-3);cursor:pointer;display:inline-grid;place-items:center}
.rw-disclose:hover{background:var(--rw-neutral-bg);color:var(--rw-text)}
.rw-disclose svg{width:14px;height:14px;transition:transform .15s ease}
.rw-disclose[aria-expanded="true"] svg{transform:rotate(90deg)}
html.touch .rw-disclose{width:var(--rw-touch);height:var(--rw-touch)}
.rw-detail td{background:var(--rw-surface-2);padding:var(--rw-3) var(--rw-3) var(--rw-4) 44px}
/* Opt-in: on a phone each row becomes a small card; cells label themselves with data-label. */
@media (max-width:760px){
  .rw-table--stack thead{display:none}
  .rw-table--stack,.rw-table--stack tbody,.rw-table--stack tr,.rw-table--stack td{display:block;width:100%;box-sizing:border-box}
  .rw-table--stack tbody tr{padding:var(--rw-3);border-bottom:1px solid var(--rw-border-soft)}
  .rw-table--stack td{padding:2px 0;border:0;text-align:left}
  .rw-table--stack td[data-label]::before{content:attr(data-label) " ";color:var(--rw-text-3);font-size:12px}
}
.rw-who{display:flex;align-items:center;gap:var(--rw-2);min-width:0}
.rw-who b{font-weight:600}
.rw-who small{display:block;color:var(--rw-text-3);font-size:12.5px;line-height:16px}

/* ---------------------------------------------------------------- pills, tags, counts */
.rw-pill{display:inline-flex;align-items:center;gap:6px;min-height:22px;max-width:100%;padding:2px 8px;border:1px solid transparent;border-radius:11px;font:600 12px/16px var(--rw-font);white-space:normal;vertical-align:middle;-webkit-print-color-adjust:exact;print-color-adjust:exact}
.rw-pill::before{content:"";flex:none;width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.85}
.rw-pill--success{background:var(--rw-success-bg);color:var(--rw-success);border-color:var(--rw-success-line)}
.rw-pill--info{background:var(--rw-info-bg);color:var(--rw-info);border-color:var(--rw-info-line)}
.rw-pill--warning{background:var(--rw-warning-bg);color:var(--rw-warning);border-color:var(--rw-warning-line)}
.rw-pill--attention{background:var(--rw-attention-bg);color:var(--rw-attention);border-color:var(--rw-attention-line)}
.rw-pill--danger{background:var(--rw-danger-bg);color:var(--rw-danger);border-color:var(--rw-danger-line)}
.rw-pill--neutral{background:var(--rw-neutral-bg);color:var(--rw-neutral);border-color:var(--rw-neutral-line)}
.rw-tag{display:inline-flex;align-items:center;height:20px;padding:0 7px;border-radius:6px;background:var(--rw-navy-50);color:var(--rw-navy-900);font:600 11.5px/1 var(--rw-font);white-space:nowrap}
.rw-tag--quiet{background:var(--rw-neutral-bg);color:var(--rw-neutral)}
.rw-count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:var(--rw-neutral-bg);color:var(--rw-text-2);font:600 11.5px/1 var(--rw-font);font-variant-numeric:tabular-nums}
.rw-count--alert{background:var(--rw-danger);color:#fff}

/* ---------------------------------------------------------------- notices and states */
.rw-notice{display:flex;align-items:flex-start;gap:10px;padding:10px 14px;border:1px solid;border-radius:var(--rw-r-control);font-size:13.5px;line-height:19px}
.rw-notice svg{width:16px;height:16px;flex:none;margin-top:2px}
.rw-notice__actions{margin-left:auto;display:flex;gap:var(--rw-2);flex-wrap:wrap}
.rw-notice--info{background:var(--rw-info-bg);border-color:var(--rw-info-line);color:var(--rw-info)}
.rw-notice--success{background:var(--rw-success-bg);border-color:var(--rw-success-line);color:#0f4d27}
.rw-notice--warning{background:var(--rw-warning-bg);border-color:var(--rw-warning-line);color:#6b3209}
.rw-notice--danger{background:var(--rw-danger-bg);border-color:var(--rw-danger-line);color:#7a1b13}
.rw-notice--neutral{background:var(--rw-neutral-bg);border-color:var(--rw-neutral-line);color:var(--rw-text-2)}
.rw-state{display:flex;flex-direction:column;align-items:center;gap:var(--rw-2);padding:var(--rw-10) var(--rw-6);text-align:center;color:var(--rw-text-2)}
.rw-state__icon{width:40px;height:40px;display:grid;place-items:center;border-radius:10px;background:var(--rw-neutral-bg);color:var(--rw-text-3)}
.rw-state__icon svg{width:20px;height:20px}
.rw-state__title{margin:var(--rw-1) 0 0;font-size:15px;line-height:20px;font-weight:600;color:var(--rw-text)}
.rw-state__text{margin:0;max-width:52ch;font-size:13.5px;line-height:19px}
.rw-state--error .rw-state__icon{background:var(--rw-danger-bg);color:var(--rw-danger)}
.rw-skeleton{display:block;height:10px;border-radius:5px;background:linear-gradient(90deg,#eef1f5 0%,#f6f8fa 50%,#eef1f5 100%);background-size:200% 100%;animation:rw-shimmer 1.4s ease-in-out infinite}
@keyframes rw-shimmer{from{background-position:200% 0}to{background-position:-200% 0}}
.rw-unsaved{display:flex;align-items:center;gap:var(--rw-3);padding:10px var(--rw-4);border-radius:var(--rw-r-card);background:var(--rw-navy-950);color:#fff;box-shadow:var(--rw-shadow-pop)}
.rw-unsaved__text{flex:1 1 auto;font-size:13.5px}
.rw-unsaved .rw-btn--ghost{color:#d6deec}
.rw-unsaved .rw-btn--ghost:hover{background:rgba(255,255,255,.08)}
.rw-unsaved .rw-btn--ghost:active{background:rgba(255,255,255,.14)}
.rw-unsaved .rw-btn--ghost:focus-visible{outline-color:var(--rw-focus-on-navy)}

/* ---------------------------------------------------------------- dialogs, drawers, menus */
.rw-dialog{width:min(560px,calc(100vw - 32px));max-height:calc(100vh - 64px);padding:0;border:0;border-radius:var(--rw-r-card);background:var(--rw-surface);color:var(--rw-text);box-shadow:var(--rw-shadow-pop)}
.rw-dialog--wide{width:min(880px,calc(100vw - 32px))}
.rw-dialog::backdrop{background:rgba(15,27,45,.45)}
.rw-dialog__head{display:flex;align-items:flex-start;gap:var(--rw-3);padding:var(--rw-5) var(--rw-5) var(--rw-3)}
.rw-dialog__title{flex:1 1 auto;margin:0;font-size:17px;line-height:24px;font-weight:600}
.rw-dialog[open]{display:flex;flex-direction:column}
.rw-dialog__body{flex:1 1 auto;min-height:0;padding:0 var(--rw-5) var(--rw-5);overflow:auto}
.rw-dialog__foot{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--rw-2);padding:var(--rw-3) var(--rw-5);border-top:1px solid var(--rw-border-soft);background:var(--rw-surface-2);border-radius:0 0 var(--rw-r-card) var(--rw-r-card)}
.rw-drawer{position:fixed;top:0;right:0;bottom:0;z-index:200;width:min(520px,100vw);display:flex;flex-direction:column;background:var(--rw-surface);box-shadow:var(--rw-shadow-pop);transform:translateX(100%);transition:transform .2s ease}
.rw-drawer.is-open{transform:none}
.rw-drawer__head{display:flex;align-items:flex-start;gap:var(--rw-3);padding:var(--rw-5);border-bottom:1px solid var(--rw-border-soft)}
.rw-drawer__body{flex:1 1 auto;overflow:auto;padding:var(--rw-5)}
.rw-drawer__foot{display:flex;gap:var(--rw-2);justify-content:flex-end;padding:var(--rw-3) var(--rw-5);border-top:1px solid var(--rw-border-soft);background:var(--rw-surface-2)}
.rw-scrim{position:fixed;inset:0;z-index:190;background:rgba(15,27,45,.45)}
.rw-menu{min-width:200px;padding:6px;background:var(--rw-surface);border:1px solid var(--rw-border);border-radius:10px;box-shadow:var(--rw-shadow-pop)}
.rw-menu button,.rw-menu a{display:flex;width:100%;align-items:center;gap:var(--rw-2);padding:8px 10px;border:0;border-radius:6px;background:none;color:var(--rw-text);font:400 13.5px/18px var(--rw-font);text-align:left;text-decoration:none;cursor:pointer}
.rw-menu button:hover,.rw-menu a:hover{background:var(--rw-surface-2)}
.rw-menu .is-danger{color:var(--rw-danger)}

/* ---------------------------------------------------------------- steps (multi-step tools) */
.rw-steps{display:flex;flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;counter-reset:rw-step}
.rw-steps li{counter-increment:rw-step}
.rw-step{display:flex;align-items:center;gap:var(--rw-3);width:100%;padding:8px 10px;border:0;border-radius:var(--rw-r-control);background:none;color:var(--rw-text-2);font:500 13.5px/18px var(--rw-font);text-align:left;text-decoration:none;cursor:pointer}
.rw-step::before{content:counter(rw-step);flex:none;width:24px;height:24px;display:grid;place-items:center;border-radius:50%;border:1.5px solid var(--rw-border-strong);font-size:12px;font-weight:600;color:var(--rw-text-3);background:var(--rw-surface)}
.rw-step:hover{background:var(--rw-surface-2)}
.rw-step[aria-current="step"]{background:var(--rw-accent-50);color:var(--rw-navy);font-weight:600}
.rw-step[aria-current="step"]::before{border-color:var(--rw-accent);color:var(--rw-accent)}
.rw-step.is-done::before{content:"✓";border-color:var(--rw-success);background:var(--rw-success);color:#fff}
.rw-step.is-blocked::before{content:"!";border-color:var(--rw-warning);background:var(--rw-warning-bg);color:var(--rw-warning)}

/* ---------------------------------------------------------------- print
   Application chrome only. Documents (contracts, decks, proforma shares)
   keep their own print CSS and never load this file. */
@media print{
  .rw-noprint,.rw-toolbar,.rw-head__actions,.rw-unsaved,.rw-scrim,.rw-drawer,.rw-disclose{display:none}
  .rw-panel,.rw-card,.rw-table-wrap,.rw-list,.rw-stat,.rw-intel{box-shadow:none}
  .rw-tint{background:none;border-color:var(--rw-border)}
  .rw-table th{position:static}
  :where(html[data-ui="2"]),:where(html[data-ui="2"]) body{background:#fff}
}

/* ---------------------------------------------------------------- hidden
   The hidden attribute always wins over a component's own display value
   (a .rw-filter or .rw-notice with hidden must not show). */
[class*="rw-"][hidden]{display:none}

/* Wide screens use the whole screen (Steele, 26 Oct 2026: "I need every screen to have the no cap for wide screens"). --renew-measure stays the one switch every page column reads (always as a max-width); :root:root outranks the 1180px each page still declares on :root, so no page has to change.
   Here as well as in renew-ui.js, so the first paint is already full width. */
:root:root{--renew-measure:none}
/* And the design system's own page width (.rw-page, 1120px): 100% rather than
   none, because five pages add their page edges to it in a calc(). A form page
   (.rw-page--form) keeps its narrower measure; it is one column of fields. */
:root:root{--rw-w-hub:100%}
