/* Self-hosted IBM Plex Sans (SIL OFL, see fonts/LICENSE-IBMPlexSans.txt). CSP is font-src 'self'. */
@font-face { font-family: 'IBM Plex Sans'; font-style: normal; font-weight: 400; font-display: swap;
  src: url(fonts/ibm-plex-sans-latin-400-normal.woff2) format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: 'IBM Plex Sans'; font-style: normal; font-weight: 400; font-display: swap;
  src: url(fonts/ibm-plex-sans-latin-ext-400-normal.woff2) format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: 'IBM Plex Sans'; font-style: normal; font-weight: 500; font-display: swap;
  src: url(fonts/ibm-plex-sans-latin-500-normal.woff2) format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: 'IBM Plex Sans'; font-style: normal; font-weight: 500; font-display: swap;
  src: url(fonts/ibm-plex-sans-latin-ext-500-normal.woff2) format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: 'IBM Plex Sans'; font-style: normal; font-weight: 600; font-display: swap;
  src: url(fonts/ibm-plex-sans-latin-600-normal.woff2) format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: 'IBM Plex Sans'; font-style: normal; font-weight: 600; font-display: swap;
  src: url(fonts/ibm-plex-sans-latin-ext-600-normal.woff2) format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }

/* Ellipsis investor portal, v3: shadcn/ui as Basecoat ports it to plain HTML (class names follow
   Basecoat: btn, card, badge, alert, input, label, table, tabs). Zinc theme, Ellipsis orange as
   primary, square corners, IBM Plex Sans only. Tuned for readers over 60: 16px reading text,
   15px UI text, dark grey secondary text, 44px buttons and visible input borders.
   Token names follow shadcn (--background, --primary, --radius...). */
