Commit8929744unknown_key
polish: 2026 treatment for admin sub-pages + pricing + /ask
polish: 2026 treatment for admin sub-pages + pricing + /ask 5 admin sub-pages polished: /admin/users, /admin/repos, /admin/flags, /admin/digests, /admin/autopilot — each scoped under .adm-users-*, .adm-repos-*, .adm-flags-*, .adm-digests-*, .adm-autopilot-* with full 2026 hero recipe. /pricing: added the missing gradient hairline + animated orb (already had the gradient text headline + radial-gradient blob — finishing the look to match the rest of the polished surfaces). /ask: AI chat surface — message bubbles, gradient input area, copy buttons on AI responses, polished hero with 'Ask.' gradient verb. All scoped CSS. Form actions / queries / POST handlers preserved.
2 files changed+2143−2938929744d82565b4f16a3b4a80a5e71073eaca131
2 changed files+2143−293
Modifiedsrc/routes/admin.tsx+2109−293View fileUnifiedSplit
Large file (2,590 lines). Load full file
Modifiedsrc/routes/pricing.tsx+34−0View fileUnifiedSplit
@@ -83,6 +83,8 @@ const PricingPage: FC<{ plans: Plan[]; loggedIn: boolean }> = ({
8383 <div class="pl-root">
8484 {/* ------------------- Hero ------------------- */}
8585 <header class="pl-hero">
86 <div class="pl-hero-hairline" aria-hidden="true" />
87 <div class="pl-hero-orb" aria-hidden="true" />
8688 <div class="eyebrow">Pricing</div>
8789 <h1 class="display pl-hero-title">
8890 One subscription.{" "}
@@ -377,6 +379,38 @@ const pricingCss = `
377379 z-index: -1;
378380 pointer-events: none;
379381 }
382 /* 2026 polish — gradient hairline accent across the top of the hero
383 (matches /admin, /admin/ops, error pages). */
384 .pl-hero-hairline {
385 position: absolute;
386 top: 0; left: 8%; right: 8%;
387 height: 2px;
388 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
389 opacity: 0.65;
390 pointer-events: none;
391 z-index: 0;
392 border-radius: 2px;
393 }
394 /* 2026 polish — soft animated radial orb behind the headline. */
395 .pl-hero-orb {
396 position: absolute;
397 top: 8%; left: 50%;
398 transform: translateX(-50%);
399 width: 420px; height: 420px;
400 background: radial-gradient(circle, rgba(140,109,255,0.20), rgba(54,197,214,0.10) 45%, transparent 70%);
401 filter: blur(80px);
402 opacity: 0.7;
403 pointer-events: none;
404 z-index: -1;
405 animation: plHeroOrb 16s ease-in-out infinite;
406 }
407 @keyframes plHeroOrb {
408 0%, 100% { transform: translateX(-50%) scale(1); opacity: 0.55; }
409 50% { transform: translateX(-50%) scale(1.12); opacity: 0.85; }
410 }
411 @media (prefers-reduced-motion: reduce) {
412 .pl-hero-orb { animation: none; }
413 }
380414 .pl-hero .eyebrow { justify-content: center; margin: 0 auto var(--s-4); }
381415 .pl-hero-title {
382416 font-size: clamp(36px, 6.5vw, 72px);
383417