/* The one source of colour, type, spacing and shared components for every Stackworks and
   Wilson web surface. Surfaces own layout and density; they hold no colour literal. */
:root{--wordmark-ink:28,27,26;--wordmark-accent:200,64,31;--binary-mark:164,78,45;
--brand-bg:#ece7dd;--brand-panel:#f4f0e8;--brand-ink:#1c1b1a;--brand-text:#45423e;--brand-muted:#6b6760;--brand-accent:#c8401f;--brand-accent-ink:#fff;--brand-second:#2456d6;--brand-good:#2f7d57;--brand-watch:#c98a1b;--brand-bad:#c2372b;
--brand-line:#cfc9be;--brand-line2:#a39d92;--brand-soft:#e4ded4;--brand-field:#fffaf2;
--brand-chrome:rgba(236,231,221,.95);--brand-scrim:rgba(20,19,18,.4);--brand-shadow:rgb(20,19,18);
--brand-positive:#216848;--brand-negative:#b42b23;--brand-error:#b42b23;--brand-warning:#8a5a17;--brand-informative:#2d6088;
--brand-hot:#ff3b30;--brand-coral:#f2304f;--brand-rose:#b4485f;
--brand-signal:#ff4a1c;--brand-signal-hi:#ffa828;--brand-signal-glow:#ffecbe;
--brand-frame-ink:#f4f0e8;--brand-frame-bar-ink:#ece7dd;--brand-frame-muted:#a8a49c;--brand-frame-bg:#1c1c1d;--brand-frame-line:#55524d;--brand-frame-scan:#3a3835;
--brand-paper:#ece7dd;--brand-paper-ink:#2a2825;--brand-paper-muted:#5f5b54;--brand-paper-line:#b9b3a8;--brand-paper-accent:#c8401f;--brand-paper-second:#2456d6;
--brand-block-blue:#2456d6;--brand-block-red:#c8401f;--brand-block-ink:#1c1b1a;--brand-on-block:#fffaf2;--brand-block-paper:#f4f0e8;--brand-block-paper-ink:#1c1b1a;--brand-block-paper-text:#45423e;--code-bg:#1c1c1d;--code-line:#38383a;--code-ink:#ecebe8;--code-dim:#a09e99;--code-ok:#7fd49a;--code-wait:#f2b84b;--code-no:#ff6b5b;--code-key:#ff7a59;
--brand-reading:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--brand-sans:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
--brand-mono:'Geist Mono',ui-monospace,monospace;--brand-dot:'Doto',ui-monospace,monospace;
--brand-space-1:4px;--brand-space-2:8px;--brand-space-3:12px;--brand-space-4:16px;--brand-space-5:24px;--brand-space-6:40px;--brand-radius:0px;color-scheme:light}
:root[data-theme="dark"]{--wordmark-ink:236,235,232;--wordmark-accent:111,155,255;--binary-mark:111,155,255;
--brand-bg:#1a1a1b;--brand-panel:#232324;--brand-ink:#ecebe8;--brand-text:#c4c2bd;--brand-muted:#9a9893;--brand-accent:#e9573a;--brand-accent-ink:#fffaf2;--brand-second:#6f9bff;--brand-good:#6fcf97;--brand-watch:#f2b84b;--brand-bad:#ff6b5b;
--brand-line:#343436;--brand-line2:#55555a;--brand-soft:#29292b;--brand-field:#1a1a1b;
--brand-chrome:rgba(26,26,27,.96);--brand-scrim:rgba(0,0,0,.62);--brand-shadow:rgb(0,0,0);--code-bg:#111112;--code-line:#303032;
--brand-positive:#8bc7a6;--brand-negative:#ff8a80;--brand-error:#ff7a9a;--brand-warning:#e3bf83;--brand-informative:#a2c9e9;--brand-rose:#f48da6;color-scheme:dark}
/* Partner sign-in identity: the partner's own palette inside the shared structure. */
/* The content vocabulary's roles (wire/src/content.rs Role and Space): each by a brand token. The web content view
   and the app's generated Brand.swift (apps/wilson/brand.py) both read this block; neither names a role's value. */
:root{--role-text:var(--brand-ink);--role-muted:var(--brand-muted);--role-accent:var(--brand-accent);--role-added:var(--brand-positive);--role-removed:var(--brand-negative);--role-ok:var(--brand-positive);--role-warn:var(--brand-warning);--role-danger:var(--brand-error);--role-code:var(--brand-text);--role-link:var(--brand-informative);
--space-tight:var(--brand-space-1);--space-normal:var(--brand-space-3);--space-loose:var(--brand-space-5)}
/* Shared components. */
/* The content vocabulary (site/shared/content.mjs): colour and spacing by role, nothing else. */
.sw-content{display:grid;color:var(--role-text);font:400 14px var(--brand-reading);min-width:0}
.sw-content>[data-space=tight]{margin-top:var(--space-tight)}.sw-content>[data-space=normal]{margin-top:var(--space-normal)}.sw-content>[data-space=loose]{margin-top:var(--space-loose)}
.sw-content>:first-child{margin-top:0}
.sw-content [data-role=text]{color:var(--role-text)}.sw-content [data-role=muted]{color:var(--role-muted)}.sw-content [data-role=accent]{color:var(--role-accent)}
.sw-content [data-role=added]{color:var(--role-added)}.sw-content [data-role=removed]{color:var(--role-removed)}.sw-content [data-role=ok]{color:var(--role-ok)}
.sw-content [data-role=warn]{color:var(--role-warn)}.sw-content [data-role=danger]{color:var(--role-danger)}.sw-content [data-role=code]{color:var(--role-code)}.sw-content [data-role=link]{color:var(--role-link)}
.sw-content p,.sw-content pre,.sw-content dl,.sw-content ol,.sw-content table{margin:0}
.sw-content pre{font:400 13px/1.5 var(--brand-mono);white-space:pre-wrap;overflow-wrap:anywhere}
.sw-content .sw-content-source{font:400 11px var(--brand-mono);color:var(--role-muted);overflow-wrap:anywhere;margin-top:var(--space-tight)}
.sw-content .sw-content-label{font:400 11px var(--brand-mono);letter-spacing:.14em;text-transform:uppercase}
.sw-content .sw-content-figure{font:500 22px var(--brand-sans);font-variant-numeric:tabular-nums}
.sw-content .sw-content-scroll{overflow-x:auto}
.sw-content table{border-collapse:collapse;font-variant-numeric:tabular-nums}
.sw-content th{text-align:left;font:400 11px var(--brand-mono);letter-spacing:.14em;text-transform:uppercase}
.sw-content th,.sw-content td{padding:var(--space-tight) var(--brand-space-3) var(--space-tight) 0;border-bottom:1px solid var(--brand-line);vertical-align:top}
.sw-content dl{display:grid;grid-template-columns:max-content 1fr;gap:var(--space-tight) var(--brand-space-3)}
.sw-content dd{margin:0;overflow-wrap:anywhere}
.sw-content ol{padding-left:var(--brand-space-5)}
.sw-content progress{width:100%;accent-color:var(--role-accent)}
.sw-content a{overflow-wrap:anywhere}
.sw-button{display:inline-flex;align-items:center;justify-content:center;gap:var(--brand-space-2);min-height:40px;padding:var(--brand-space-3) var(--brand-space-4);border:1px solid var(--brand-ink);border-radius:var(--brand-radius);background:var(--brand-ink);color:var(--brand-bg);font:500 12px var(--brand-mono);letter-spacing:.14em;text-transform:uppercase;text-decoration:none;cursor:pointer}
.sw-button.quiet{background:transparent;color:var(--brand-ink);border-color:var(--brand-line2)}
.sw-button:focus-visible,.sw-field:focus-visible{outline:2px solid var(--brand-accent);outline-offset:3px}
.sw-button:disabled{opacity:.5;cursor:wait}
.sw-field{display:block;width:100%;min-height:40px;padding:var(--brand-space-2) var(--brand-space-3);border:1px solid var(--brand-line);border-radius:var(--brand-radius);background:var(--brand-field);color:var(--brand-ink);font:400 15px var(--brand-reading)}
.sw-card{padding:var(--brand-space-5);border:1px solid var(--brand-line);border-radius:var(--brand-radius);background:var(--brand-panel);color:var(--brand-ink)}
.sw-table{width:100%;border-collapse:collapse;color:var(--brand-ink);font:400 14px var(--brand-reading)}
.sw-table th{text-align:left;font:400 11px var(--brand-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--brand-muted)}
.sw-table th,.sw-table td{padding:var(--brand-space-3) var(--brand-space-2);border-bottom:1px solid var(--brand-line)}
.sw-signin{display:grid;gap:var(--brand-space-4);max-width:26rem;margin:0 auto;padding:var(--brand-space-5);border:1px solid var(--brand-line);background:var(--brand-panel);color:var(--brand-ink)}
.sw-signin .sw-field,.sw-signin .sw-button{width:100%}
.sw-signin .error{color:var(--brand-error)}
/* The public site's dark theme is black and monochrome; these are its tones (pop.css maps them onto the site in dark). */
:root{--brand-mono-bg:#0a0a0a;--brand-mono-panel:#121212;--brand-mono-ink:#f4f4f2;--brand-mono-text:#c9c9c6;--brand-mono-muted:#8d8d8a;--brand-mono-paper-text:#bdbdb9;--brand-mono-link:#8fb0ff;--brand-mono-pop:#6f9bff;--brand-mono-amber:#f2b84b;--brand-mono-green:#6fcf97;--brand-mono-coral:#ff8a6b;--brand-mono-backdrop:#000}