.sh {
  --background: #ffffff; --foreground: #18181b; --page: #fafafa;
  --card: #ffffff; --card-foreground: #18181b;
  --primary: #f97316; --primary-hover: #ea580c; --primary-foreground: #18181b; --primary-text: #c2410c;
  --secondary: #f4f4f5; --secondary-foreground: #18181b;
  --muted: #f4f4f5; --muted-foreground: #52525b;
  --accent: #f4f4f5; --accent-foreground: #18181b;
  --border: #e4e4e7; --input: #8e8e96; --ring: #c2410c; --ring-halo: rgba(249, 115, 22, .35);
  --lp-bg: #fff7ed; --lp-border: #fdba74; --lp-text: #9a3412;
  --success: #15803d; --chart-track: #e4e4e7;
  --radius: 0px;
  --shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, .05);
  --sans: 'IBM Plex Sans', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', sans-serif;
  display: flex; flex-direction: column; min-height: 100vh;
  background: var(--page); color: var(--foreground);
  font-family: var(--sans); font-size: 16px; line-height: 1.55;
  -webkit-font-smoothing: antialiased; font-variant-numeric: tabular-nums;
}
.sh * { box-sizing: border-box; border-color: var(--border); }
.sh a { color: inherit; text-decoration: none; }
.sh :focus-visible { outline: 2px solid var(--ring); outline-offset: 2px; }
.sh svg { flex: none; width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.sh h1, .sh h2, .sh h3, .sh p, .sh dl, .sh dd { margin: 0; }
.sh .muted { color: var(--muted-foreground); }
.sh .sm { font-size: 14px; line-height: 20px; }
.sh .wrap { width: 100%; max-width: 1200px; margin: 0 auto; padding-inline: 32px; }
.sh .vh { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.sh .tlink { color: var(--primary-text); text-decoration: underline; text-underline-offset: 3px; }

/* Header */
.sh .top { background: var(--background); border-bottom: 1px solid var(--border); }
.sh .top .wrap { display: flex; align-items: stretch; gap: 32px; min-height: 64px; }
.sh .brand { display: flex; align-items: center; gap: 12px; }
.sh .brand img { display: block; width: 92px; height: auto; aspect-ratio: 982 / 340; object-fit: cover; }
.sh .brand span { padding-left: 12px; border-left: 1px solid var(--border); color: var(--muted-foreground); font-size: 15px; font-weight: 500; line-height: 18px; }
.sh .nav { display: flex; align-items: stretch; gap: 4px; }
.sh .nav a { display: flex; align-items: center; padding: 0 12px; border-bottom: 2px solid transparent; color: var(--muted-foreground); font-size: 15px; font-weight: 500; }
.sh .nav a:hover { color: var(--foreground); }
.sh .nav a.here { color: var(--foreground); font-weight: 600; border-bottom-color: var(--primary); }
.sh .top .end { display: flex; align-items: center; gap: 8px; margin-left: auto; }
.sh .who { font-size: 15px; color: var(--muted-foreground); padding-right: 4px; }

/* App layout: a left menu grouped by what LPs come for, content on the right */
.sh .lay { flex: 1 0 auto; display: flex; flex-wrap: wrap; }
.sh .side { flex: 0 0 272px; display: flex; flex-direction: column; gap: 24px; padding: 20px 16px 24px; background: var(--background); border-right: 1px solid var(--border); }
.sh .side .brand { padding: 6px 12px 4px; }
.sh .side .acc { display: flex; align-items: center; gap: 12px; width: 100%; padding: 10px 12px; border: 1px solid var(--border); background: var(--background); color: var(--foreground); font-family: inherit; text-align: left; cursor: pointer; }
.sh .side .acc:hover { background: var(--accent); }
.sh .side .acc b { display: block; font-size: 15px; line-height: 20px; font-weight: 600; color: var(--foreground); }
.sh .side .acc i { display: block; font-style: normal; font-size: 14px; line-height: 20px; color: var(--muted-foreground); }
.sh .side .acc svg { margin-left: auto; color: var(--muted-foreground); }
.sh .side nav { display: flex; flex-direction: column; gap: 24px; }
.sh .side .grp { display: flex; flex-direction: column; gap: 2px; }
.sh .side .gl { padding: 0 12px 6px; font-size: 14px; font-weight: 600; color: var(--muted-foreground); }
.sh .side .it { display: flex; align-items: center; gap: 12px; min-height: 44px; padding: 0 12px; font-size: 16px; font-weight: 500; color: var(--foreground); }
.sh .side .it svg { width: 20px; height: 20px; color: var(--muted-foreground); }
.sh .side .it:hover { background: var(--accent); color: var(--foreground); }
.sh .side .it.here { background: var(--accent); font-weight: 600; }
.sh .side .it.here svg { color: var(--primary-text); }
.sh .side .it .badge { margin-left: auto; }
.sh .side .me { margin-top: auto; display: flex; flex-direction: column; gap: 8px; padding: 16px 12px 0; border-top: 1px solid var(--border); font-size: 14px; color: var(--muted-foreground); }
.sh .side .me .btn { align-self: flex-start; margin-left: -12px; }
.sh .body { flex: 1 1 640px; min-width: 0; display: flex; flex-direction: column; }
.sh .side .row1 { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.sh .side .row1 .brand { padding: 6px 4px 4px 12px; }
.sh .side .tog { padding: 0 8px; color: var(--muted-foreground); }
.sh .side .av { flex: none; display: grid; place-items: center; width: 32px; height: 32px; background: var(--secondary); color: var(--secondary-foreground); font-size: 13px; font-weight: 600; }
.sh .side .acc .who-t { min-width: 0; }

/* Collapsed menu: icons only, names on hover */
@media (min-width: 901px) {
  .sh .lay.mini .side { flex-basis: 76px; padding-inline: 14px; }
  .sh .lay.mini .side .row1 { justify-content: center; }
  .sh .lay.mini .side .brand, .sh .lay.mini .side .gl, .sh .lay.mini .side .lbl, .sh .lay.mini .side .who-t, .sh .lay.mini .side .acc > svg, .sh .lay.mini .side .em, .sh .lay.mini .side .it .badge { display: none; }
  .sh .lay.mini .side .acc { justify-content: center; padding: 7px; }
  .sh .lay.mini .side .it { justify-content: center; padding: 0; }
  .sh .lay.mini .side nav { gap: 12px; }
  .sh .lay.mini .side .grp + .grp { padding-top: 12px; border-top: 1px solid var(--border); }
  .sh .lay.mini .side .me { padding-inline: 0; align-items: center; }
  .sh .lay.mini .side .me .btn { margin-left: 0; align-self: center; }
}

/* Page heading */
.sh main { flex: 1 0 auto; padding-block: 40px 56px; }
.sh .phead { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 16px 24px; margin-bottom: 32px; }
.sh .h1 { font-size: 32px; line-height: 40px; font-weight: 600; letter-spacing: -.02em; }
.sh .lead { margin-top: 8px; max-width: 68ch; color: var(--muted-foreground); }
.sh .badges { display: flex; flex-wrap: wrap; gap: 8px; }

/* Layout */
.sh .dash { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 24px; align-items: start; }
.sh .dash > * { grid-column: 1 / -1; min-width: 0; }
.sh .dash .c8 { grid-column: span 8; } .sh .dash .c7 { grid-column: span 7; } .sh .dash .c6 { grid-column: span 6; }
.sh .dash .c5 { grid-column: span 5; } .sh .dash .c4 { grid-column: span 4; }

/* Buttons */
.sh .btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 0 18px; border-radius: var(--radius); border: 1px solid transparent; background: var(--primary); color: var(--primary-foreground); font-family: inherit; font-size: 15px; font-weight: 500; line-height: 20px; white-space: nowrap; cursor: pointer; box-shadow: var(--shadow-xs); }
.sh .btn:hover { background: var(--primary-hover); }
.sh .btn:focus-visible { outline: none; border-color: var(--ring); box-shadow: 0 0 0 3px var(--ring-halo); }
.sh .btn-outline { background: var(--background); color: var(--foreground); border-color: var(--input); }
.sh .btn-outline:hover { background: var(--accent); }
.sh .btn-secondary { background: var(--secondary); color: var(--secondary-foreground); }
.sh .btn-secondary:hover { background: var(--border); }
.sh .btn-ghost { background: transparent; color: var(--foreground); box-shadow: none; }
.sh .btn-ghost:hover { background: var(--accent); }
.sh .btn-link { min-height: 0; padding: 0; background: transparent; color: var(--primary-text); box-shadow: none; text-decoration: underline; text-underline-offset: 3px; }
.sh .btn-link:hover { background: transparent; text-decoration-thickness: 2px; }
.sh .btn-sm { min-height: 36px; padding: 0 12px; font-size: 14px; }
.sh .btn-wide { width: 100%; }

/* Card */
.sh .card { display: flex; flex-direction: column; gap: 20px; padding: 24px 0; background: var(--card); color: var(--card-foreground); border: 1px solid var(--border); border-radius: var(--radius); box-shadow: var(--shadow-xs); }
.sh .card > header { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 16px; align-items: center; padding: 0 24px; }
.sh .card > header h2 { font-size: 18px; line-height: 24px; font-weight: 600; }
.sh .card > header p { grid-column: 1; color: var(--muted-foreground); font-size: 15px; }
.sh .card > header .act { grid-column: 2; grid-row: 1 / span 2; }
.sh .card > section { padding: 0 24px; }
.sh .card > footer { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 0 24px; }

/* Badge */
.sh .badge { display: inline-flex; align-items: center; gap: 4px; padding: 2px 8px; border: 1px solid transparent; border-radius: var(--radius); font-size: 13px; line-height: 18px; font-weight: 500; white-space: nowrap; background: var(--primary); color: var(--primary-foreground); }
.sh .badge-secondary { background: var(--secondary); color: var(--secondary-foreground); }
.sh .badge-outline { background: transparent; color: var(--foreground); border-color: var(--input); }
.sh .badge-lp { background: var(--lp-bg); color: var(--lp-text); border-color: var(--lp-border); }

/* Alert */
.sh .alert { display: grid; grid-template-columns: 20px minmax(0, 1fr); gap: 2px 12px; align-items: start; width: 100%; padding: 16px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--card); color: var(--card-foreground); font-size: 15px; line-height: 22px; }
.sh .alert > svg { width: 20px; height: 20px; margin-top: 1px; color: var(--primary-text); }
.sh .alert > h2 { grid-column: 2; font-size: 15px; line-height: 22px; font-weight: 600; }
.sh .alert > section { grid-column: 2; color: var(--muted-foreground); }
.sh .alert.ok > svg { color: var(--success); }
.sh .alert .end { grid-column: 2; margin-top: 10px; }

/* Form */
.sh .field { display: grid; gap: 8px; }
.sh .label { font-size: 15px; line-height: 20px; font-weight: 500; }
.sh .input { width: 100%; min-width: 0; height: 48px; padding: 0 14px; border: 1px solid var(--input); border-radius: var(--radius); background: var(--background); color: var(--foreground); font-family: inherit; font-size: 16px; box-shadow: var(--shadow-xs); outline: none; }
.sh .input::placeholder { color: var(--muted-foreground); opacity: .8; }
.sh .input:focus-visible { border-color: var(--ring); box-shadow: 0 0 0 3px var(--ring-halo); }
.sh .input.code { height: 56px; text-align: center; font-size: 24px; font-weight: 600; letter-spacing: .4em; }

/* Tabs used as filters */
.sh .tabs { display: inline-flex; flex-wrap: wrap; gap: 2px; padding: 4px; background: var(--muted); border-radius: var(--radius); }
.sh .tabs button, .sh .tabs a { display: inline-flex; align-items: center; gap: 6px; min-height: 40px; padding: 0 14px; border: 0; background: transparent; color: var(--muted-foreground); font-family: inherit; font-size: 15px; font-weight: 500; cursor: pointer; }
.sh .tabs button:hover, .sh .tabs a:hover { color: var(--foreground); }
.sh .tabs .on { background: var(--background); color: var(--foreground); box-shadow: var(--shadow-xs); }
.sh .tabs .n { font-size: 13px; color: var(--muted-foreground); }

/* Table */
.sh .tbox { width: 100%; overflow-x: auto; }
.sh .table { width: 100%; border-collapse: collapse; font-size: 15px; line-height: 22px; }
.sh .table th { height: 44px; padding: 0 12px; text-align: left; vertical-align: middle; font-size: 14px; font-weight: 500; color: var(--muted-foreground); white-space: nowrap; border-bottom: 1px solid var(--border); }
.sh .table td { padding: 12px; vertical-align: middle; border-bottom: 1px solid var(--border); }
.sh .table th:first-child, .sh .table td:first-child { padding-left: 0; }
.sh .table th:last-child, .sh .table td:last-child { padding-right: 0; }
.sh .table tbody tr:last-child td { border-bottom: 0; }
.sh .table tbody tr.go:hover td { background: var(--accent); cursor: pointer; }
.sh .table .r { text-align: right; white-space: nowrap; }
.sh .table .nw { white-space: nowrap; }
.sh .table .end { width: 1%; text-align: right; white-space: nowrap; }
.sh .table tfoot td { font-weight: 600; border-top: 1px solid var(--foreground); border-bottom: 0; }
.sh .table .nm { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; font-weight: 500; }
.sh .table .sub { display: block; margin-top: 2px; font-size: 14px; line-height: 20px; color: var(--muted-foreground); }
.sh .co { display: flex; align-items: center; gap: 14px; min-width: 260px; }
.sh .co img, .sh .co .ph { flex: none; width: 44px; height: 44px; border: 1px solid var(--border); background: #ffffff; object-fit: cover; }
.sh .co img, .sh .logo-lg img { filter: grayscale(1); }
.sh .co .ph { display: grid; place-items: center; background: var(--muted); color: var(--muted-foreground); font-weight: 600; }
.sh .up { color: var(--success); font-weight: 600; }

/* Lists inside cards */
.sh .rows { margin: 0; padding: 0; list-style: none; }
.sh .rows li { display: grid; grid-template-columns: 104px minmax(0, 1fr) auto; gap: 4px 20px; align-items: center; padding: 14px 0; border-bottom: 1px solid var(--border); }
.sh .rows li:first-child { padding-top: 0; }
.sh .rows li:last-child { border-bottom: 0; padding-bottom: 0; }
.sh .rows .d { font-size: 14px; color: var(--muted-foreground); }
.sh .rows .t { display: block; font-weight: 500; }
.sh .rows .s { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; margin-top: 2px; font-size: 14px; line-height: 20px; color: var(--muted-foreground); }
.sh .links { display: flex; flex-direction: column; }
.sh .links a { display: grid; grid-template-columns: minmax(0, 1fr) 18px; gap: 2px 12px; align-items: center; padding: 14px 12px; margin: 0 -12px; border-bottom: 1px solid var(--border); }
.sh .links a:last-child { border-bottom: 0; }
.sh .links a:hover { background: var(--accent); }
.sh .links a svg { grid-column: 2; grid-row: 1 / span 3; color: var(--muted-foreground); }
.sh .links .k { font-size: 14px; color: var(--muted-foreground); }
.sh .links .t { font-weight: 500; }

/* Figures: a row of key numbers split by thin rules, never boxes inside a card */
.sh .stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); row-gap: 20px; }
.sh .stat { padding: 2px 24px; border-left: 1px solid var(--border); }
.sh .stat:first-child { padding-left: 0; border-left: 0; }
.sh .stat .k { display: block; font-size: 15px; font-weight: 500; color: var(--muted-foreground); }
.sh .stat .v { display: block; margin-top: 6px; font-size: 32px; line-height: 36px; font-weight: 600; letter-spacing: -.01em; }
.sh .stat .v small { margin-right: 4px; font-size: 16px; font-weight: 500; color: var(--muted-foreground); }
.sh .stat .s { display: block; margin-top: 4px; font-size: 14px; color: var(--muted-foreground); }
.sh .progress { height: 8px; margin-top: 14px; background: var(--chart-track); }
.sh .progress i { display: block; height: 100%; background: var(--primary); }

