Pre-launch — Gluecron is in final validation. Public signups and git hosting for non-owner users open after launch review.
Commiteed4684unknown_key

feat(M17): near-full-bleed pass 2 — widen all tiers to fill the screen

feat(M17): near-full-bleed pass 2 — widen all tiers to fill the screen

Per owner "do it all": push the width pass to near-full-bleed.

- Shell (nav / main / footer) 1600 -> 1920px
- Wide app/dashboard/list/admin/explore/insights pages -> 1680
- Medium pages -> 1320
- Settings / forms -> 1200
- Small confirm/detail cards -> 900 (gentle nudge)
- Tiny claim/dialog views (<740px) left compact
- web.tsx branches/tags inline containers -> 1680

scripts/widen-layout.ts updated to the pass-2 tier map (documented as
non-idempotent — run only from a clean tree). Pure CSS-value edits;
test suite unchanged at 2712 pass / 28 pre-existing fail.
Claude committed on June 4, 2026Parent: a6dc91c
90 files changed+111109eed46845b55ea5347365a205fe49f28de2ae516b
90 changed files+111−109
ModifiedBUILD_BIBLE.md+1−1View fileUnifiedSplit
376376- **M14** — Repository Health Score → ✅ shipped. `src/lib/health-score.ts``computeHealthScore(repoId)` runs 4 parallel DB queries (open advisories, gate pass rate 30d, avg PR TTM 90d, avg open issue age) and returns a 0-100 composite score with grade (Elite/Strong/Improving/Needs Attention). `src/routes/health-score.tsx``GET /:owner/:repo/insights/health`. CSS-only SVG circle gauge, grade badge, 4 component progress bars. Insights sub-nav: Insights / DORA / Velocity / Pulse / Health / Hot Files. Zero new DB tables. 9 tests.
377377- **M15** — PR Size Auto-Labels → ✅ shipped. `src/lib/pr-size.ts``computePrSize(owner, repo, base, head)` runs `git diff --numstat base...head`, sums lines changed, maps to XS/S/M/L/XL label with colour. Badge rendered in PR detail meta row next to state pill, with tooltip showing +added/−deleted breakdown. Zero new DB tables. 10 tests.
378378- **M16** — Hot Files Heatmap → ✅ shipped. `src/lib/hot-files.ts``getHotFiles(owner, repo, windowDays)` spawns `git log --numstat --since=N.days.ago --format=` and aggregates per-file churn (added+deleted). Risk tiers: high (auth/security/schema/db/middleware/crypto), medium (routes/api/lib/.sql), low (everything else). Top 50 files returned. `src/routes/hot-files.tsx``GET /:owner/:repo/insights/hotfiles?window=7|30|90`. Heat bar + risk pill per row. Insights sub-nav matches M14/M9. Zero new DB tables. 14 tests.
379- **M17** — Site-wide width pass ("stop the thin") → ✅ shipped. Follow-up to M4: M4 widened the `src/views/layout.tsx` shell to 1440px, but ~90 per-page content containers (`*-wrap` / `*-container` / `*-page`) were still capped at 880–1180px, leaving a narrow centered column inside a wide shell — the "everything's thin" complaint. This pass (1) bumped the shell (nav / `main` / footer) 1440 → **1600px**, and (2) widened the per-page containers into consistent tiers via the one-shot, conservative `scripts/widen-layout.ts` (only rewrites lines that set both a `*-wrap/container/page` selector AND `max-width: Npx; margin: 0 auto`, so prose measure / hero-inner / media-query widths are untouched): `≥1000px → 1320`, `900–999 → 1120`, `820–899 → 1040`, `<820 → unchanged` (intentionally small confirm / detail / claim views). Also widened the two inline-styled branches/tags containers in `src/routes/web.tsx` (1100 → 1320). 87 files, pure CSS-value edits — no logic, routes, or `Layout` props changed; full suite unchanged at 2712 pass / 28 pre-existing fail.
379- **M17** — Site-wide width pass ("stop the thin") → ✅ shipped. Follow-up to M4: M4 widened the `src/views/layout.tsx` shell to 1440px, but ~90 per-page content containers (`*-wrap` / `*-container` / `*-page`) were still capped at 880–1180px, leaving a narrow centered column inside a wide shell — the "everything's thin" complaint. Shipped in two passes via the one-shot, conservative `scripts/widen-layout.ts` (only rewrites lines that set both a `*-wrap/container/page` selector AND `max-width: Npx; margin: 0 auto`, so prose measure / hero-inner / media-query widths are untouched). **Final state (near-full-bleed, per owner "do it all"):** shell (nav / `main` / footer) 1440 → **1920px**; per-page tiers — wide app/dashboard/list/admin/explore/insights → **1680**, medium pages → **1320**, settings/forms → **1200**, small confirm/detail cards → **900**, tiny claim/dialog views (< 740px) left compact. Inline-styled branches/tags containers in `src/routes/web.tsx` → 1680. 87 files, pure CSS-value edits — no logic, routes, or `Layout` props changed; full suite unchanged at 2712 pass / 28 pre-existing fail. NOTE: the script's pass-2 tier map is **not idempotent** (1320 is both a medium-tier output and a wide-tier input) — re-run only from a clean tree, never twice in a row.
380380
381381---
382382
Modifiedscripts/widen-layout.ts+11−9View fileUnifiedSplit
1414 * media-query widths never match (no `margin: 0 auto`), so prose measure and
1515 * narrow confirm dialogs are left intact.
1616 *
17 * Tiers (old -> new):
18 * >= 1000px -> 1320 (dashboards, lists, tables, admin, explore, insights)
19 * 900..999 -> 1120 (medium / form-heavy pages)
20 * 820..899 -> 1040 (settings, repo-settings, import)
21 * < 820 -> unchanged (intentionally small confirm / detail / claim views)
17 * Tiers (pass 2"do it all", near-full-bleed):
18 * >= 1300px -> 1680 (dashboards, lists, tables, admin, explore, insights)
19 * 1080..1299 -> 1320 (medium pages)
20 * 1000..1079 -> 1200 (settings, repo-settings, import, forms)
21 * 740..819 -> 900 (small confirm/detail cards, gentle nudge)
22 * else -> unchanged (tiny claim/dialog views < 740px stay compact)
2223 *
2324 * Run once: `bun scripts/widen-layout.ts`
2425 */
2829const ROOT = new URL("..", import.meta.url).pathname;
2930
3031function widen(old: number): number | null {
31 if (old >= 1000) return 1320;
32 if (old >= 900) return 1120;
33 if (old >= 820) return 1040;
34 return null; // leave small intentional widths alone
32 if (old >= 1300) return 1680;
33 if (old >= 1080) return 1320;
34 if (old >= 1000) return 1200;
35 if (old >= 740 && old < 820) return 900;
36 return null; // leave tiny intentional widths alone
3537}
3638
3739// Matches a single-line page-container declaration, capturing the px width.
Modifiedsrc/routes/activity.tsx+1−1View fileUnifiedSplit
3030activity.use("*", softAuth);
3131
3232const styles = `
33 .act-wrap { max-width: 1320px; margin: 0 auto; padding: var(--space-6) var(--space-4); }
33 .act-wrap { max-width: 1680px; margin: 0 auto; padding: var(--space-6) var(--space-4); }
3434
3535 .act-hero {
3636 position: relative;
Modifiedsrc/routes/admin-diagnose.tsx+1−1View fileUnifiedSplit
715715 * `error-page` (the just-shipped 2026 visual recipe).
716716 * ───────────────────────────────────────────────────────────────────── */
717717const healthStyles = `
718 .health-wrap { max-width: 1320px; margin: 0 auto; padding: var(--space-6) var(--space-4); }
718 .health-wrap { max-width: 1680px; margin: 0 auto; padding: var(--space-6) var(--space-4); }
719719
720720 .health-hero {
721721 position: relative;
Modifiedsrc/routes/admin-integrations.tsx+1−1View fileUnifiedSplit
3838 * card patterns from commits 07f4b70 and 98eb360.
3939 * ───────────────────────────────────────────────────────────────────── */
4040const styles = `
41 .admin-int-wrap { max-width: 1120px; margin: 0 auto; padding: var(--space-6) var(--space-4); }
41 .admin-int-wrap { max-width: 1320px; margin: 0 auto; padding: var(--space-6) var(--space-4); }
4242
4343 .admin-int-hero {
4444 position: relative;
Modifiedsrc/routes/admin-ops.tsx+1−1View fileUnifiedSplit
241241 * patterns from admin-integrations.tsx and error-page.tsx.
242242 * ───────────────────────────────────────────────────────────────────── */
243243const opsStyles = `
244 .ops-wrap { max-width: 1120px; margin: 0 auto; padding: var(--space-6) var(--space-4); }
244 .ops-wrap { max-width: 1320px; margin: 0 auto; padding: var(--space-6) var(--space-4); }
245245
246246 /* ─── Hero ─── */
247247 .ops-hero {
Modifiedsrc/routes/admin.tsx+6−6View fileUnifiedSplit
5454 * repo-home (commit 544d842), and settings polish (commit 98eb360).
5555 * ───────────────────────────────────────────────────────────────────── */
5656const adminStyles = `
57 .admin-wrap { max-width: 1320px; margin: 0 auto; }
57 .admin-wrap { max-width: 1680px; margin: 0 auto; }
5858
5959 /* ─── Hero (main dashboard) ─── */
6060 .admin-hero {
699699 * - empty state with orb
700700 * ───────────────────────────────────────────────────────────────────── */
701701const admUsersStyles = `
702 .adm-users-wrap { max-width: 1320px; margin: 0 auto; padding: var(--space-6) var(--space-4); }
702 .adm-users-wrap { max-width: 1680px; margin: 0 auto; padding: var(--space-6) var(--space-4); }
703703
704704 /* Hero */
705705 .adm-users-hero {
10801080`;
10811081
10821082const admReposStyles = `
1083 .adm-repos-wrap { max-width: 1320px; margin: 0 auto; padding: var(--space-6) var(--space-4); }
1083 .adm-repos-wrap { max-width: 1680px; margin: 0 auto; padding: var(--space-6) var(--space-4); }
10841084
10851085 .adm-repos-hero {
10861086 position: relative;
13841384`;
13851385
13861386const admFlagsStyles = `
1387 .adm-flags-wrap { max-width: 1040px; margin: 0 auto; padding: var(--space-6) var(--space-4); }
1387 .adm-flags-wrap { max-width: 1200px; margin: 0 auto; padding: var(--space-6) var(--space-4); }
13881388
13891389 .adm-flags-hero {
13901390 position: relative;
16181618`;
16191619
16201620const admDigestsStyles = `
1621 .adm-digests-wrap { max-width: 1320px; margin: 0 auto; padding: var(--space-6) var(--space-4); }
1621 .adm-digests-wrap { max-width: 1680px; margin: 0 auto; padding: var(--space-6) var(--space-4); }
16221622
16231623 .adm-digests-hero {
16241624 position: relative;
19881988`;
19891989
19901990const admAutopilotStyles = `
1991 .adm-autopilot-wrap { max-width: 1320px; margin: 0 auto; padding: var(--space-6) var(--space-4); }
1991 .adm-autopilot-wrap { max-width: 1680px; margin: 0 auto; padding: var(--space-6) var(--space-4); }
19921992
19931993 .adm-autopilot-hero {
19941994 position: relative;
Modifiedsrc/routes/advisories.tsx+1−1View fileUnifiedSplit
7474 * critical → red, high → amber, medium/moderate → yellow, low → blue
7575 * ───────────────────────────────────────────────────────────────────── */
7676const styles = `
77 .adv-wrap { max-width: 1320px; margin: 0 auto; padding: var(--space-5) var(--space-4); }
77 .adv-wrap { max-width: 1680px; margin: 0 auto; padding: var(--space-5) var(--space-4); }
7878
7979 .adv-hero {
8080 position: relative;
Modifiedsrc/routes/ai-changelog.tsx+1−1View fileUnifiedSplit
4444 * panel + copy-to-clipboard pattern from admin-integrations.tsx.
4545 * ───────────────────────────────────────────────────────────────────── */
4646const styles = `
47 .ai-changelog-wrap { max-width: 1120px; margin: 0 auto; padding: var(--space-6) var(--space-4); }
47 .ai-changelog-wrap { max-width: 1320px; margin: 0 auto; padding: var(--space-6) var(--space-4); }
4848
4949 .ai-changelog-hero {
5050 position: relative;
Modifiedsrc/routes/ai-explain.tsx+1−1View fileUnifiedSplit
4848 * admin-integrations.tsx / build-agent-spec.tsx.
4949 * ───────────────────────────────────────────────────────────────────── */
5050const styles = `
51 .ai-explain-wrap { max-width: 1120px; margin: 0 auto; padding: var(--space-6) var(--space-4); }
51 .ai-explain-wrap { max-width: 1320px; margin: 0 auto; padding: var(--space-6) var(--space-4); }
5252
5353 .ai-explain-hero {
5454 position: relative;
Modifiedsrc/routes/ai-tests.tsx+1−1View fileUnifiedSplit
5757 * inputs via the :root --border-focus token.
5858 * ───────────────────────────────────────────────────────────────────── */
5959const styles = `
60 .ai-tests-wrap { max-width: 1120px; margin: 0 auto; padding: var(--space-6) var(--space-4); }
60 .ai-tests-wrap { max-width: 1320px; margin: 0 auto; padding: var(--space-6) var(--space-4); }
6161
6262 .ai-tests-hero {
6363 position: relative;
Modifiedsrc/routes/api-docs.tsx+1−1View fileUnifiedSplit
1717
1818// ─── Scoped CSS (.apidocs-*) ────────────────────────────────────────────────
1919const apiDocsStyles = `
20 .apidocs-wrap { max-width: 1320px; margin: 0 auto; padding: var(--space-5) var(--space-4) var(--space-8); }
20 .apidocs-wrap { max-width: 1680px; margin: 0 auto; padding: var(--space-5) var(--space-4) var(--space-8); }
2121
2222 /* ─── Header ─── */
2323 .apidocs-head { margin-bottom: var(--space-5); }
Modifiedsrc/routes/billing-usage.tsx+1−1View fileUnifiedSplit
4747
4848// ─── Scoped CSS (all `.cost-*`) ───────────────────────────────────────────
4949const styles = `
50 .cost-wrap { max-width: 1320px; margin: 0 auto; padding: var(--space-6, 32px) var(--space-4, 24px); }
50 .cost-wrap { max-width: 1680px; margin: 0 auto; padding: var(--space-6, 32px) var(--space-4, 24px); }
5151
5252 .cost-hero {
5353 position: relative;
Modifiedsrc/routes/billing.tsx+1−1View fileUnifiedSplit
4646 * from admin-integrations.tsx, admin-ops.tsx, error-page.tsx.
4747 * ───────────────────────────────────────────────────────────────────── */
4848const styles = `
49 .bill-wrap { max-width: 1320px; margin: 0 auto; padding: var(--space-6, 32px) var(--space-4, 24px); }
49 .bill-wrap { max-width: 1680px; margin: 0 auto; padding: var(--space-6, 32px) var(--space-4, 24px); }
5050
5151 /* ─── Hero ─── */
5252 .bill-hero {
Modifiedsrc/routes/build-agent-spec.tsx+1−1View fileUnifiedSplit
2020buildAgentSpec.use("*", softAuth);
2121
2222const styles = `
23 .ba-spec-wrap { max-width: 1120px; margin: 0 auto; padding: var(--space-6) var(--space-4); }
23 .ba-spec-wrap { max-width: 1320px; margin: 0 auto; padding: var(--space-6) var(--space-4); }
2424
2525 .ba-spec-hero {
2626 position: relative;
Modifiedsrc/routes/claude-deploy.tsx+1−1View fileUnifiedSplit
8282// CSS — scoped under .cldploy- prefix.
8383// ---------------------------------------------------------------------------
8484const styles = `
85 .cldploy-container { max-width: 1320px; margin: 0 auto; padding: 0 0 var(--space-6); }
85 .cldploy-container { max-width: 1680px; margin: 0 auto; padding: 0 0 var(--space-6); }
8686
8787 /* ─── Hero ─── */
8888 .cldploy-hero {
Modifiedsrc/routes/code-scanning.tsx+1−1View fileUnifiedSplit
3030 * orb + per-card pattern from `admin-integrations` and `admin-diagnose`.
3131 * ───────────────────────────────────────────────────────────────────── */
3232const styles = `
33 .sec-wrap { max-width: 1320px; margin: 0 auto; padding: var(--space-5) var(--space-4); }
33 .sec-wrap { max-width: 1680px; margin: 0 auto; padding: var(--space-5) var(--space-4); }
3434
3535 .sec-hero {
3636 position: relative;
Modifiedsrc/routes/collaborators.tsx+1−1View fileUnifiedSplit
8989// (--bg-elevated, --border, --text-strong, --accent, --space-*, --font-*).
9090
9191const collabStyles = `
92 .collab-wrap { max-width: 1320px; margin: 0 auto; padding: var(--space-5) var(--space-4) var(--space-8); }
92 .collab-wrap { max-width: 1680px; margin: 0 auto; padding: var(--space-5) var(--space-4) var(--space-8); }
9393
9494 /* ─── Header strip (sits below RepoHeader + RepoNav) ─── */
9595 .collab-head { margin-bottom: var(--space-5); }
Modifiedsrc/routes/connect-claude.tsx+1−1View fileUnifiedSplit
296296
297297// ─── CSS ───────────────────────────────────────────────────────────────────
298298const styles = `
299 .connect-claude-container { max-width: 1120px; margin: 0 auto; padding: 0 0 var(--space-6); }
299 .connect-claude-container { max-width: 1320px; margin: 0 auto; padding: 0 0 var(--space-6); }
300300
301301 /* ─── Hero ─── */
302302 .connect-claude-hero {
Modifiedsrc/routes/contributors.tsx+1−1View fileUnifiedSplit
393393// ─── Scoped CSS (.contrib-*) ────────────────────────────────────────────────
394394
395395const contribStyles = `
396 .contrib-wrap { max-width: 1320px; margin: 0 auto; padding: var(--space-5) var(--space-4) var(--space-8); }
396 .contrib-wrap { max-width: 1680px; margin: 0 auto; padding: var(--space-5) var(--space-4) var(--space-8); }
397397
398398 /* ─── Header strip ─── */
399399 .contrib-head { margin-bottom: var(--space-5); }
Modifiedsrc/routes/demo.tsx+1−1View fileUnifiedSplit
528528// bleed into other views. Drop-in replacement for the legacy `.demo-*`
529529// classes; the new prefix is wider so we can polish without collisions.
530530const DEMO_CSS = `
531 .demo-page { max-width: 1320px; margin: 0 auto; padding: var(--space-6) var(--space-4); }
531 .demo-page { max-width: 1680px; margin: 0 auto; padding: var(--space-6) var(--space-4); }
532532
533533 /* ─── Hero ─── */
534534 .demo-page-hero {
Modifiedsrc/routes/dep-updater.tsx+1−1View fileUnifiedSplit
3434 * orb, run cards with status pill / tabular-nums timing, mono version cells.
3535 * ───────────────────────────────────────────────────────────────────── */
3636const depStyles = `
37 .dep-wrap { max-width: 1320px; margin: 0 auto; padding: var(--space-5) var(--space-4) var(--space-8); }
37 .dep-wrap { max-width: 1680px; margin: 0 auto; padding: var(--space-5) var(--space-4) var(--space-8); }
3838
3939 /* ─── Hero ─── */
4040 .dep-hero {
Modifiedsrc/routes/deployments.tsx+2−2View fileUnifiedSplit
4444 * admin-integrations.tsx and admin-ops.tsx.
4545 * ───────────────────────────────────────────────────────────────────── */
4646const deployStyles = `
47 .dk-wrap { max-width: 1120px; margin: 0 auto; padding: var(--space-6) var(--space-4); }
47 .dk-wrap { max-width: 1320px; margin: 0 auto; padding: var(--space-6) var(--space-4); }
4848
4949 /* ─── Page heading (no hero block — RepoHeader supplies framing) ─── */
5050 .dk-head { margin-bottom: var(--space-5); }
305305 }
306306
307307 /* ─── Detail page ─── */
308 .dk-detail-wrap { max-width: 760px; margin: 0 auto; padding: var(--space-6) var(--space-4); }
308 .dk-detail-wrap { max-width: 900px; margin: 0 auto; padding: var(--space-6) var(--space-4); }
309309 .dk-bread {
310310 display: flex;
311311 align-items: center;
Modifiedsrc/routes/deps.tsx+1−1View fileUnifiedSplit
3838// the gradient-hairline + card patterns used in admin-integrations and
3939// collaborators.
4040const depsStyles = `
41 .deps-wrap { max-width: 1320px; margin: 0 auto; padding: var(--space-5) var(--space-4) var(--space-8); }
41 .deps-wrap { max-width: 1680px; margin: 0 auto; padding: var(--space-5) var(--space-4) var(--space-8); }
4242
4343 /* ─── Header strip (sits below RepoHeader + RepoNav) ─── */
4444 .deps-head { margin-bottom: var(--space-5); display: flex; align-items: flex-end; justify-content: space-between; gap: var(--space-4); flex-wrap: wrap; }
Modifiedsrc/routes/developer-apps.tsx+1−1View fileUnifiedSplit
4343// into other settings pages.
4444// ----------------------------------------------------------------------------
4545const devStyles = `
46 .dev-wrap { max-width: 1120px; margin: 0 auto; padding: var(--space-6) var(--space-4); }
46 .dev-wrap { max-width: 1320px; margin: 0 auto; padding: var(--space-6) var(--space-4); }
4747
4848 /* ─── Breadcrumb ─── */
4949 .dev-breadcrumb {
Modifiedsrc/routes/discussions.tsx+1−1View fileUnifiedSplit
4848 * orb + card patterns from `insights.tsx` and `error-page.tsx`.
4949 * ───────────────────────────────────────────────────────────────────── */
5050const styles = `
51 .disc-wrap { max-width: 1320px; margin: 0 auto; padding: var(--space-5) var(--space-4); }
51 .disc-wrap { max-width: 1680px; margin: 0 auto; padding: var(--space-5) var(--space-4); }
5252
5353 .disc-hero {
5454 position: relative;
Modifiedsrc/routes/docs-tracking.tsx+1−1View fileUnifiedSplit
9797 * dashboard feels at home alongside the other repo sub-pages.
9898 * ───────────────────────────────────────────────────────────────────── */
9999const docTrackingStyles = `
100 .doctrk-wrap { max-width: 1320px; margin: 0 auto; padding: var(--space-5) var(--space-4) var(--space-8); }
100 .doctrk-wrap { max-width: 1680px; margin: 0 auto; padding: var(--space-5) var(--space-4) var(--space-8); }
101101
102102 .doctrk-head {
103103 position: relative;
Modifiedsrc/routes/dora.tsx+1−1View fileUnifiedSplit
9090// ─── Scoped CSS ───────────────────────────────────────────────────────────────
9191
9292const styles = `
93 .dora-wrap { max-width: 1320px; margin: 0 auto; padding: var(--space-5) var(--space-4); }
93 .dora-wrap { max-width: 1680px; margin: 0 auto; padding: var(--space-5) var(--space-4); }
9494
9595 .dora-hero {
9696 position: relative;
Modifiedsrc/routes/editor.tsx+1−1View fileUnifiedSplit
361361// --border, --text-strong, --accent, --space-*, --font-*).
362362
363363const editorStyles = `
364 .editor-wrap { max-width: 1320px; margin: 0 auto; padding: var(--space-5) var(--space-4) var(--space-8); }
364 .editor-wrap { max-width: 1680px; margin: 0 auto; padding: var(--space-5) var(--space-4) var(--space-8); }
365365
366366 /* ─── Header strip (sits below RepoHeader + RepoNav) ─── */
367367 .editor-head { margin-bottom: var(--space-5); }
Modifiedsrc/routes/email-verification.tsx+1−1View fileUnifiedSplit
301301// page. Mirrors the gradient-hairline hero + card pattern from
302302// settings-2fa.tsx and admin-integrations.tsx.
303303const evStyles = `
304 .ev-wrap { max-width: 1120px; margin: 0 auto; padding: var(--space-6) var(--space-4); }
304 .ev-wrap { max-width: 1320px; margin: 0 auto; padding: var(--space-6) var(--space-4); }
305305
306306 .ev-hero {
307307 position: relative;
Modifiedsrc/routes/environments.tsx+1−1View fileUnifiedSplit
124124 * admin-integrations and error-page.
125125 * ───────────────────────────────────────────────────────────────────── */
126126const envsStyles = `
127 .envs-wrap { max-width: 1320px; margin: 0 auto; padding: var(--space-5) var(--space-4) var(--space-8); }
127 .envs-wrap { max-width: 1680px; margin: 0 auto; padding: var(--space-5) var(--space-4) var(--space-8); }
128128
129129 .envs-head {
130130 position: relative;
Modifiedsrc/routes/explore.tsx+1−1View fileUnifiedSplit
3030 <style
3131 dangerouslySetInnerHTML={{
3232 __html: `
33 .explore-wrap { max-width: 1320px; margin: 0 auto; }
33 .explore-wrap { max-width: 1680px; margin: 0 auto; }
3434
3535 /* ─── Hero ─── */
3636 .explore-hero {
Modifiedsrc/routes/follows.tsx+1−1View fileUnifiedSplit
6565// continuity (--bg-elevated, --border, --text-strong, --accent, --space-*).
6666
6767const followStyles = `
68 .follows-wrap { max-width: 1320px; margin: 0 auto; padding: var(--space-5) var(--space-4) var(--space-8); }
68 .follows-wrap { max-width: 1680px; margin: 0 auto; padding: var(--space-5) var(--space-4) var(--space-8); }
6969
7070 /* ─── Header ─── */
7171 .follows-head { margin-bottom: var(--space-5); }
Modifiedsrc/routes/fork.tsx+1−1View fileUnifiedSplit
3232
3333// ─── Scoped CSS — `.fork-*` ────────────────────────────────────────────────
3434const forkStyles = `
35 .fork-wrap { max-width: 760px; margin: 0 auto; padding: var(--space-6, 32px) var(--space-4, 24px); }
35 .fork-wrap { max-width: 900px; margin: 0 auto; padding: var(--space-6, 32px) var(--space-4, 24px); }
3636
3737 /* ─── Hero ─── */
3838 .fork-hero {
Modifiedsrc/routes/gates.tsx+1−1View fileUnifiedSplit
7272 * settings-2fa.tsx.
7373 * ───────────────────────────────────────────────────────────────────── */
7474const gatesStyles = `
75 .gates-wrap { max-width: 1120px; margin: 0 auto; padding: var(--space-4) 0; }
75 .gates-wrap { max-width: 1320px; margin: 0 auto; padding: var(--space-4) 0; }
7676
7777 .gates-hero {
7878 position: relative;
Modifiedsrc/routes/gists.tsx+1−1View fileUnifiedSplit
4545
4646// ─── Scoped CSS (.gists-*) ──────────────────────────────────────────────────
4747const gistsStyles = `
48 .gists-wrap { max-width: 1320px; margin: 0 auto; padding: var(--space-5) var(--space-4) var(--space-8); }
48 .gists-wrap { max-width: 1680px; margin: 0 auto; padding: var(--space-5) var(--space-4) var(--space-8); }
4949
5050 .gists-head {
5151 display: flex;
Modifiedsrc/routes/help.tsx+1−1View fileUnifiedSplit
2121// surfaces. Mirrors the 2026 hero polish in admin, dashboard, import,
2222// settings, and repo-settings.
2323const helpStyles = `
24 .help-wrap { max-width: 1120px; margin: 0 auto; padding: var(--space-6) var(--space-4); }
24 .help-wrap { max-width: 1320px; margin: 0 auto; padding: var(--space-6) var(--space-4); }
2525
2626 /* ─── Hero ─── */
2727 .help-hero {
Modifiedsrc/routes/import-bulk.tsx+1−1View fileUnifiedSplit
4747// All classes prefixed with .import-bulk- so the block cannot bleed
4848// into neighbouring routes. Mirrors the /import polish.
4949const importBulkStyles = `
50 .import-bulk-container { max-width: 1040px; margin: 0 auto; }
50 .import-bulk-container { max-width: 1200px; margin: 0 auto; }
5151
5252 /* ─── Hero ─── */
5353 .import-bulk-hero {
Modifiedsrc/routes/import.tsx+1−1View fileUnifiedSplit
4343// All classes prefixed with .import- so the block cannot bleed into
4444// neighbouring routes. Mirrors the dashboard-hero + settings polish.
4545const importStyles = `
46 .import-container { max-width: 1040px; margin: 0 auto; }
46 .import-container { max-width: 1200px; margin: 0 auto; }
4747
4848 /* ─── Hero ─── */
4949 .import-hero {
Modifiedsrc/routes/inbox.tsx+1−1View fileUnifiedSplit
118118// pulls-dashboard visual language: gradient hairline + orb + clamp() title.
119119// ---------------------------------------------------------------------------
120120const styles = `
121 .inbox-wrap { max-width: 1320px; margin: 0 auto; padding: var(--space-6) var(--space-4); }
121 .inbox-wrap { max-width: 1680px; margin: 0 auto; padding: var(--space-6) var(--space-4); }
122122
123123 .inbox-hero {
124124 position: relative;
Modifiedsrc/routes/insights.tsx+1−1View fileUnifiedSplit
4444 * `font-variant-numeric: tabular-nums` so columns of numbers line up.
4545 * ───────────────────────────────────────────────────────────────────── */
4646const styles = `
47 .insights-wrap { max-width: 1320px; margin: 0 auto; padding: var(--space-5) var(--space-4); }
47 .insights-wrap { max-width: 1680px; margin: 0 auto; padding: var(--space-5) var(--space-4); }
4848
4949 .insights-hero {
5050 position: relative;
Modifiedsrc/routes/invites.tsx+1−1View fileUnifiedSplit
3737
3838// ─── Scoped CSS (.inv-*) ────────────────────────────────────────────────────
3939const invStyles = `
40 .inv-wrap { max-width: 1120px; margin: 0 auto; padding: var(--space-6) var(--space-4); }
40 .inv-wrap { max-width: 1320px; margin: 0 auto; padding: var(--space-6) var(--space-4); }
4141
4242 .inv-hero {
4343 position: relative;
Modifiedsrc/routes/issues-dashboard.tsx+1−1View fileUnifiedSplit
5353issuesDashboard.use("*", softAuth);
5454
5555const styles = `
56 .idash-wrap { max-width: 1320px; margin: 0 auto; padding: var(--space-6) var(--space-4); }
56 .idash-wrap { max-width: 1680px; margin: 0 auto; padding: var(--space-6) var(--space-4); }
5757
5858 .idash-hero {
5959 position: relative;
Modifiedsrc/routes/marketplace-agents.tsx+1−1View fileUnifiedSplit
5757 * pre-existing `.mkt-*` marketplace surface. Pattern mirrors that file.
5858 * ───────────────────────────────────────────────────────────────────── */
5959const styles = `
60 .amkt-wrap { max-width: 1320px; margin: 0 auto; padding: var(--space-6, 32px) var(--space-4, 24px); }
60 .amkt-wrap { max-width: 1680px; margin: 0 auto; padding: var(--space-6, 32px) var(--space-4, 24px); }
6161
6262 /* ─── Hero ─── */
6363 .amkt-hero {
Modifiedsrc/routes/marketplace.tsx+1−1View fileUnifiedSplit
5151 * from admin-integrations.tsx, admin-ops.tsx, error-page.tsx.
5252 * ───────────────────────────────────────────────────────────────────── */
5353const styles = `
54 .mkt-wrap { max-width: 1320px; margin: 0 auto; padding: var(--space-6, 32px) var(--space-4, 24px); }
54 .mkt-wrap { max-width: 1680px; margin: 0 auto; padding: var(--space-6, 32px) var(--space-4, 24px); }
5555
5656 /* ─── Hero ─── */
5757 .mkt-hero {
Modifiedsrc/routes/merge-queue.tsx+1−1View fileUnifiedSplit
5151 * 1100px content width spec.
5252 * ───────────────────────────────────────────────────────────────────── */
5353const mqStyles = `
54 .mq-wrap { max-width: 1320px; margin: 0 auto; padding: var(--space-5) var(--space-4) var(--space-8); }
54 .mq-wrap { max-width: 1680px; margin: 0 auto; padding: var(--space-5) var(--space-4) var(--space-8); }
5555
5656 /* ─── Hero ─── */
5757 .mq-hero {
Modifiedsrc/routes/migration-assistant.tsx+1−1View fileUnifiedSplit
3535 * form, result panel. Never overrides layout primitives.
3636 * ────────────────────────────────────────────────────────────────── */
3737const migpropStyles = `
38 .migprop-wrap { max-width: 1120px; margin: 0 auto; padding: var(--space-5) var(--space-4) var(--space-8); }
38 .migprop-wrap { max-width: 1320px; margin: 0 auto; padding: var(--space-5) var(--space-4) var(--space-8); }
3939
4040 .migprop-hero {
4141 position: relative;
Modifiedsrc/routes/migrations.tsx+1−1View fileUnifiedSplit
3939
4040// ─── Scoped CSS (.mig-*) ────────────────────────────────────────────────
4141const migStyles = `
42 .mig-wrap { max-width: 1120px; margin: 0 auto; padding: var(--space-5) var(--space-4) var(--space-8); }
42 .mig-wrap { max-width: 1320px; margin: 0 auto; padding: var(--space-5) var(--space-4) var(--space-8); }
4343
4444 .mig-head {
4545 margin-bottom: var(--space-5);
Modifiedsrc/routes/mirrors.tsx+1−1View fileUnifiedSplit
4545 * (--bg-elevated, --border, --text-strong, --space-*, --font-*).
4646 * ───────────────────────────────────────────────────────────────────── */
4747const mirrorStyles = `
48 .mirror-wrap { max-width: 1320px; margin: 0 auto; padding: var(--space-5) var(--space-4) var(--space-8); }
48 .mirror-wrap { max-width: 1680px; margin: 0 auto; padding: var(--space-5) var(--space-4) var(--space-8); }
4949
5050 /* ─── Hero ─── */
5151 .mirror-hero {
Modifiedsrc/routes/oauth.tsx+1−1View fileUnifiedSplit
111111// can't bleed into the wider app polish. Mirrors the gradient-hairline hero +
112112// orb pattern from admin-integrations.tsx and error-page.tsx.
113113const oauthStyles = `
114 .oauth-wrap { max-width: 1120px; margin: 0 auto; padding: var(--space-6) var(--space-4); }
114 .oauth-wrap { max-width: 1320px; margin: 0 auto; padding: var(--space-6) var(--space-4); }
115115
116116 /* ─── Hero ─── */
117117 .oauth-hero {
Modifiedsrc/routes/onboarding.tsx+1−1View fileUnifiedSplit
2525 * patterns from admin-integrations.tsx, admin-ops.tsx, error-page.tsx.
2626 * ───────────────────────────────────────────────────────────────────── */
2727const styles = `
28 .onb-wrap { max-width: 1320px; margin: 0 auto; padding: var(--space-6, 32px) var(--space-4, 24px); }
28 .onb-wrap { max-width: 1680px; margin: 0 auto; padding: var(--space-6, 32px) var(--space-4, 24px); }
2929
3030 /* ─── Hero ─── */
3131 .onb-hero {
Modifiedsrc/routes/org-insights.tsx+1−1View fileUnifiedSplit
281281 * stat-card grid + leaderboard pattern from `insights.tsx`.
282282 * ───────────────────────────────────────────────────────────────────── */
283283const styles = `
284 .org-ins-wrap { max-width: 1320px; margin: 0 auto; padding: var(--space-5) var(--space-4); }
284 .org-ins-wrap { max-width: 1680px; margin: 0 auto; padding: var(--space-5) var(--space-4); }
285285
286286 .org-ins-hero {
287287 position: relative;
Modifiedsrc/routes/orgs.tsx+1−1View fileUnifiedSplit
3434// repo header / nav / page chrome. Mirrors the gradient-hairline hero +
3535// card patterns from settings-2fa.tsx + admin-integrations.tsx.
3636const orgsStyles = `
37 .orgs-wrap { max-width: 1320px; margin: 0 auto; padding: var(--space-6) var(--space-4); }
37 .orgs-wrap { max-width: 1680px; margin: 0 auto; padding: var(--space-6) var(--space-4); }
3838
3939 .orgs-hero {
4040 position: relative;
Modifiedsrc/routes/packages.tsx+1−1View fileUnifiedSplit
7777
7878// ─── Scoped CSS (.pkg-*) ────────────────────────────────────────────────────
7979const pkgStyles = `
80 .pkg-wrap { max-width: 1320px; margin: 0 auto; padding: var(--space-5) var(--space-4) var(--space-8); }
80 .pkg-wrap { max-width: 1680px; margin: 0 auto; padding: var(--space-5) var(--space-4) var(--space-8); }
8181
8282 .pkg-head {
8383 display: flex;
Modifiedsrc/routes/pages.tsx+1−1View fileUnifiedSplit
9797
9898// ─── Scoped CSS (.pages-*) ──────────────────────────────────────────────────
9999const pagesStyles = `
100 .pages-wrap { max-width: 1320px; margin: 0 auto; padding: var(--space-5) var(--space-4) var(--space-8); }
100 .pages-wrap { max-width: 1680px; margin: 0 auto; padding: var(--space-5) var(--space-4) var(--space-8); }
101101
102102 .pages-head {
103103 display: flex;
Modifiedsrc/routes/passkeys.tsx+1−1View fileUnifiedSplit
5858 * admin-ops.tsx.
5959 * ───────────────────────────────────────────────────────────────────── */
6060const pkStyles = `
61 .pk-wrap { max-width: 1120px; margin: 0 auto; padding: var(--space-6) var(--space-4); }
61 .pk-wrap { max-width: 1320px; margin: 0 auto; padding: var(--space-6) var(--space-4); }
6262
6363 /* ─── Hero ─── */
6464 .pk-hero {
Modifiedsrc/routes/playground.tsx+1−1View fileUnifiedSplit
4242
4343// ─── Scoped CSS — all classes prefixed `.play-*` ───────────────────────────
4444const playStyles = `
45 .play-wrap { max-width: 1120px; margin: 0 auto; padding: var(--space-6, 32px) var(--space-4, 24px); }
45 .play-wrap { max-width: 1320px; margin: 0 auto; padding: var(--space-6, 32px) var(--space-4, 24px); }
4646
4747 /* ─── Hero ─── */
4848 .play-hero {
Modifiedsrc/routes/previews.tsx+1−1View fileUnifiedSplit
6363 * into the layout. Same gradient hairline + orb language as environments.
6464 * ───────────────────────────────────────────────────────────────────── */
6565const previewStyles = `
66 .preview-wrap { max-width: 1320px; margin: 0 auto; padding: var(--space-5) var(--space-4) var(--space-8); }
66 .preview-wrap { max-width: 1680px; margin: 0 auto; padding: var(--space-5) var(--space-4) var(--space-8); }
6767
6868 .preview-head {
6969 position: relative;
Modifiedsrc/routes/projects.tsx+1−1View fileUnifiedSplit
3333
3434// ─── Scoped CSS (.proj-*) ───────────────────────────────────────────────────
3535const projStyles = `
36 .proj-wrap { max-width: 1320px; margin: 0 auto; padding: var(--space-5) var(--space-4) var(--space-8); }
36 .proj-wrap { max-width: 1680px; margin: 0 auto; padding: var(--space-5) var(--space-4) var(--space-8); }
3737
3838 .proj-head {
3939 display: flex;
Modifiedsrc/routes/protected-tags.tsx+1−1View fileUnifiedSplit
5151 * Scoped CSS — every selector under `.pt-` so this surface can't leak.
5252 * ───────────────────────────────────────────────────────────────────── */
5353const ptStyles = `
54 .pt-wrap { max-width: 1120px; margin: 0 auto; padding: var(--space-4) 0; }
54 .pt-wrap { max-width: 1320px; margin: 0 auto; padding: var(--space-4) 0; }
5555
5656 .pt-hero {
5757 position: relative;
Modifiedsrc/routes/pulls-dashboard.tsx+1−1View fileUnifiedSplit
3535pullsDashboard.use("*", softAuth);
3636
3737const styles = `
38 .pdash-wrap { max-width: 1320px; margin: 0 auto; padding: var(--space-6) var(--space-4); }
38 .pdash-wrap { max-width: 1680px; margin: 0 auto; padding: var(--space-6) var(--space-4); }
3939
4040 .pdash-hero {
4141 position: relative;
Modifiedsrc/routes/pulse.tsx+1−1View fileUnifiedSplit
461461function PulseStyle() {
462462 return (
463463 <style>{`
464 .pulse-page { max-width: 1120px; margin: 0 auto; padding: 0 16px 48px; }
464 .pulse-page { max-width: 1320px; margin: 0 auto; padding: 0 16px 48px; }
465465 .pulse-header { margin: 24px 0 20px; }
466466 .pulse-title { font-size: 22px; font-weight: 700; margin: 0 0 8px; }
467467 .pulse-subtitle { font-size: 14px; color: var(--fg-muted); margin: 8px 0 0; }
Modifiedsrc/routes/push-watch.tsx+1−1View fileUnifiedSplit
225225
226226const pwStyles = `
227227 /* ── wrapper ── */
228 .pw-wrap { max-width: 1120px; margin: 0 auto; padding: var(--space-5) var(--space-4); }
228 .pw-wrap { max-width: 1320px; margin: 0 auto; padding: var(--space-5) var(--space-4); }
229229
230230 /* ── banner ── */
231231 .pw-banner {
Modifiedsrc/routes/refactors.tsx+1−1View fileUnifiedSplit
5353// Scoped CSS — every class is `.refac-*`.
5454// ---------------------------------------------------------------------------
5555const refacStyles = `
56 .refac-wrap { max-width: 1320px; margin: 0 auto; padding: var(--space-5) var(--space-4); }
56 .refac-wrap { max-width: 1680px; margin: 0 auto; padding: var(--space-5) var(--space-4); }
5757
5858 .refac-hero {
5959 position: relative;
Modifiedsrc/routes/releases.tsx+1−1View fileUnifiedSplit
7171// Tokens come from the layout (--bg-elevated, --border, --text-strong,
7272// --space-*, --font-*).
7373const relStyles = `
74 .rel-wrap { max-width: 1320px; margin: 0 auto; padding: var(--space-5) var(--space-4) var(--space-8); }
74 .rel-wrap { max-width: 1680px; margin: 0 auto; padding: var(--space-5) var(--space-4) var(--space-8); }
7575
7676 .rel-head {
7777 display: flex;
Modifiedsrc/routes/repo-settings.tsx+1−1View fileUnifiedSplit
2424// bleed into other surfaces. Pattern mirrors the user-settings polish
2525// (commit 98eb360) and the admin-panel polish (commit 07f4b70).
2626const repoSettingsStyles = `
27 .repo-settings-container { max-width: 1040px; margin: 0 auto; padding: 0 var(--space-3); }
27 .repo-settings-container { max-width: 1200px; margin: 0 auto; padding: 0 var(--space-3); }
2828
2929 /* ─── Hero ─── */
3030 .repo-settings-hero {
Modifiedsrc/routes/required-checks.tsx+1−1View fileUnifiedSplit
140140 * Scoped CSS — every selector prefixed `.rc-` so this surface can't leak.
141141 * ───────────────────────────────────────────────────────────────────── */
142142const rcStyles = `
143 .rc-wrap { max-width: 1120px; margin: 0 auto; padding: var(--space-4) 0; }
143 .rc-wrap { max-width: 1320px; margin: 0 auto; padding: var(--space-4) 0; }
144144
145145 .rc-hero {
146146 position: relative;
Modifiedsrc/routes/rulesets.tsx+1−1View fileUnifiedSplit
8585 * Scoped CSS — every selector under `.rs-` so this surface can't leak.
8686 * ───────────────────────────────────────────────────────────────────── */
8787const rsStyles = `
88 .rs-wrap { max-width: 1120px; margin: 0 auto; padding: var(--space-4) 0; }
88 .rs-wrap { max-width: 1320px; margin: 0 auto; padding: var(--space-4) 0; }
8989
9090 .rs-hero {
9191 position: relative;
Modifiedsrc/routes/saved-replies.tsx+1−1View fileUnifiedSplit
5252// other page. Mirrors the gradient-hairline hero + card patterns from
5353// admin-integrations.tsx and settings-2fa.tsx.
5454const srStyles = `
55 .sr-wrap { max-width: 1120px; margin: 0 auto; padding: var(--space-6) var(--space-4); }
55 .sr-wrap { max-width: 1320px; margin: 0 auto; padding: var(--space-6) var(--space-4); }
5656
5757 /* ─── Hero ─── */
5858 .sr-hero {
Modifiedsrc/routes/semantic-search.tsx+1−1View fileUnifiedSplit
4444
4545// ─── Scoped CSS (.ss-*) ──────────────────────────────────────────────────
4646const ssStyles = `
47 .ss-wrap { max-width: 1320px; margin: 0 auto; padding: var(--space-5) var(--space-4) var(--space-8); }
47 .ss-wrap { max-width: 1680px; margin: 0 auto; padding: var(--space-5) var(--space-4) var(--space-8); }
4848
4949 .ss-head {
5050 margin-bottom: var(--space-5);
Modifiedsrc/routes/settings-2fa.tsx+1−1View fileUnifiedSplit
4949 * admin-integrations.tsx and admin-ops.tsx.
5050 * ───────────────────────────────────────────────────────────────────── */
5151const tfaStyles = `
52 .tfa-wrap { max-width: 1120px; margin: 0 auto; padding: var(--space-6) var(--space-4); }
52 .tfa-wrap { max-width: 1320px; margin: 0 auto; padding: var(--space-6) var(--space-4); }
5353
5454 /* ─── Hero ─── */
5555 .tfa-hero {
Modifiedsrc/routes/settings-agents.tsx+1−1View fileUnifiedSplit
2424settingsAgents.use("/settings/agents*", requireAuth);
2525
2626const styles = `
27 .sa-wrap { max-width: 1120px; margin: 0 auto; padding: var(--space-6) var(--space-4); }
27 .sa-wrap { max-width: 1320px; margin: 0 auto; padding: var(--space-6) var(--space-4); }
2828 .sa-hero {
2929 border: 1px solid var(--border);
3030 border-radius: 14px;
Modifiedsrc/routes/settings-integrations.tsx+1−1View fileUnifiedSplit
3232// Scoped CSS (.chati-*). Mirrors the tokens / webhooks polish.
3333// ---------------------------------------------------------------------------
3434const chatiStyles = `
35 .chati-wrap { max-width: 1120px; margin: 0 auto; padding: var(--space-6) var(--space-4); }
35 .chati-wrap { max-width: 1320px; margin: 0 auto; padding: var(--space-6) var(--space-4); }
3636
3737 /* ─── Hero ─── */
3838 .chati-hero {
Modifiedsrc/routes/settings.tsx+2−2View fileUnifiedSplit
3434// cannot bleed into other surfaces. Pattern mirrors the dashboard-hero polish
3535// (commit a004c46) and auth-container gradient hairline (commit 98f45b4).
3636const settingsStyles = `
37 .settings-container { max-width: 1040px; margin: 0 auto; }
37 .settings-container { max-width: 1200px; margin: 0 auto; }
3838
3939 /* ─── Hero ─── */
4040 .settings-hero {
12741274// it can be linked to directly from /notifications and the main /settings
12751275// page.
12761276const notifsetStyles = `
1277 .notifset-wrap { max-width: 1120px; margin: 0 auto; padding: var(--space-6) var(--space-4); }
1277 .notifset-wrap { max-width: 1320px; margin: 0 auto; padding: var(--space-6) var(--space-4); }
12781278
12791279 .notifset-hero {
12801280 position: relative;
Modifiedsrc/routes/signing-keys.tsx+1−1View fileUnifiedSplit
4242 * admin-integrations.tsx and admin-ops.tsx.
4343 * ───────────────────────────────────────────────────────────────────── */
4444const signingKeyStyles = `
45 .sk-wrap { max-width: 1120px; margin: 0 auto; padding: var(--space-6) var(--space-4); }
45 .sk-wrap { max-width: 1320px; margin: 0 auto; padding: var(--space-6) var(--space-4); }
4646
4747 /* ─── Page heading (no hero block — settings sidebar supplies framing) ─── */
4848 .sk-head { margin-bottom: var(--space-5); }
Modifiedsrc/routes/sleep-mode.tsx+1−1View fileUnifiedSplit
340340});
341341
342342const pageCss = `
343 .sleep-wrap { max-width: 1320px; margin: 0 auto; padding: var(--space-6) var(--space-4); }
343 .sleep-wrap { max-width: 1680px; margin: 0 auto; padding: var(--space-6) var(--space-4); }
344344
345345 /* ─── Hero ─── */
346346 .sleep-hero {
Modifiedsrc/routes/specs.tsx+1−1View fileUnifiedSplit
5555
5656// ─── Scoped CSS (.specs-*) ─────────────────────────────────────────────────
5757const specsStyles = `
58 .specs-wrap { max-width: 1320px; margin: 0 auto; padding: var(--space-5) var(--space-4) var(--space-8); }
58 .specs-wrap { max-width: 1680px; margin: 0 auto; padding: var(--space-5) var(--space-4) var(--space-8); }
5959
6060 /* ─── Header ─── */
6161 .specs-head { margin-bottom: var(--space-5); }
Modifiedsrc/routes/sponsors.tsx+1−1View fileUnifiedSplit
3939 * Scoped CSS — every selector prefixed `.spons-` so this surface can't leak.
4040 * ───────────────────────────────────────────────────────────────────── */
4141const sponsStyles = `
42 .spons-wrap { max-width: 1120px; margin: 0 auto; padding: var(--space-6) var(--space-4); }
42 .spons-wrap { max-width: 1320px; margin: 0 auto; padding: var(--space-6) var(--space-4); }
4343
4444 .spons-hero {
4545 position: relative;
Modifiedsrc/routes/sso.tsx+1−1View fileUnifiedSplit
6262// into other admin pages.
6363// ----------------------------------------------------------------------------
6464const ssoStyles = `
65 .sso-wrap { max-width: 1120px; margin: 0 auto; padding: var(--space-6) var(--space-4); }
65 .sso-wrap { max-width: 1320px; margin: 0 auto; padding: var(--space-6) var(--space-4); }
6666
6767 /* ─── Hero ─── */
6868 .sso-hero {
Modifiedsrc/routes/status.tsx+1−1View fileUnifiedSplit
439439 * bleed into the admin status page or any other route.
440440 * ───────────────────────────────────────────────────────────────────── */
441441const statusStyles = `
442 .status-wrap { max-width: 1120px; margin: 0 auto; padding: var(--space-6) var(--space-4); }
442 .status-wrap { max-width: 1320px; margin: 0 auto; padding: var(--space-6) var(--space-4); }
443443
444444 /* ─── Hero ─── */
445445 .status-hero {
Modifiedsrc/routes/symbols.tsx+1−1View fileUnifiedSplit
3232
3333// ─── Scoped CSS (.sym-*) ─────────────────────────────────────────────────
3434const symStyles = `
35 .sym-wrap { max-width: 1320px; margin: 0 auto; padding: var(--space-5) var(--space-4) var(--space-8); }
35 .sym-wrap { max-width: 1680px; margin: 0 auto; padding: var(--space-5) var(--space-4) var(--space-8); }
3636
3737 .sym-head {
3838 margin-bottom: var(--space-5);
Modifiedsrc/routes/team-collaborators.tsx+1−1View fileUnifiedSplit
4242
4343// ─── Scoped CSS — all classes prefixed `.tc-*` ─────────────────────────────
4444const tcStyles = `
45 .tc-wrap { max-width: 1040px; margin: 0 auto; padding: var(--space-5, 24px) var(--space-4, 24px); }
45 .tc-wrap { max-width: 1200px; margin: 0 auto; padding: var(--space-5, 24px) var(--space-4, 24px); }
4646
4747 /* ─── Back link ─── */
4848 .tc-back {
Modifiedsrc/routes/traffic.tsx+1−1View fileUnifiedSplit
3030 * stat-card grid pattern from `insights.tsx` + `admin-integrations`.
3131 * ───────────────────────────────────────────────────────────────────── */
3232const styles = `
33 .traffic-wrap { max-width: 1320px; margin: 0 auto; padding: var(--space-5) var(--space-4); }
33 .traffic-wrap { max-width: 1680px; margin: 0 auto; padding: var(--space-5) var(--space-4); }
3434
3535 .traffic-hero {
3636 position: relative;
Modifiedsrc/routes/web.tsx+2−2View fileUnifiedSplit
35933593 <RepoNav owner={owner} repo={repo} active="code" />
35943594 <div
35953595 class="branches-wrap"
3596 style="max-width:1320px;margin:0 auto;padding:var(--space-5) var(--space-4) var(--space-8)"
3596 style="max-width:1680px;margin:0 auto;padding:var(--space-5) var(--space-4) var(--space-8)"
35973597 >
35983598 <header class="branches-head" style="margin-bottom:var(--space-5)">
35993599 <div
38983898 <RepoNav owner={owner} repo={repo} active="code" />
38993899 <div
39003900 class="tags-wrap"
3901 style="max-width:1320px;margin:0 auto;padding:var(--space-5) var(--space-4) var(--space-8)"
3901 style="max-width:1680px;margin:0 auto;padding:var(--space-5) var(--space-4) var(--space-8)"
39023902 >
39033903 <header class="tags-head" style="margin-bottom:var(--space-5)">
39043904 <div
Modifiedsrc/routes/webhooks.tsx+1−1View fileUnifiedSplit
4141 * patterns from admin-integrations.tsx and admin-ops.tsx.
4242 * ───────────────────────────────────────────────────────────────────── */
4343const webhookStyles = `
44 .wh-wrap { max-width: 1120px; margin: 0 auto; padding: var(--space-6) var(--space-4); }
44 .wh-wrap { max-width: 1320px; margin: 0 auto; padding: var(--space-6) var(--space-4); }
4545
4646 /* ─── Page heading (no hero — settings sidebar already supplies it) ─── */
4747 .wh-head { margin-bottom: var(--space-5); }
Modifiedsrc/routes/wikis.tsx+1−1View fileUnifiedSplit
4646
4747// ─── Scoped CSS (.wiki-*) ────────────────────────────────────────────────
4848const wikiStyles = `
49 .wiki-wrap { max-width: 1320px; margin: 0 auto; padding: var(--space-5) var(--space-4) var(--space-8); }
49 .wiki-wrap { max-width: 1680px; margin: 0 auto; padding: var(--space-5) var(--space-4) var(--space-8); }
5050
5151 .wiki-head {
5252 margin-bottom: var(--space-5);
Modifiedsrc/routes/workflow-secrets.tsx+1−1View fileUnifiedSplit
633633 * into other settings pages.
634634 * ───────────────────────────────────────────────────────────────────── */
635635const wsecStyles = `
636 .wsec-wrap { max-width: 1040px; margin: 0 auto; padding: var(--space-5) var(--space-4); }
636 .wsec-wrap { max-width: 1200px; margin: 0 auto; padding: var(--space-5) var(--space-4); }
637637
638638 /* ─── Sub-nav ─── */
639639 .wsec-subnav {
Modifiedsrc/routes/workflows.tsx+1−1View fileUnifiedSplit
119119 * admin-integrations and error-page.
120120 * ───────────────────────────────────────────────────────────────────── */
121121const wfStyles = `
122 .wf-wrap { max-width: 1320px; margin: 0 auto; padding: var(--space-5) var(--space-4) var(--space-8); }
122 .wf-wrap { max-width: 1680px; margin: 0 auto; padding: var(--space-5) var(--space-4) var(--space-8); }
123123
124124 .wf-head {
125125 position: relative;
Modifiedsrc/views/landing-2030.tsx+1−1View fileUnifiedSplit
459459.vstat span{color:rgba(255,255,255,.6);font-size:13.5px}
460460
461461/* quote */
462.quote-wrap{max-width:1040px;margin:0 auto;text-align:center}
462.quote-wrap{max-width:1200px;margin:0 auto;text-align:center}
463463.quote{font-family:'Inter Tight',sans-serif;font-weight:600;font-size:clamp(24px,3.6vw,38px);
464464 line-height:1.25;letter-spacing:-.02em;margin:0}
465465.quote em{font-style:normal;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
Modifiedsrc/views/layout.tsx+4−4View fileUnifiedSplit
14101410 display: flex;
14111411 align-items: center;
14121412 gap: 18px;
1413 max-width: 1600px;
1413 max-width: 1920px;
14141414 margin: 0 auto;
14151415 height: 100%;
14161416 }
17461746 }
17471747
17481748 main {
1749 max-width: 1600px;
1749 max-width: 1920px;
17501750 margin: 0 auto;
17511751 padding: 36px 24px 80px;
17521752 flex: 1;
17931793 var(--bg);
17941794 }
17951795 footer .footer-inner {
1796 max-width: 1600px;
1796 max-width: 1920px;
17971797 margin: 0 auto;
17981798 display: grid;
17991799 grid-template-columns: 1fr auto;
18291829 }
18301830 footer .footer-col a:hover { color: var(--text-strong); text-decoration: none; }
18311831 footer .footer-bottom {
1832 max-width: 1600px;
1832 max-width: 1920px;
18331833 margin: 40px auto 0;
18341834 padding-top: 24px;
18351835 border-top: 1px solid var(--border-subtle);
18361836