/* Facts: key / value */
.sh .facts > div { display: grid; grid-template-columns: 180px minmax(0, 1fr); gap: 4px 16px; padding: 12px 0; border-top: 1px solid var(--border); }
.sh .facts > div:first-child { padding-top: 0; border-top: 0; }
.sh .facts dt { font-size: 15px; color: var(--muted-foreground); }
.sh .facts dd { font-size: 15px; }

/* Quarterly updates */
.sh .upd { display: grid; grid-template-columns: 160px minmax(0, 1fr); gap: 4px 20px; padding: 18px 0; border-bottom: 1px solid var(--border); }
.sh .upd:first-child { padding-top: 0; }
.sh .upd:last-child { border-bottom: 0; padding-bottom: 0; }
.sh .upd .q { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; align-self: start; font-weight: 600; }
.sh .upd ul { margin: 0; padding-left: 20px; display: flex; flex-direction: column; gap: 8px; line-height: 1.6; }
.sh .upd li::marker { color: var(--muted-foreground); }

/* Bar chart: one bar per quarter */
.sh .bars { display: flex; align-items: flex-end; gap: 16px; height: 150px; padding-top: 8px; border-bottom: 1px solid var(--border); }
.sh .bars .b { flex: 1 1 0; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; gap: 6px; height: 100%; font-size: 14px; color: var(--muted-foreground); }
.sh .bars .b i { display: block; width: 100%; max-width: 64px; background: var(--chart-track); }
.sh .bars .b.cur i { background: var(--primary); }
.sh .bars-x { display: flex; gap: 16px; margin-top: 8px; }
.sh .bars-x span { flex: 1 1 0; text-align: center; font-size: 14px; color: var(--muted-foreground); }

/* Sign-in steps */
.sh .steps { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 22px; }
.sh .steps li { display: grid; grid-template-columns: 30px minmax(0, 1fr); gap: 2px 14px; }
.sh .steps .n { grid-row: 1 / span 2; display: grid; place-items: center; width: 30px; height: 30px; border: 1px solid var(--input); background: var(--background); font-size: 15px; font-weight: 600; color: var(--muted-foreground); }
.sh .steps .n svg { width: 16px; height: 16px; stroke-width: 2.5; }
.sh .steps li.now .n { background: var(--primary); border-color: var(--primary); color: var(--primary-foreground); }
.sh .steps li.done .n { background: var(--foreground); border-color: var(--foreground); color: var(--background); }
.sh .steps .t { font-weight: 600; }
.sh .steps .s { color: var(--muted-foreground); }

/* Page sections: a heading, then one white panel */
.sh .sect + .sect { margin-top: 48px; }
.sh .sect-h { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 8px 24px; margin-bottom: 14px; }
.sh .sect-h h2 { font-size: 22px; line-height: 28px; font-weight: 600; letter-spacing: -.01em; }
.sh .sect-h p { margin-top: 2px; color: var(--muted-foreground); }
.sh .panel { padding: 24px; background: var(--card); border: 1px solid var(--border); box-shadow: var(--shadow-xs); }
.sh .panel.flush { padding-block: 8px; }
.sh .panel.flush .rows li { padding: 16px 0; }
.sh .panel.flush .upd { padding: 20px 0; }
.sh .panel.flush .rows li:last-child, .sh .panel.flush .upd:last-child { border-bottom: 0; }

/* A note at the foot of a panel: an alert without its own box */
.sh .panel .alert { margin-top: 24px; padding: 20px 0 0; border: 0; border-top: 1px solid var(--border); background: transparent; }

/* Equal columns inside one panel, split by thin rules */
.sh .cols { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.sh .cols.two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.sh .cols > * { min-width: 0; padding: 0 28px; border-left: 1px solid var(--border); }
.sh .cols > *:first-child { padding-left: 0; border-left: 0; }
.sh .cols > *:last-child { padding-right: 0; }
.sh a.tile { display: flex; flex-direction: column; gap: 4px; }
.sh a.tile .k { font-size: 14px; color: var(--muted-foreground); }
.sh a.tile .t { font-size: 18px; line-height: 26px; font-weight: 600; }
.sh a.tile:hover { color: inherit; }
.sh a.tile:hover .t { color: var(--primary-text); text-decoration: underline; text-underline-offset: 3px; }

/* Page band: every page opens with its title on white */
.sh .hero.page { padding: 36px 0 32px; }
.sh .hero .phead { margin-bottom: 0; }

/* Profile hero: a white band with name, line and key facts */
.sh .hero { background: var(--background); border-bottom: 1px solid var(--border); padding: 20px 0 32px; }
.sh .hero .id { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px; margin-top: 16px; }
.sh .hero .who-is { display: flex; align-items: center; gap: 28px; min-width: 0; }
.sh .hero .h1 { font-size: 40px; line-height: 48px; }
.sh .hero .line { margin-top: 4px; font-size: 20px; line-height: 28px; }
.sh .keyfacts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px 32px; margin: 32px 0 0; padding-top: 24px; border-top: 1px solid var(--border); }
.sh .keyfacts dt { font-size: 14px; color: var(--muted-foreground); }
.sh .keyfacts dd { margin-top: 4px; font-weight: 500; }
.sh .logo-lg { flex: none; width: 112px; height: 112px; border: 1px solid var(--border); background: #ffffff; overflow: hidden; }
.sh .logo-lg img { display: block; width: 100%; height: 100%; object-fit: cover; }

/* Footer */
.sh .foot { border-top: 1px solid var(--border); background: var(--background); }
.sh .foot .wrap { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 24px; padding-block: 22px; font-size: 14px; color: var(--muted-foreground); }
.sh .foot .l { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; }
.sh .foot img { display: block; width: 72px; height: auto; aspect-ratio: 982 / 340; object-fit: cover; }

@media (max-width: 900px) {
  .sh .side { flex-basis: 100%; gap: 16px; border-right: 0; border-bottom: 1px solid var(--border); }
  .sh .side nav { flex-direction: row; flex-wrap: wrap; gap: 8px 24px; }
  .sh .side .me { margin-top: 0; flex-direction: row; align-items: center; justify-content: space-between; }
  .sh .side .tog { display: none; }
  .sh .dash .c8, .sh .dash .c7, .sh .dash .c6, .sh .dash .c5, .sh .dash .c4 { grid-column: 1 / -1; }
  .sh .stats, .sh .keyfacts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sh .stat:nth-child(odd) { padding-left: 0; border-left: 0; }
  .sh .cols, .sh .cols.two { grid-template-columns: minmax(0, 1fr); row-gap: 20px; }
  .sh .cols > * { padding: 20px 0 0; border-left: 0; border-top: 1px solid var(--border); }
  .sh .cols > *:first-child { padding-top: 0; border-top: 0; }
}
@media (max-width: 720px) {
  .sh .wrap { padding-inline: 16px; }
  .sh .top .wrap { flex-wrap: wrap; gap: 0 16px; }
  .sh .brand { min-height: 56px; }
  .sh .nav { order: 3; width: 100%; overflow-x: auto; border-top: 1px solid var(--border); }
  .sh .nav a { min-height: 48px; }
  .sh .who { display: none; }
  .sh .rows li, .sh .upd, .sh .facts > div { grid-template-columns: minmax(0, 1fr); }
  .sh .stats { grid-template-columns: minmax(0, 1fr); }
  .sh .stat { padding-left: 0; border-left: 0; }
  .sh .hero .who-is { gap: 16px; }
  .sh .logo-lg { width: 72px; height: 72px; }
  .sh .hero .h1 { font-size: 32px; line-height: 40px; }
}

/* ---- Additions for the built site. CSP is style-src 'self', so every inline style of the
   reference markup lives here as a class. ---- */
html { background: var(--page, #fafafa); }
body.sh { margin: 0; }
.sh form { margin: 0; }
.sh .alert > h2.plain { font-weight: 400; }
.sh .alert > h2 b { font-weight: 600; overflow-wrap: anywhere; }
.sh .split { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 12px 16px; }

/* Pages without a session (sign-in, not found): logo, one card, one muted line */
.sh.plain { background: var(--muted); }
.sh main.center { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 28px; padding: 48px 16px; }
.sh .brand.big img { width: 120px; }
.sh .legal { text-align: center; }
.sh .card.login { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; max-width: 880px; padding: 0; gap: 0; }
.sh .card.login > .l { padding: 40px; background: var(--page); border-right: 1px solid var(--border); }
.sh .card.login > .r { padding: 40px; display: flex; flex-direction: column; justify-content: center; gap: 24px; }
.sh .card.login > .r > form { display: flex; flex-direction: column; gap: 24px; }
.sh .card.login .steps, .sh .card.login .note { margin-top: 28px; }
.sh .card.solo { width: 100%; max-width: 560px; padding: 40px; gap: 16px; }
.sh .card.solo .btn { align-self: flex-start; }

/* Menu: the toggle is a form post that sets a cookie, so it works without JavaScript */
.sh .side .tog-f { display: flex; }
.sh .side .acc { cursor: default; }
.sh .side .acc:hover { background: var(--background); }
.sh .side .it.off { color: var(--muted-foreground); cursor: default; }
.sh .side .it.off:hover { background: transparent; color: var(--muted-foreground); }
.sh .side .me form { align-self: flex-start; margin-left: -12px; }
.sh .side .me form .btn { margin-left: 0; }
@media (min-width: 901px) {
  .sh .lay.mini .side .me form { align-self: center; margin-left: 0; }
}

@media (max-width: 900px) {
  .sh .side .tog-f { display: none; }
  .sh .side .me form { margin-left: 0; }
}
@media (max-width: 760px) {
  .sh .card.login { grid-template-columns: minmax(0, 1fr); }
  .sh .card.login > .l { border-right: 0; border-bottom: 1px solid var(--border); }
  .sh .card.login > .l, .sh .card.login > .r, .sh .card.solo { padding: 24px; }
}
