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

Merge pull request #122 from ccantynz-alt/claude/confident-faraday-tikcwb

Merge pull request #122 from ccantynz-alt/claude/confident-faraday-tikcwb

Design: global palette swap — replace neon purple/cyan with calm indigo
CC LABS App committed on June 16, 2026Parents: 029bc4f 6fd5915
153 files changed+24022402616eec818807c2c8dcf2f16159e4d27fa7752a58
153 changed files+2402−2402
Modifiedsrc/__tests__/system-states.test.ts+2−2View fileUnifiedSplit
158158 const body = await renderJsx(node);
159159 // SVG gradient block is inlined.
160160 expect(body).toContain("linearGradient");
161 expect(body).toContain("#8c6dff");
162 expect(body).toContain("#36c5d6");
161 expect(body).toContain("#5b6ee8");
162 expect(body).toContain("#5f8fa0");
163163 });
164164
165165 it("renders without CTAs when none are provided", async () => {
Modifiedsrc/lib/advancement-scanner.ts+1−1View fileUnifiedSplit
645645 .values({
646646 repositoryId,
647647 name: ADVANCEMENT_LABEL_NAME,
648 color: "#36c5d6",
648 color: "#5f8fa0",
649649 description: "Auto-filed by the AI advancement scanner.",
650650 })
651651 .returning({ id: labels.id });
Modifiedsrc/lib/agent-marketplace.ts+1−1View fileUnifiedSplit
139139 * rebuilds. Mirrors the pattern in `routes/marketplace.tsx`.
140140 */
141141const LOGO_GRADIENTS = [
142 "linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%)",
142 "linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%)",
143143 "linear-gradient(135deg, #ec4899 0%, #f43f5e 100%)",
144144 "linear-gradient(135deg, #f59e0b 0%, #ef4444 100%)",
145145 "linear-gradient(135deg, #10b981 0%, #14b8a6 100%)",
Modifiedsrc/lib/ai-doc-updater.ts+1−1View fileUnifiedSplit
236236 .values({
237237 repositoryId,
238238 name: AI_DOC_UPDATE_LABEL,
239 color: "#36c5d6",
239 color: "#5f8fa0",
240240 description:
241241 "Documentation update proposed automatically by GlueCron AI after source drift",
242242 })
Modifiedsrc/lib/demo-activity-seed.ts+1−1View fileUnifiedSplit
216216 }
217217 }
218218 if (existing) {
219 const labelId = await ensureLabel(repo.id, AI_BUILD_LABEL, "#8c6dff");
219 const labelId = await ensureLabel(repo.id, AI_BUILD_LABEL, "#5b6ee8");
220220 if (labelId) {
221221 // Track label count only on first insert per repo.
222222 // ensureLabel doesn't expose "newly inserted" so this is an
Modifiedsrc/lib/email-verification.ts+2−2View fileUnifiedSplit
216216 </p>
217217 <p style="margin:0 0 24px;text-align:center">
218218 <a href="${escapeHtml(link)}"
219 style="display:inline-block;padding:12px 24px;background:linear-gradient(135deg,#8c6dff 0%,#36c5d6 100%);color:#fff;text-decoration:none;border-radius:8px;font-weight:600;font-size:14px">
219 style="display:inline-block;padding:12px 24px;background:linear-gradient(135deg,#5b6ee8 0%,#5f8fa0 100%);color:#fff;text-decoration:none;border-radius:8px;font-weight:600;font-size:14px">
220220 Confirm email
221221 </a>
222222 </p>
308308 `<!doctype html><html><head><meta charset="utf-8" /><title>${escapeHtml(opts.title)}</title></head>`,
309309 `<body style="margin:0;padding:24px;background:#0d1117;font-family:system-ui,-apple-system,Segoe UI,sans-serif;color:#c9d1d9">`,
310310 `<div style="max-width:560px;margin:0 auto;background:#161b22;border:1px solid #30363d;border-radius:12px;overflow:hidden">`,
311 `<div style="background:linear-gradient(135deg,#8c6dff 0%,#36c5d6 100%);color:#fff;padding:24px">`,
311 `<div style="background:linear-gradient(135deg,#5b6ee8 0%,#5f8fa0 100%);color:#fff;padding:24px">`,
312312 `<div style="font-size:11px;letter-spacing:0.18em;text-transform:uppercase;opacity:0.85">${escapeHtml(opts.heroSubtitle)}</div>`,
313313 `<h1 style="margin:8px 0 0;font-size:22px;font-weight:600">${opts.heroLine}</h1>`,
314314 `</div>`,
Modifiedsrc/lib/magic-link.ts+2−2View fileUnifiedSplit
106106 <table role="presentation" width="100%" cellpadding="0" cellspacing="0" style="background:#0d1117">
107107 <tr><td align="center" style="padding:32px 16px">
108108 <table role="presentation" width="600" cellpadding="0" cellspacing="0" style="max-width:600px;background:#161b22;border:1px solid #30363d;border-radius:12px;overflow:hidden">
109 <tr><td style="background:linear-gradient(135deg,#8c6dff 0%,#36c5d6 100%);padding:24px 28px">
109 <tr><td style="background:linear-gradient(135deg,#5b6ee8 0%,#5f8fa0 100%);padding:24px 28px">
110110 <div style="font-size:20px;font-weight:700;color:#fff;letter-spacing:-0.01em">gluecron</div>
111111 <div style="font-size:13px;color:rgba(255,255,255,0.85);margin-top:2px">Magic sign-in link</div>
112112 </td></tr>
113113 <tr><td style="padding:28px">
114114 <p style="margin:0 0 12px;font-size:15px;color:#e6edf3">Hi,</p>
115115 <p style="margin:0 0 16px;font-size:14px;line-height:1.55;color:#c9d1d9">Click the button below to sign in to Gluecron. This link expires in 15 minutes.</p>
116 <p style="margin:0 0 24px"><a href="${safeUrl}" style="display:inline-block;background:linear-gradient(135deg,#8c6dff 0%,#36c5d6 100%);color:#fff;text-decoration:none;font-weight:600;font-size:14px;padding:11px 22px;border-radius:9999px">Sign in</a></p>
116 <p style="margin:0 0 24px"><a href="${safeUrl}" style="display:inline-block;background:linear-gradient(135deg,#5b6ee8 0%,#5f8fa0 100%);color:#fff;text-decoration:none;font-weight:600;font-size:14px;padding:11px 22px;border-radius:9999px">Sign in</a></p>
117117 <p style="margin:0 0 8px;font-size:13px;color:#8b949e">Or copy this link into your browser:</p>
118118 <p style="margin:0 0 24px;font-size:12px;color:#8b949e;word-break:break-all"><a href="${safeUrl}" style="color:#58a6ff;text-decoration:none">${safeUrl}</a></p>
119119 <p style="margin:0;font-size:12px;color:#8b949e;line-height:1.55">If you didn't request this, ignore this email — no one can sign in without clicking the link.</p>
Modifiedsrc/lib/migration-assistant.ts+1−1View fileUnifiedSplit
409409 .values({
410410 repositoryId,
411411 name: MIGRATION_LABEL,
412 color: "#8c6dff",
412 color: "#5b6ee8",
413413 description:
414414 "Major-version dependency migration proposed by GlueCron AI",
415415 })
Modifiedsrc/lib/multi-repo-refactor.ts+1−1View fileUnifiedSplit
353353 .values({
354354 repositoryId,
355355 name: refactorLabelName(refactorId),
356 color: "#8c6dff",
356 color: "#5b6ee8",
357357 description: `Member of multi-repo refactor ${refactorId}`,
358358 })
359359 .onConflictDoNothing?.();
Modifiedsrc/lib/password-reset.ts+2−2View fileUnifiedSplit
7676 <table role="presentation" width="100%" cellpadding="0" cellspacing="0" style="background:#0d1117">
7777 <tr><td align="center" style="padding:32px 16px">
7878 <table role="presentation" width="600" cellpadding="0" cellspacing="0" style="max-width:600px;background:#161b22;border:1px solid #30363d;border-radius:12px;overflow:hidden">
79 <tr><td style="background:linear-gradient(135deg,#8c6dff 0%,#36c5d6 100%);padding:24px 28px">
79 <tr><td style="background:linear-gradient(135deg,#5b6ee8 0%,#5f8fa0 100%);padding:24px 28px">
8080 <div style="font-size:20px;font-weight:700;color:#fff;letter-spacing:-0.01em">gluecron</div>
8181 <div style="font-size:13px;color:rgba(255,255,255,0.85);margin-top:2px">Password reset</div>
8282 </td></tr>
8383 <tr><td style="padding:28px">
8484 <p style="margin:0 0 12px;font-size:15px;color:#e6edf3">Hi ${safeUser},</p>
8585 <p style="margin:0 0 16px;font-size:14px;line-height:1.55;color:#c9d1d9">We received a request to reset the password for your Gluecron account.</p>
86 <p style="margin:0 0 24px"><a href="${safeUrl}" style="display:inline-block;background:linear-gradient(135deg,#8c6dff 0%,#36c5d6 100%);color:#fff;text-decoration:none;font-weight:600;font-size:14px;padding:11px 22px;border-radius:9999px">Reset password</a></p>
86 <p style="margin:0 0 24px"><a href="${safeUrl}" style="display:inline-block;background:linear-gradient(135deg,#5b6ee8 0%,#5f8fa0 100%);color:#fff;text-decoration:none;font-weight:600;font-size:14px;padding:11px 22px;border-radius:9999px">Reset password</a></p>
8787 <p style="margin:0 0 8px;font-size:13px;color:#8b949e">Or copy this link into your browser:</p>
8888 <p style="margin:0 0 24px;font-size:12px;color:#8b949e;word-break:break-all"><a href="${safeUrl}" style="color:#58a6ff;text-decoration:none">${safeUrl}</a></p>
8989 <p style="margin:0;font-size:12px;color:#8b949e;line-height:1.55">This link expires in 1 hour. If you didn't request a reset, ignore this email — your password won't change.</p>
Modifiedsrc/lib/playground.ts+1−1View fileUnifiedSplit
555555 .values({
556556 repositoryId: repoId,
557557 name: "ai:build",
558 color: "#8c6dff",
558 color: "#5b6ee8",
559559 description: "Autopilot — open a draft PR for this issue.",
560560 })
561561 .returning({ id: labelsTable.id });
Modifiedsrc/lib/sleep-mode.ts+1−1View fileUnifiedSplit
372372 `<html><body style="font-family:system-ui,-apple-system,Segoe UI,sans-serif;max-width:640px;margin:0 auto;padding:24px;color:#0f1019;background:#fff">`
373373 );
374374 parts.push(
375 `<div style="background:linear-gradient(135deg,#8c6dff 0%,#36c5d6 100%);color:#fff;padding:24px;border-radius:12px;margin-bottom:24px">` +
375 `<div style="background:linear-gradient(135deg,#5b6ee8 0%,#5f8fa0 100%);color:#fff;padding:24px;border-radius:12px;margin-bottom:24px">` +
376376 `<div style="font-size:11px;letter-spacing:0.18em;text-transform:uppercase;opacity:0.85">Sleep Mode</div>` +
377377 `<h1 style="margin:8px 0 0;font-size:22px;font-weight:600">Good morning, ${u}.</h1>` +
378378 `<p style="margin:12px 0 0;font-size:14px;line-height:1.5;opacity:0.95">${heroLine}</p>` +
Modifiedsrc/lib/spec-to-pr.ts+1−1View fileUnifiedSplit
386386 .values({
387387 repositoryId,
388388 name: AI_SPEC_LABEL,
389 color: "#36c5d6",
389 color: "#5f8fa0",
390390 description:
391391 "PR auto-opened by spec-to-PR autopilot from a .gluecron/specs/*.md file",
392392 })
Modifiedsrc/routes/actions-importer.tsx+13−13View fileUnifiedSplit
7878 position: absolute;
7979 top: 0; left: 0; right: 0;
8080 height: 2px;
81 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
81 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
8282 pointer-events: none;
8383 }
8484 .ai-hero-orb {
8585 position: absolute;
8686 top: -80px; right: -80px;
8787 width: 320px; height: 320px;
88 background: radial-gradient(circle, rgba(140,109,255,0.18) 0%, rgba(54,197,214,0.09) 45%, transparent 70%);
88 background: radial-gradient(circle, rgba(91,110,232,0.18) 0%, rgba(95,143,160,0.09) 45%, transparent 70%);
8989 filter: blur(60px);
9090 pointer-events: none;
9191 z-index: 0;
9494 position: absolute;
9595 bottom: -60px; left: -60px;
9696 width: 260px; height: 260px;
97 background: radial-gradient(circle, rgba(54,197,214,0.14) 0%, transparent 70%);
97 background: radial-gradient(circle, rgba(95,143,160,0.14) 0%, transparent 70%);
9898 filter: blur(55px);
9999 pointer-events: none;
100100 z-index: 0;
129129 line-height: 1.6;
130130 }
131131 .ai-grad {
132 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
132 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
133133 -webkit-background-clip: text;
134134 -webkit-text-fill-color: transparent;
135135 background-clip: text;
189189 }
190190 .ai-upload-zone:hover {
191191 border-color: var(--accent);
192 background: rgba(140,109,255,0.04);
192 background: rgba(91,110,232,0.04);
193193 }
194194 .ai-upload-zone input[type=file] {
195195 display: none;
394394 align-items: flex-start;
395395 gap: var(--space-3);
396396 padding: var(--space-4) var(--space-5);
397 background: rgba(140,109,255,0.07);
398 border: 1px solid rgba(140,109,255,0.22);
397 background: rgba(91,110,232,0.07);
398 border: 1px solid rgba(91,110,232,0.22);
399399 border-radius: 10px;
400400 margin-bottom: var(--space-6);
401401 }
403403 width: 32px;
404404 height: 32px;
405405 border-radius: 8px;
406 background: rgba(140,109,255,0.18);
406 background: rgba(91,110,232,0.18);
407407 display: flex;
408408 align-items: center;
409409 justify-content: center;
533533 line-height: 1.3;
534534 }
535535 .btn-primary {
536 background: linear-gradient(135deg, #8c6dff 0%, #7059e0 100%);
536 background: linear-gradient(135deg, #5b6ee8 0%, #7059e0 100%);
537537 color: #fff;
538 border-color: rgba(140,109,255,0.6);
539 box-shadow: 0 2px 8px rgba(140,109,255,0.30);
538 border-color: rgba(91,110,232,0.6);
539 box-shadow: 0 2px 8px rgba(91,110,232,0.30);
540540 }
541541 .btn-primary:hover {
542 background: linear-gradient(135deg, #a48bff 0%, #8c6dff 100%);
543 box-shadow: 0 4px 14px rgba(140,109,255,0.40);
542 background: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 100%);
543 box-shadow: 0 4px 14px rgba(91,110,232,0.40);
544544 text-decoration: none;
545545 color: #fff;
546546 }
Modifiedsrc/routes/activity.tsx+19−19View fileUnifiedSplit
4646 position: absolute;
4747 top: 0; left: 0; right: 0;
4848 height: 2px;
49 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
49 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
5050 opacity: 0.7;
5151 pointer-events: none;
5252 }
5454 position: absolute;
5555 inset: -30% -10% auto auto;
5656 width: 380px; height: 380px;
57 background: radial-gradient(circle, rgba(140,109,255,0.18), rgba(54,197,214,0.09) 45%, transparent 70%);
57 background: radial-gradient(circle, rgba(91,110,232,0.18), rgba(95,143,160,0.09) 45%, transparent 70%);
5858 filter: blur(80px);
5959 opacity: 0.7;
6060 pointer-events: none;
7878 color: var(--text-strong);
7979 }
8080 .act-title-grad {
81 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
81 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
8282 -webkit-background-clip: text;
8383 background-clip: text;
8484 -webkit-text-fill-color: transparent;
113113 text-transform: uppercase;
114114 }
115115 .act-stat.ai .act-stat-n {
116 background-image: linear-gradient(135deg, #b69dff 0%, #36c5d6 100%);
116 background-image: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
117117 -webkit-background-clip: text;
118118 background-clip: text;
119119 -webkit-text-fill-color: transparent;
133133 }
134134 .act-spark-bar {
135135 width: 6px;
136 background: linear-gradient(180deg, #8c6dff 0%, #36c5d6 100%);
136 background: linear-gradient(180deg, #5b6ee8 0%, #5f8fa0 100%);
137137 border-radius: 1px 1px 0 0;
138138 opacity: 0.85;
139139 min-height: 2px;
170170 }
171171 .act-tab:hover { color: var(--text-strong); text-decoration: none; }
172172 .act-tab.is-active {
173 background: rgba(140,109,255,0.14);
173 background: rgba(91,110,232,0.14);
174174 color: var(--text-strong);
175175 }
176176 .act-tab-count {
181181 border-radius: 9999px;
182182 }
183183 .act-tab.is-active .act-tab-count {
184 background: rgba(140,109,255,0.22);
184 background: rgba(91,110,232,0.22);
185185 color: var(--text);
186186 }
187187
205205 color: inherit;
206206 }
207207 .act-row:last-child { border-bottom: none; }
208 .act-row:hover { background: rgba(140,109,255,0.04); text-decoration: none; }
208 .act-row:hover { background: rgba(91,110,232,0.04); text-decoration: none; }
209209 .act-row.is-ai {
210 background: linear-gradient(90deg, rgba(140,109,255,0.05) 0%, transparent 60%);
210 background: linear-gradient(90deg, rgba(91,110,232,0.05) 0%, transparent 60%);
211211 }
212212 .act-row.is-ai:hover {
213 background: linear-gradient(90deg, rgba(140,109,255,0.10) 0%, rgba(140,109,255,0.03) 60%);
213 background: linear-gradient(90deg, rgba(91,110,232,0.10) 0%, rgba(91,110,232,0.03) 60%);
214214 }
215215
216216 .act-row-icon {
228228 color: var(--text-muted);
229229 box-shadow: inset 0 0 0 1px var(--border);
230230 }
231 .act-row-icon.kind-ai { background: rgba(140,109,255,0.18); color: #b69dff; box-shadow: inset 0 0 0 1px rgba(140,109,255,0.40); }
232 .act-row-icon.kind-code { background: rgba(54,197,214,0.14); color: #6fd6e6; box-shadow: inset 0 0 0 1px rgba(54,197,214,0.32); }
231 .act-row-icon.kind-ai { background: rgba(91,110,232,0.18); color: #5b6ee8; box-shadow: inset 0 0 0 1px rgba(91,110,232,0.40); }
232 .act-row-icon.kind-code { background: rgba(95,143,160,0.14); color: #6fd6e6; box-shadow: inset 0 0 0 1px rgba(95,143,160,0.32); }
233233 .act-row-icon.kind-pr { background: rgba(52,211,153,0.13); color: #6ee7b7; box-shadow: inset 0 0 0 1px rgba(52,211,153,0.30); }
234234 .act-row-icon.kind-issue { background: rgba(251,191,36,0.12); color: #fde68a; box-shadow: inset 0 0 0 1px rgba(251,191,36,0.30); }
235235 .act-row-icon.kind-social { background: rgba(244,114,182,0.12); color: #f9a8d4; box-shadow: inset 0 0 0 1px rgba(244,114,182,0.30); }
236 .act-row-icon.kind-merge { background: rgba(140,109,255,0.16); color: #b69dff; box-shadow: inset 0 0 0 1px rgba(140,109,255,0.32); }
236 .act-row-icon.kind-merge { background: rgba(91,110,232,0.16); color: #5b6ee8; box-shadow: inset 0 0 0 1px rgba(91,110,232,0.32); }
237237
238238 .act-row-main { flex: 1; min-width: 0; }
239239 .act-row-title {
253253 text-transform: lowercase;
254254 font-weight: 600;
255255 }
256 .act-verb.kind-ai { color: #b69dff; }
256 .act-verb.kind-ai { color: #5b6ee8; }
257257 .act-verb.kind-code { color: #6fd6e6; }
258258 .act-verb.kind-pr { color: #6ee7b7; }
259259 .act-verb.kind-issue { color: #fde68a; }
260260 .act-verb.kind-social { color: #f9a8d4; }
261 .act-verb.kind-merge { color: #b69dff; }
261 .act-verb.kind-merge { color: #5b6ee8; }
262262
263263 .act-badge {
264264 display: inline-flex;
273273 font-variant-numeric: tabular-nums;
274274 }
275275 .act-badge.ai-event {
276 color: #b69dff;
277 background: rgba(140,109,255,0.18);
278 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.40);
276 color: #5b6ee8;
277 background: rgba(91,110,232,0.18);
278 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.40);
279279 }
280280 .act-badge.ai-event .dot {
281281 width: 6px; height: 6px;
324324 position: absolute;
325325 inset: -20% -10% auto auto;
326326 width: 320px; height: 320px;
327 background: radial-gradient(circle, rgba(140,109,255,0.10), transparent 70%);
327 background: radial-gradient(circle, rgba(91,110,232,0.10), transparent 70%);
328328 filter: blur(60px);
329329 pointer-events: none;
330330 }
Modifiedsrc/routes/admin-advancement.tsx+9−9View fileUnifiedSplit
664664 position: absolute;
665665 top: 0; left: 0; right: 0;
666666 height: 2px;
667 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
667 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
668668 opacity: 0.75;
669669 pointer-events: none;
670670 }
672672 position: absolute;
673673 inset: -30% -10% auto auto;
674674 width: 460px; height: 460px;
675 background: radial-gradient(circle, rgba(140,109,255,0.22), rgba(54,197,214,0.10) 45%, transparent 70%);
675 background: radial-gradient(circle, rgba(91,110,232,0.22), rgba(95,143,160,0.10) 45%, transparent 70%);
676676 filter: blur(80px);
677677 opacity: 0.7;
678678 pointer-events: none;
702702 justify-content: center;
703703 width: 18px; height: 18px;
704704 border-radius: 6px;
705 background: rgba(140,109,255,0.14);
706 color: #b69dff;
707 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.35);
705 background: rgba(91,110,232,0.14);
706 color: #5b6ee8;
707 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.35);
708708 }
709709 .adv-scan-eyebrow .adv-scan-who { color: var(--accent); font-weight: 600; }
710710 .adv-scan-title {
717717 color: var(--text-strong);
718718 }
719719 .adv-scan-title-grad {
720 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
720 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
721721 -webkit-background-clip: text;
722722 background-clip: text;
723723 -webkit-text-fill-color: transparent;
983983 color: var(--text-strong);
984984 }
985985 .adv-scan-btn-primary {
986 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
986 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
987987 color: #fff;
988988 border-color: transparent;
989 box-shadow: 0 1px 0 rgba(255,255,255,0.10), 0 8px 22px -10px rgba(140,109,255,0.55);
989 box-shadow: 0 1px 0 rgba(255,255,255,0.10), 0 8px 22px -10px rgba(91,110,232,0.55);
990990 }
991991 .adv-scan-btn-primary:hover {
992992 color: #fff;
10341034 transition: transform 120ms ease;
10351035 }
10361036 .adv-scan-toggle input:checked + .adv-scan-toggle-slider {
1037 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
1037 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
10381038 }
10391039 .adv-scan-toggle input:checked + .adv-scan-toggle-slider::after {
10401040 transform: translateX(16px);
Modifiedsrc/routes/admin-deploys-page.tsx+15−15View fileUnifiedSplit
898898 position: absolute;
899899 top: 0; left: 0; right: 0;
900900 height: 2px;
901 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
901 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
902902 opacity: 0.75;
903903 pointer-events: none;
904904 }
906906 position: absolute;
907907 inset: -30% -10% auto auto;
908908 width: 460px; height: 460px;
909 background: radial-gradient(circle, rgba(140,109,255,0.22), rgba(54,197,214,0.10) 45%, transparent 70%);
909 background: radial-gradient(circle, rgba(91,110,232,0.22), rgba(95,143,160,0.10) 45%, transparent 70%);
910910 filter: blur(80px);
911911 opacity: 0.7;
912912 pointer-events: none;
938938 .deploys-eyebrow-dot {
939939 width: 8px; height: 8px;
940940 border-radius: 9999px;
941 background: linear-gradient(135deg, #8c6dff, #36c5d6);
942 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
941 background: linear-gradient(135deg, #5b6ee8, #5f8fa0);
942 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
943943 }
944944 .deploys-title {
945945 font-family: var(--font-display);
951951 color: var(--text-strong);
952952 }
953953 .deploys-title-grad {
954 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
954 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
955955 -webkit-background-clip: text;
956956 background-clip: text;
957957 -webkit-text-fill-color: transparent;
10061006 line-height: 1;
10071007 }
10081008 .deploys-btn-primary {
1009 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
1009 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
10101010 color: #ffffff;
1011 box-shadow: 0 6px 18px -4px rgba(140,109,255,0.45), inset 0 1px 0 rgba(255,255,255,0.16);
1011 box-shadow: 0 6px 18px -4px rgba(91,110,232,0.45), inset 0 1px 0 rgba(255,255,255,0.16);
10121012 }
10131013 .deploys-btn-primary:hover {
10141014 transform: translateY(-1px);
1015 box-shadow: 0 10px 24px -6px rgba(140,109,255,0.55), inset 0 1px 0 rgba(255,255,255,0.20);
1015 box-shadow: 0 10px 24px -6px rgba(91,110,232,0.55), inset 0 1px 0 rgba(255,255,255,0.20);
10161016 }
10171017 .deploys-btn-ghost {
10181018 background: transparent;
10851085 transition: background 120ms ease, border-color 120ms ease;
10861086 }
10871087 .deploys-sha-pill:hover {
1088 background: rgba(140,109,255,0.10);
1089 border-color: rgba(140,109,255,0.40);
1088 background: rgba(91,110,232,0.10);
1089 border-color: rgba(91,110,232,0.40);
10901090 text-decoration: none;
10911091 color: var(--text-strong);
10921092 }
12091209 position: absolute;
12101210 inset: -40% -20% auto auto;
12111211 width: 360px; height: 360px;
1212 background: radial-gradient(circle, rgba(140,109,255,0.16), rgba(54,197,214,0.08) 45%, transparent 70%);
1212 background: radial-gradient(circle, rgba(91,110,232,0.16), rgba(95,143,160,0.08) 45%, transparent 70%);
12131213 filter: blur(70px);
12141214 opacity: 0.6;
12151215 pointer-events: none;
12391239 .deploys-empty-title code {
12401240 font-family: var(--font-mono);
12411241 font-size: 0.85em;
1242 background: rgba(140,109,255,0.10);
1242 background: rgba(91,110,232,0.10);
12431243 color: var(--text-link);
12441244 padding: 1px 7px;
12451245 border-radius: 6px;
13881388 letter-spacing: 0.14em;
13891389 padding: 2px 8px;
13901390 border-radius: 9999px;
1391 background: rgba(140,109,255,0.14);
1392 color: #b69dff;
1393 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.32);
1391 background: rgba(91,110,232,0.14);
1392 color: #5b6ee8;
1393 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.32);
13941394 font-weight: 700;
13951395 }
13961396 .deploys-row-spacer { flex: 1; }
Modifiedsrc/routes/admin-diagnose.tsx+12−12View fileUnifiedSplit
735735 position: absolute;
736736 top: 0; left: 0; right: 0;
737737 height: 2px;
738 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
738 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
739739 opacity: 0.75;
740740 pointer-events: none;
741741 }
743743 position: absolute;
744744 inset: -30% -15% auto auto;
745745 width: 460px; height: 460px;
746 background: radial-gradient(circle, rgba(140,109,255,0.22), rgba(54,197,214,0.10) 45%, transparent 70%);
746 background: radial-gradient(circle, rgba(91,110,232,0.22), rgba(95,143,160,0.10) 45%, transparent 70%);
747747 filter: blur(80px);
748748 opacity: 0.75;
749749 pointer-events: none;
772772 .health-eyebrow-dot {
773773 width: 8px; height: 8px;
774774 border-radius: 9999px;
775 background: linear-gradient(135deg, #8c6dff, #36c5d6);
776 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
775 background: linear-gradient(135deg, #5b6ee8, #5f8fa0);
776 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
777777 }
778778 .health-back {
779779 font-size: 12.5px;
787787 }
788788 .health-back:hover {
789789 color: var(--text-strong);
790 border-color: rgba(140,109,255,0.45);
791 background: rgba(140,109,255,0.06);
790 border-color: rgba(91,110,232,0.45);
791 background: rgba(91,110,232,0.06);
792792 text-decoration: none;
793793 }
794794 .health-title {
801801 color: var(--text-strong);
802802 }
803803 .health-title-grad {
804 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
804 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
805805 -webkit-background-clip: text;
806806 background-clip: text;
807807 -webkit-text-fill-color: transparent;
984984 color: var(--text-muted);
985985 margin: 0;
986986 padding: 10px 12px;
987 background: rgba(140,109,255,0.05);
988 border: 1px solid rgba(140,109,255,0.18);
987 background: rgba(91,110,232,0.05);
988 border: 1px solid rgba(91,110,232,0.18);
989989 border-radius: 10px;
990990 }
991991 .health-card.is-red .health-card-fix {
10281028 }
10291029 .health-card-action:hover {
10301030 color: var(--text-strong);
1031 border-color: rgba(140,109,255,0.45);
1032 background: rgba(140,109,255,0.08);
1031 border-color: rgba(91,110,232,0.45);
1032 background: rgba(91,110,232,0.08);
10331033 text-decoration: none;
10341034 transform: translateY(-1px);
10351035 }
10481048 position: absolute;
10491049 top: 0; left: 0; right: 0;
10501050 height: 1px;
1051 background: linear-gradient(90deg, transparent 0%, rgba(140,109,255,0.45) 50%, transparent 100%);
1051 background: linear-gradient(90deg, transparent 0%, rgba(91,110,232,0.45) 50%, transparent 100%);
10521052 opacity: 0.6;
10531053 }
10541054 .health-test h3 {
Modifiedsrc/routes/admin-env-health.tsx+6−6View fileUnifiedSplit
5353 position: absolute;
5454 top: 0; left: 0; right: 0;
5555 height: 2px;
56 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
56 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
5757 opacity: 0.7;
5858 pointer-events: none;
5959 }
6161 position: absolute;
6262 inset: -20% -10% auto auto;
6363 width: 380px; height: 380px;
64 background: radial-gradient(circle, rgba(140,109,255,0.20), rgba(54,197,214,0.10) 45%, transparent 70%);
64 background: radial-gradient(circle, rgba(91,110,232,0.20), rgba(95,143,160,0.10) 45%, transparent 70%);
6565 filter: blur(80px);
6666 opacity: 0.7;
6767 pointer-events: none;
8383 justify-content: center;
8484 width: 18px; height: 18px;
8585 border-radius: 6px;
86 background: rgba(140,109,255,0.14);
87 color: #b69dff;
88 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.35);
86 background: rgba(91,110,232,0.14);
87 color: #5b6ee8;
88 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.35);
8989 }
9090 .admin-envh-title {
9191 font-size: clamp(28px, 4vw, 40px);
9797 color: var(--text-strong);
9898 }
9999 .admin-envh-title-grad {
100 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
100 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
101101 -webkit-background-clip: text;
102102 background-clip: text;
103103 -webkit-text-fill-color: transparent;
Modifiedsrc/routes/admin-integrations.tsx+9−9View fileUnifiedSplit
5454 position: absolute;
5555 top: 0; left: 0; right: 0;
5656 height: 2px;
57 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
57 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
5858 opacity: 0.7;
5959 pointer-events: none;
6060 }
6262 position: absolute;
6363 inset: -20% -10% auto auto;
6464 width: 380px; height: 380px;
65 background: radial-gradient(circle, rgba(140,109,255,0.20), rgba(54,197,214,0.10) 45%, transparent 70%);
65 background: radial-gradient(circle, rgba(91,110,232,0.20), rgba(95,143,160,0.10) 45%, transparent 70%);
6666 filter: blur(80px);
6767 opacity: 0.7;
6868 pointer-events: none;
8484 justify-content: center;
8585 width: 18px; height: 18px;
8686 border-radius: 6px;
87 background: rgba(140,109,255,0.14);
88 color: #b69dff;
89 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.35);
87 background: rgba(91,110,232,0.14);
88 color: #5b6ee8;
89 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.35);
9090 }
9191 .admin-int-title {
9292 font-size: clamp(28px, 4vw, 40px);
9898 color: var(--text-strong);
9999 }
100100 .admin-int-title-grad {
101 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
101 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
102102 -webkit-background-clip: text;
103103 background-clip: text;
104104 -webkit-text-fill-color: transparent;
195195 }
196196 .admin-int-input:focus {
197197 border-color: var(--border-focus);
198 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
198 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
199199 }
200200 .admin-int-hint {
201201 font-size: 11.5px;
325325 .admin-int-spec-title-dot {
326326 width: 8px; height: 8px;
327327 border-radius: 9999px;
328 background: linear-gradient(135deg, #8c6dff, #36c5d6);
329 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
328 background: linear-gradient(135deg, #5b6ee8, #5f8fa0);
329 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
330330 }
331331 .admin-int-spec-sub {
332332 font-size: 12px;
Modifiedsrc/routes/admin-ops.tsx+19−19View fileUnifiedSplit
258258 position: absolute;
259259 top: 0; left: 0; right: 0;
260260 height: 2px;
261 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
261 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
262262 opacity: 0.7;
263263 pointer-events: none;
264264 }
266266 position: absolute;
267267 inset: -20% -10% auto auto;
268268 width: 380px; height: 380px;
269 background: radial-gradient(circle, rgba(140,109,255,0.20), rgba(54,197,214,0.10) 45%, transparent 70%);
269 background: radial-gradient(circle, rgba(91,110,232,0.20), rgba(95,143,160,0.10) 45%, transparent 70%);
270270 filter: blur(80px);
271271 opacity: 0.7;
272272 pointer-events: none;
297297 justify-content: center;
298298 width: 18px; height: 18px;
299299 border-radius: 6px;
300 background: rgba(140,109,255,0.14);
301 color: #b69dff;
302 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.35);
300 background: rgba(91,110,232,0.14);
301 color: #5b6ee8;
302 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.35);
303303 }
304304 .ops-eyebrow .ops-who { color: var(--accent); font-weight: 600; }
305305 .ops-title {
312312 color: var(--text-strong);
313313 }
314314 .ops-title-grad {
315 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
315 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
316316 -webkit-background-clip: text;
317317 background-clip: text;
318318 -webkit-text-fill-color: transparent;
418418 justify-content: center;
419419 width: 26px; height: 26px;
420420 border-radius: 8px;
421 background: rgba(140,109,255,0.12);
422 color: #b69dff;
423 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.28);
421 background: rgba(91,110,232,0.12);
422 color: #5b6ee8;
423 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.28);
424424 flex-shrink: 0;
425425 }
426426 .ops-section-sub {
456456 cursor: pointer;
457457 transition: transform 120ms ease, box-shadow 120ms ease, background 120ms ease, border-color 120ms ease;
458458 }
459 .ops-toggle:hover { transform: translateY(-1px); border-color: rgba(140,109,255,0.45); }
459 .ops-toggle:hover { transform: translateY(-1px); border-color: rgba(91,110,232,0.45); }
460460 .ops-toggle:disabled { cursor: not-allowed; opacity: 0.5; transform: none; }
461461 .ops-toggle-dot {
462462 width: 10px; height: 10px;
665665 .ops-creds-val code.is-muted { color: var(--text-muted); font-style: italic; }
666666 .ops-creds-val code.is-fresh {
667667 color: #e9d5ff;
668 background: linear-gradient(135deg, rgba(140,109,255,0.12), rgba(54,197,214,0.08));
669 border-color: rgba(140,109,255,0.40);
668 background: linear-gradient(135deg, rgba(91,110,232,0.12), rgba(95,143,160,0.08));
669 border-color: rgba(91,110,232,0.40);
670670 }
671671 .ops-copy {
672672 display: inline-flex;
683683 font: inherit;
684684 }
685685 .ops-copy:hover {
686 background: rgba(140,109,255,0.10);
687 border-color: rgba(140,109,255,0.40);
686 background: rgba(91,110,232,0.10);
687 border-color: rgba(91,110,232,0.40);
688688 color: var(--text-strong);
689689 }
690690 .ops-copy.is-copied {
739739 line-height: 1;
740740 }
741741 .ops-btn-primary {
742 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
742 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
743743 color: #ffffff;
744 box-shadow: 0 6px 18px -6px rgba(140,109,255,0.50), inset 0 1px 0 rgba(255,255,255,0.16);
744 box-shadow: 0 6px 18px -6px rgba(91,110,232,0.50), inset 0 1px 0 rgba(255,255,255,0.16);
745745 }
746746 .ops-btn-primary:hover:not(:disabled) {
747747 transform: translateY(-1px);
748 box-shadow: 0 10px 24px -8px rgba(140,109,255,0.60), inset 0 1px 0 rgba(255,255,255,0.20);
748 box-shadow: 0 10px 24px -8px rgba(91,110,232,0.60), inset 0 1px 0 rgba(255,255,255,0.20);
749749 }
750750 .ops-btn-primary:disabled {
751751 cursor: not-allowed;
759759 border-color: var(--border-strong);
760760 }
761761 .ops-btn-ghost:hover:not(:disabled) {
762 background: rgba(140,109,255,0.06);
763 border-color: rgba(140,109,255,0.45);
762 background: rgba(91,110,232,0.06);
763 border-color: rgba(91,110,232,0.45);
764764 color: var(--text-strong);
765765 }
766766 .ops-btn-danger {
Modifiedsrc/routes/admin-security.tsx+1−1View fileUnifiedSplit
103103 }
104104 .soc2-hero::before {
105105 content: ''; position: absolute; top: 0; left: 0; right: 0; height: 2px;
106 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
106 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
107107 opacity: 0.7; pointer-events: none;
108108 }
109109 .soc2-hero h1 { font-size: 1.5rem; font-weight: 800; margin: 0 0 4px; }
Modifiedsrc/routes/admin-self-host.tsx+12−12View fileUnifiedSplit
246246 position: absolute;
247247 top: 0; left: 0; right: 0;
248248 height: 2px;
249 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
249 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
250250 opacity: 0.75;
251251 pointer-events: none;
252252 }
254254 position: absolute;
255255 inset: -30% -10% auto auto;
256256 width: 460px; height: 460px;
257 background: radial-gradient(circle, rgba(140,109,255,0.22), rgba(54,197,214,0.10) 45%, transparent 70%);
257 background: radial-gradient(circle, rgba(91,110,232,0.22), rgba(95,143,160,0.10) 45%, transparent 70%);
258258 filter: blur(80px);
259259 opacity: 0.7;
260260 pointer-events: none;
284284 justify-content: center;
285285 width: 18px; height: 18px;
286286 border-radius: 6px;
287 background: rgba(140,109,255,0.14);
288 color: #b69dff;
289 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.35);
287 background: rgba(91,110,232,0.14);
288 color: #5b6ee8;
289 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.35);
290290 }
291291 .selfhost-eyebrow .selfhost-who { color: var(--accent); font-weight: 600; }
292292 .selfhost-title {
299299 color: var(--text-strong);
300300 }
301301 .selfhost-title-grad {
302 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
302 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
303303 -webkit-background-clip: text;
304304 background-clip: text;
305305 -webkit-text-fill-color: transparent;
460460 justify-content: center;
461461 width: 26px; height: 26px;
462462 border-radius: 8px;
463 background: rgba(140,109,255,0.12);
464 color: #b69dff;
465 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.28);
463 background: rgba(91,110,232,0.12);
464 color: #5b6ee8;
465 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.28);
466466 flex-shrink: 0;
467467 }
468468 .selfhost-section-sub {
606606 line-height: 1;
607607 }
608608 .selfhost-btn-primary {
609 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
609 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
610610 color: #ffffff;
611 box-shadow: 0 6px 18px -6px rgba(140,109,255,0.50), inset 0 1px 0 rgba(255,255,255,0.16);
611 box-shadow: 0 6px 18px -6px rgba(91,110,232,0.50), inset 0 1px 0 rgba(255,255,255,0.16);
612612 }
613613 .selfhost-btn-primary:hover:not(:disabled) {
614614 transform: translateY(-1px);
615 box-shadow: 0 10px 24px -8px rgba(140,109,255,0.60), inset 0 1px 0 rgba(255,255,255,0.20);
615 box-shadow: 0 10px 24px -8px rgba(91,110,232,0.60), inset 0 1px 0 rgba(255,255,255,0.20);
616616 }
617617 .selfhost-btn-primary:disabled {
618618 cursor: not-allowed;
Modifiedsrc/routes/admin-status.tsx+14−14View fileUnifiedSplit
436436 position: absolute;
437437 top: 0; left: 0; right: 0;
438438 height: 2px;
439 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
439 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
440440 opacity: 0.75;
441441 pointer-events: none;
442442 }
444444 position: absolute;
445445 inset: -30% -10% auto auto;
446446 width: 460px; height: 460px;
447 background: radial-gradient(circle, rgba(52,211,153,0.20), rgba(54,197,214,0.10) 45%, transparent 70%);
447 background: radial-gradient(circle, rgba(52,211,153,0.20), rgba(95,143,160,0.10) 45%, transparent 70%);
448448 filter: blur(80px);
449449 opacity: 0.7;
450450 pointer-events: none;
489489 color: var(--text-strong);
490490 }
491491 .status-title-grad {
492 background-image: linear-gradient(135deg, #6ee7b7 0%, #34d399 50%, #36c5d6 100%);
492 background-image: linear-gradient(135deg, #6ee7b7 0%, #34d399 50%, #5f8fa0 100%);
493493 -webkit-background-clip: text;
494494 background-clip: text;
495495 -webkit-text-fill-color: transparent;
499499 background-image: linear-gradient(135deg, #fca5a5 0%, #f87171 50%, #ef4444 100%);
500500 }
501501 .status-title-grad.is-idle {
502 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
502 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
503503 }
504504 .status-sub {
505505 font-size: 14.5px;
652652 line-height: 1;
653653 }
654654 .status-btn-primary {
655 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
655 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
656656 color: #ffffff;
657 box-shadow: 0 6px 18px -6px rgba(140,109,255,0.50), inset 0 1px 0 rgba(255,255,255,0.16);
657 box-shadow: 0 6px 18px -6px rgba(91,110,232,0.50), inset 0 1px 0 rgba(255,255,255,0.16);
658658 }
659659 .status-btn-primary:hover {
660660 transform: translateY(-1px);
661 box-shadow: 0 10px 24px -8px rgba(140,109,255,0.60), inset 0 1px 0 rgba(255,255,255,0.20);
661 box-shadow: 0 10px 24px -8px rgba(91,110,232,0.60), inset 0 1px 0 rgba(255,255,255,0.20);
662662 }
663663
664664 /* ─── Synthetic table ─── */
695695 .status-table .status-col-num { width: 90px; }
696696 .status-table .status-col-when { width: 110px; color: var(--text-muted); }
697697 .status-row-flash {
698 background: rgba(140,109,255,0.10) !important;
698 background: rgba(91,110,232,0.10) !important;
699699 animation: status-flash 1.1s ease-out;
700700 }
701701 @keyframes status-flash {
702 0% { background: rgba(140,109,255,0.30); }
703 100% { background: rgba(140,109,255,0.00); }
702 0% { background: rgba(91,110,232,0.30); }
703 100% { background: rgba(91,110,232,0.00); }
704704 }
705705
706706 .status-action {
707707 font-family: var(--font-mono);
708708 font-size: 12.5px;
709709 color: var(--text-strong);
710 background: linear-gradient(135deg, rgba(140,109,255,0.10), rgba(54,197,214,0.06));
711 border: 1px solid rgba(140,109,255,0.20);
710 background: linear-gradient(135deg, rgba(91,110,232,0.10), rgba(95,143,160,0.06));
711 border: 1px solid rgba(91,110,232,0.20);
712712 padding: 2px 8px;
713713 border-radius: 5px;
714714 }
807807 white-space: nowrap;
808808 }
809809 .status-feed-target:hover {
810 background: rgba(140,109,255,0.10);
811 border-color: rgba(140,109,255,0.40);
810 background: rgba(91,110,232,0.10);
811 border-color: rgba(91,110,232,0.40);
812812 color: var(--text-strong);
813813 text-decoration: none;
814814 }
Modifiedsrc/routes/admin-stripe.tsx+2−2View fileUnifiedSplit
101101
102102 .adm-stripe-mismatch-row td { background: rgba(251,146,60,0.05) !important; }
103103
104 .adm-stripe-btn { display: inline-flex; align-items: center; gap: 5px; padding: 5px 10px; border-radius: 6px; font-size: 12px; font-weight: 600; cursor: pointer; font-family: inherit; line-height: 1; transition: background 120ms, border-color 120ms; border: 1px solid rgba(140,109,255,0.45); background: rgba(140,109,255,0.08); color: #c5b3ff; }
105 .adm-stripe-btn:hover { background: rgba(140,109,255,0.18); border-color: rgba(140,109,255,0.70); color: #e0d5ff; }
104 .adm-stripe-btn { display: inline-flex; align-items: center; gap: 5px; padding: 5px 10px; border-radius: 6px; font-size: 12px; font-weight: 600; cursor: pointer; font-family: inherit; line-height: 1; transition: background 120ms, border-color 120ms; border: 1px solid rgba(91,110,232,0.45); background: rgba(91,110,232,0.08); color: #c5b3ff; }
105 .adm-stripe-btn:hover { background: rgba(91,110,232,0.18); border-color: rgba(91,110,232,0.70); color: #e0d5ff; }
106106
107107 .adm-stripe-empty { padding: var(--space-6); text-align: center; color: var(--text-muted); font-size: 13.5px; background: var(--bg-elevated); border: 1px dashed var(--border); border-radius: 14px; }
108108
Modifiedsrc/routes/admin.tsx+117−117View fileUnifiedSplit
7171 position: absolute;
7272 top: 0; left: 0; right: 0;
7373 height: 2px;
74 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
74 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
7575 opacity: 0.7;
7676 pointer-events: none;
7777 }
8585 .admin-hero-orb {
8686 position: absolute;
8787 inset: 0;
88 background: radial-gradient(circle, rgba(140,109,255,0.20), rgba(54,197,214,0.10) 45%, transparent 70%);
88 background: radial-gradient(circle, rgba(91,110,232,0.20), rgba(95,143,160,0.10) 45%, transparent 70%);
8989 filter: blur(80px);
9090 opacity: 0.7;
9191 animation: adminHeroOrb 14s ease-in-out infinite;
118118 justify-content: center;
119119 width: 18px; height: 18px;
120120 border-radius: 6px;
121 background: rgba(140,109,255,0.14);
122 color: #b69dff;
123 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.35);
121 background: rgba(91,110,232,0.14);
122 color: #5b6ee8;
123 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.35);
124124 }
125125 .admin-hero-eyebrow .admin-who {
126126 color: var(--accent);
137137 }
138138 .admin-hero-title .gradient-text,
139139 .admin-hero-title-grad {
140 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
140 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
141141 -webkit-background-clip: text;
142142 background-clip: text;
143143 -webkit-text-fill-color: transparent;
171171 position: absolute;
172172 top: 0; left: 0; right: 0;
173173 height: 2px;
174 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
174 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
175175 opacity: 0.6;
176176 pointer-events: none;
177177 }
260260 position: absolute;
261261 inset: 0;
262262 border-radius: inherit;
263 background: linear-gradient(135deg, rgba(140,109,255,0.05), rgba(54,197,214,0.04));
263 background: linear-gradient(135deg, rgba(91,110,232,0.05), rgba(95,143,160,0.04));
264264 opacity: 0;
265265 pointer-events: none;
266266 transition: opacity 200ms ease;
292292 justify-content: center;
293293 width: 26px; height: 26px;
294294 border-radius: 8px;
295 background: rgba(140,109,255,0.12);
296 color: #b69dff;
297 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.28);
295 background: rgba(91,110,232,0.12);
296 color: #5b6ee8;
297 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.28);
298298 }
299299 .admin-stat-value {
300300 position: relative;
347347 .admin-action:focus-visible {
348348 outline: none;
349349 border-color: var(--border-focus);
350 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
350 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
351351 }
352352 .admin-action .admin-action-icon {
353353 display: inline-flex;
361361 box-shadow: inset 0 0 0 1px var(--border);
362362 }
363363 .admin-action.is-primary {
364 border-color: rgba(140,109,255,0.35);
365 background: linear-gradient(135deg, rgba(140,109,255,0.14), rgba(54,197,214,0.10));
364 border-color: rgba(91,110,232,0.35);
365 background: linear-gradient(135deg, rgba(91,110,232,0.14), rgba(95,143,160,0.10));
366366 color: var(--text-strong);
367367 }
368368 .admin-action.is-primary:hover {
369 border-color: rgba(140,109,255,0.55);
370 background: linear-gradient(135deg, rgba(140,109,255,0.20), rgba(54,197,214,0.14));
369 border-color: rgba(91,110,232,0.55);
370 background: linear-gradient(135deg, rgba(91,110,232,0.20), rgba(95,143,160,0.14));
371371 }
372372 .admin-action.is-primary .admin-action-icon {
373 background: rgba(140,109,255,0.18);
373 background: rgba(91,110,232,0.18);
374374 color: #c5b3ff;
375 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.40);
375 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.40);
376376 }
377377 .admin-action-form { display: contents; }
378378
425425 .admin-avatar {
426426 width: 30px; height: 30px;
427427 border-radius: 9999px;
428 background: linear-gradient(135deg, rgba(140,109,255,0.30), rgba(54,197,214,0.22));
428 background: linear-gradient(135deg, rgba(91,110,232,0.30), rgba(95,143,160,0.22));
429429 color: var(--text-strong);
430430 display: inline-flex;
431431 align-items: center;
432432 justify-content: center;
433433 font-size: 12px;
434434 font-weight: 700;
435 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.30);
435 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.30);
436436 flex-shrink: 0;
437437 text-transform: uppercase;
438438 }
439439 .admin-avatar.is-admin {
440 background: linear-gradient(135deg, rgba(140,109,255,0.50), rgba(54,197,214,0.35));
440 background: linear-gradient(135deg, rgba(91,110,232,0.50), rgba(95,143,160,0.35));
441441 color: #fff;
442 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.55), 0 0 12px rgba(140,109,255,0.25);
442 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.55), 0 0 12px rgba(91,110,232,0.25);
443443 }
444444 .admin-row-text { min-width: 0; }
445445 .admin-row-title {
470470 text-transform: uppercase;
471471 }
472472 .admin-pill.is-admin {
473 background: rgba(140,109,255,0.16);
473 background: rgba(91,110,232,0.16);
474474 color: #c5b3ff;
475 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.35);
475 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.35);
476476 }
477477 .admin-pill.is-private {
478478 background: rgba(251,191,36,0.10);
523523 }
524524 .admin-input:focus {
525525 border-color: var(--border-focus);
526 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
526 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
527527 }
528528
529529 /* ─── Flags form ─── */
574574 }
575575 .admin-field .admin-input-mono:focus {
576576 border-color: var(--border-focus);
577 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
577 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
578578 }
579579 .admin-field-hint {
580580 font-size: 11.5px;
716716 position: absolute;
717717 top: 0; left: 0; right: 0;
718718 height: 2px;
719 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
719 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
720720 opacity: 0.7;
721721 pointer-events: none;
722722 }
724724 position: absolute;
725725 inset: -20% -10% auto auto;
726726 width: 380px; height: 380px;
727 background: radial-gradient(circle, rgba(140,109,255,0.20), rgba(54,197,214,0.10) 45%, transparent 70%);
727 background: radial-gradient(circle, rgba(91,110,232,0.20), rgba(95,143,160,0.10) 45%, transparent 70%);
728728 filter: blur(80px);
729729 opacity: 0.7;
730730 pointer-events: none;
763763 justify-content: center;
764764 width: 22px; height: 22px;
765765 border-radius: 6px;
766 background: rgba(140,109,255,0.14);
767 color: #b69dff;
768 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.35);
766 background: rgba(91,110,232,0.14);
767 color: #5b6ee8;
768 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.35);
769769 }
770770 .adm-users-title {
771771 font-size: clamp(28px, 4vw, 40px);
777777 color: var(--text-strong);
778778 }
779779 .adm-users-title-grad {
780 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
780 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
781781 -webkit-background-clip: text;
782782 background-clip: text;
783783 -webkit-text-fill-color: transparent;
851851 }
852852 .adm-users-input:focus {
853853 border-color: var(--border-focus);
854 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
854 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
855855 }
856856 .adm-users-pills {
857857 display: inline-flex;
876876 background: currentColor;
877877 }
878878 .adm-users-pill.is-admin {
879 background: rgba(140,109,255,0.16);
879 background: rgba(91,110,232,0.16);
880880 color: #c5b3ff;
881 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.35);
881 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.35);
882882 }
883883
884884 /* Buttons */
900900 line-height: 1;
901901 transition: border-color 120ms ease, background 120ms ease, color 120ms ease;
902902 }
903 .adm-users-btn:hover { border-color: rgba(140,109,255,0.45); background: rgba(140,109,255,0.06); color: var(--text-strong); }
903 .adm-users-btn:hover { border-color: rgba(91,110,232,0.45); background: rgba(91,110,232,0.06); color: var(--text-strong); }
904904 .adm-users-btn-ghost { background: transparent; color: var(--text-muted); border-color: var(--border); }
905905 .adm-users-btn-ghost:hover { color: var(--text); background: rgba(255,255,255,0.03); border-color: var(--border-strong); }
906906 .adm-users-btn-primary {
907 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
907 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
908908 color: #fff;
909909 border-color: transparent;
910 box-shadow: 0 6px 18px -6px rgba(140,109,255,0.45), inset 0 1px 0 rgba(255,255,255,0.16);
910 box-shadow: 0 6px 18px -6px rgba(91,110,232,0.45), inset 0 1px 0 rgba(255,255,255,0.16);
911911 }
912 .adm-users-btn-primary:hover { color: #fff; transform: translateY(-1px); box-shadow: 0 10px 24px -8px rgba(140,109,255,0.55); }
912 .adm-users-btn-primary:hover { color: #fff; transform: translateY(-1px); box-shadow: 0 10px 24px -8px rgba(91,110,232,0.55); }
913913 .adm-users-btn-danger {
914914 background: transparent;
915915 color: #fca5a5;
944944 box-shadow: 0 10px 28px -16px rgba(0,0,0,0.55);
945945 }
946946 .adm-users-card.is-admin {
947 border-color: rgba(140,109,255,0.35);
947 border-color: rgba(91,110,232,0.35);
948948 background:
949 linear-gradient(180deg, rgba(140,109,255,0.04), transparent 60%),
949 linear-gradient(180deg, rgba(91,110,232,0.04), transparent 60%),
950950 var(--bg-elevated);
951951 }
952952 .adm-users-card-head {
957957 .adm-users-avatar {
958958 width: 38px; height: 38px;
959959 border-radius: 9999px;
960 background: linear-gradient(135deg, rgba(140,109,255,0.30), rgba(54,197,214,0.22));
960 background: linear-gradient(135deg, rgba(91,110,232,0.30), rgba(95,143,160,0.22));
961961 color: var(--text-strong);
962962 display: inline-flex;
963963 align-items: center;
964964 justify-content: center;
965965 font-size: 14px;
966966 font-weight: 700;
967 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.30);
967 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.30);
968968 flex-shrink: 0;
969969 text-transform: uppercase;
970970 }
971971 .adm-users-avatar.is-admin {
972 background: linear-gradient(135deg, rgba(140,109,255,0.50), rgba(54,197,214,0.35));
972 background: linear-gradient(135deg, rgba(91,110,232,0.50), rgba(95,143,160,0.35));
973973 color: #fff;
974 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.55), 0 0 12px rgba(140,109,255,0.25);
974 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.55), 0 0 12px rgba(91,110,232,0.25);
975975 }
976976 .adm-users-card-id { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
977977 .adm-users-card-name {
10321032 inset: 50% auto auto 50%;
10331033 transform: translate(-50%, -50%);
10341034 width: 320px; height: 320px;
1035 background: radial-gradient(circle, rgba(140,109,255,0.16), rgba(54,197,214,0.08) 45%, transparent 70%);
1035 background: radial-gradient(circle, rgba(91,110,232,0.16), rgba(95,143,160,0.08) 45%, transparent 70%);
10361036 filter: blur(60px);
10371037 pointer-events: none;
10381038 z-index: 0;
10441044 justify-content: center;
10451045 width: 56px; height: 56px;
10461046 border-radius: 16px;
1047 background: rgba(140,109,255,0.10);
1048 color: #b69dff;
1049 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.28);
1047 background: rgba(91,110,232,0.10);
1048 color: #5b6ee8;
1049 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.28);
10501050 margin-bottom: var(--space-3);
10511051 }
10521052 .adm-users-empty-icon svg { width: 24px; height: 24px; }
10961096 position: absolute;
10971097 top: 0; left: 0; right: 0;
10981098 height: 2px;
1099 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
1099 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
11001100 opacity: 0.7;
11011101 pointer-events: none;
11021102 }
11041104 position: absolute;
11051105 inset: -20% -10% auto auto;
11061106 width: 380px; height: 380px;
1107 background: radial-gradient(circle, rgba(140,109,255,0.20), rgba(54,197,214,0.10) 45%, transparent 70%);
1107 background: radial-gradient(circle, rgba(91,110,232,0.20), rgba(95,143,160,0.10) 45%, transparent 70%);
11081108 filter: blur(80px);
11091109 opacity: 0.7;
11101110 pointer-events: none;
11431143 justify-content: center;
11441144 width: 22px; height: 22px;
11451145 border-radius: 6px;
1146 background: rgba(140,109,255,0.14);
1147 color: #b69dff;
1148 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.35);
1146 background: rgba(91,110,232,0.14);
1147 color: #5b6ee8;
1148 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.35);
11491149 }
11501150 .adm-repos-title {
11511151 font-size: clamp(28px, 4vw, 40px);
11571157 color: var(--text-strong);
11581158 }
11591159 .adm-repos-title-grad {
1160 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
1160 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
11611161 -webkit-background-clip: text;
11621162 background-clip: text;
11631163 -webkit-text-fill-color: transparent;
12371237 line-height: 1;
12381238 transition: border-color 120ms ease, background 120ms ease, color 120ms ease;
12391239 }
1240 .adm-repos-btn:hover { border-color: rgba(140,109,255,0.45); background: rgba(140,109,255,0.06); color: var(--text-strong); }
1240 .adm-repos-btn:hover { border-color: rgba(91,110,232,0.45); background: rgba(91,110,232,0.06); color: var(--text-strong); }
12411241 .adm-repos-btn-ghost { background: transparent; color: var(--text-muted); border-color: var(--border); }
12421242 .adm-repos-btn-ghost:hover { color: var(--text); background: rgba(255,255,255,0.03); border-color: var(--border-strong); }
12431243 .adm-repos-btn-danger {
12801280 .adm-repos-icon {
12811281 width: 38px; height: 38px;
12821282 border-radius: 10px;
1283 background: linear-gradient(135deg, rgba(140,109,255,0.18), rgba(54,197,214,0.12));
1284 color: #b69dff;
1283 background: linear-gradient(135deg, rgba(91,110,232,0.18), rgba(95,143,160,0.12));
1284 color: #5b6ee8;
12851285 display: inline-flex;
12861286 align-items: center;
12871287 justify-content: center;
1288 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.28);
1288 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.28);
12891289 flex-shrink: 0;
12901290 }
12911291 .adm-repos-icon svg { width: 18px; height: 18px; }
13441344 inset: 50% auto auto 50%;
13451345 transform: translate(-50%, -50%);
13461346 width: 320px; height: 320px;
1347 background: radial-gradient(circle, rgba(140,109,255,0.16), rgba(54,197,214,0.08) 45%, transparent 70%);
1347 background: radial-gradient(circle, rgba(91,110,232,0.16), rgba(95,143,160,0.08) 45%, transparent 70%);
13481348 filter: blur(60px);
13491349 pointer-events: none;
13501350 z-index: 0;
13561356 justify-content: center;
13571357 width: 56px; height: 56px;
13581358 border-radius: 16px;
1359 background: rgba(140,109,255,0.10);
1360 color: #b69dff;
1361 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.28);
1359 background: rgba(91,110,232,0.10);
1360 color: #5b6ee8;
1361 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.28);
13621362 margin-bottom: var(--space-3);
13631363 }
13641364 .adm-repos-empty-icon svg { width: 24px; height: 24px; }
14001400 position: absolute;
14011401 top: 0; left: 0; right: 0;
14021402 height: 2px;
1403 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
1403 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
14041404 opacity: 0.7;
14051405 pointer-events: none;
14061406 }
14081408 position: absolute;
14091409 inset: -20% -10% auto auto;
14101410 width: 380px; height: 380px;
1411 background: radial-gradient(circle, rgba(140,109,255,0.20), rgba(54,197,214,0.10) 45%, transparent 70%);
1411 background: radial-gradient(circle, rgba(91,110,232,0.20), rgba(95,143,160,0.10) 45%, transparent 70%);
14121412 filter: blur(80px);
14131413 opacity: 0.7;
14141414 pointer-events: none;
14471447 justify-content: center;
14481448 width: 22px; height: 22px;
14491449 border-radius: 6px;
1450 background: rgba(140,109,255,0.14);
1451 color: #b69dff;
1452 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.35);
1450 background: rgba(91,110,232,0.14);
1451 color: #5b6ee8;
1452 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.35);
14531453 }
14541454 .adm-flags-title {
14551455 font-size: clamp(28px, 4vw, 40px);
14611461 color: var(--text-strong);
14621462 }
14631463 .adm-flags-title-grad {
1464 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
1464 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
14651465 -webkit-background-clip: text;
14661466 background-clip: text;
14671467 -webkit-text-fill-color: transparent;
15721572 }
15731573 .adm-flags-input:focus {
15741574 border-color: var(--border-focus);
1575 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
1575 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
15761576 }
15771577 .adm-flags-hint {
15781578 font-size: 11.5px;
16051605 transition: transform 120ms ease, box-shadow 120ms ease, background 120ms ease, border-color 120ms ease, color 120ms ease;
16061606 }
16071607 .adm-flags-btn-primary {
1608 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
1608 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
16091609 color: #fff;
1610 box-shadow: 0 6px 18px -6px rgba(140,109,255,0.45), inset 0 1px 0 rgba(255,255,255,0.16);
1610 box-shadow: 0 6px 18px -6px rgba(91,110,232,0.45), inset 0 1px 0 rgba(255,255,255,0.16);
16111611 }
1612 .adm-flags-btn-primary:hover { transform: translateY(-1px); box-shadow: 0 10px 24px -8px rgba(140,109,255,0.55); }
1612 .adm-flags-btn-primary:hover { transform: translateY(-1px); box-shadow: 0 10px 24px -8px rgba(91,110,232,0.55); }
16131613
16141614 @media (max-width: 720px) {
16151615 .adm-flags-wrap { padding: var(--space-4) var(--space-3); }
16341634 position: absolute;
16351635 top: 0; left: 0; right: 0;
16361636 height: 2px;
1637 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
1637 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
16381638 opacity: 0.7;
16391639 pointer-events: none;
16401640 }
16421642 position: absolute;
16431643 inset: -20% -10% auto auto;
16441644 width: 380px; height: 380px;
1645 background: radial-gradient(circle, rgba(140,109,255,0.20), rgba(54,197,214,0.10) 45%, transparent 70%);
1645 background: radial-gradient(circle, rgba(91,110,232,0.20), rgba(95,143,160,0.10) 45%, transparent 70%);
16461646 filter: blur(80px);
16471647 opacity: 0.7;
16481648 pointer-events: none;
16811681 justify-content: center;
16821682 width: 22px; height: 22px;
16831683 border-radius: 6px;
1684 background: rgba(140,109,255,0.14);
1685 color: #b69dff;
1686 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.35);
1684 background: rgba(91,110,232,0.14);
1685 color: #5b6ee8;
1686 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.35);
16871687 }
16881688 .adm-digests-title {
16891689 font-size: clamp(28px, 4vw, 40px);
16951695 color: var(--text-strong);
16961696 }
16971697 .adm-digests-title-grad {
1698 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
1698 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
16991699 -webkit-background-clip: text;
17001700 background-clip: text;
17011701 -webkit-text-fill-color: transparent;
17941794 justify-content: center;
17951795 width: 26px; height: 26px;
17961796 border-radius: 8px;
1797 background: rgba(140,109,255,0.12);
1798 color: #b69dff;
1799 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.28);
1797 background: rgba(91,110,232,0.12);
1798 color: #5b6ee8;
1799 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.28);
18001800 flex-shrink: 0;
18011801 }
18021802 .adm-digests-section-title {
18261826 }
18271827 .adm-digests-input:focus {
18281828 border-color: var(--border-focus);
1829 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
1829 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
18301830 }
18311831 .adm-digests-form-row {
18321832 display: flex;
18521852 line-height: 1;
18531853 transition: transform 120ms ease, box-shadow 120ms ease, background 120ms ease, border-color 120ms ease, color 120ms ease;
18541854 }
1855 .adm-digests-btn:hover { border-color: rgba(140,109,255,0.45); background: rgba(140,109,255,0.06); color: var(--text-strong); }
1855 .adm-digests-btn:hover { border-color: rgba(91,110,232,0.45); background: rgba(91,110,232,0.06); color: var(--text-strong); }
18561856 .adm-digests-btn-primary {
1857 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
1857 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
18581858 color: #fff;
18591859 border-color: transparent;
1860 box-shadow: 0 6px 18px -6px rgba(140,109,255,0.45), inset 0 1px 0 rgba(255,255,255,0.16);
1860 box-shadow: 0 6px 18px -6px rgba(91,110,232,0.45), inset 0 1px 0 rgba(255,255,255,0.16);
18611861 }
1862 .adm-digests-btn-primary:hover { color: #fff; transform: translateY(-1px); box-shadow: 0 10px 24px -8px rgba(140,109,255,0.55); }
1862 .adm-digests-btn-primary:hover { color: #fff; transform: translateY(-1px); box-shadow: 0 10px 24px -8px rgba(91,110,232,0.55); }
18631863
18641864 .adm-digests-section-divider {
18651865 border-top: 1px solid var(--border-subtle);
19081908 .adm-digests-avatar {
19091909 width: 36px; height: 36px;
19101910 border-radius: 9999px;
1911 background: linear-gradient(135deg, rgba(140,109,255,0.30), rgba(54,197,214,0.22));
1911 background: linear-gradient(135deg, rgba(91,110,232,0.30), rgba(95,143,160,0.22));
19121912 color: var(--text-strong);
19131913 display: inline-flex;
19141914 align-items: center;
19151915 justify-content: center;
19161916 font-size: 13px;
19171917 font-weight: 700;
1918 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.30);
1918 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.30);
19191919 flex-shrink: 0;
19201920 text-transform: uppercase;
19211921 }
19481948 inset: 50% auto auto 50%;
19491949 transform: translate(-50%, -50%);
19501950 width: 320px; height: 320px;
1951 background: radial-gradient(circle, rgba(140,109,255,0.16), rgba(54,197,214,0.08) 45%, transparent 70%);
1951 background: radial-gradient(circle, rgba(91,110,232,0.16), rgba(95,143,160,0.08) 45%, transparent 70%);
19521952 filter: blur(60px);
19531953 pointer-events: none;
19541954 z-index: 0;
19601960 justify-content: center;
19611961 width: 56px; height: 56px;
19621962 border-radius: 16px;
1963 background: rgba(140,109,255,0.10);
1964 color: #b69dff;
1965 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.28);
1963 background: rgba(91,110,232,0.10);
1964 color: #5b6ee8;
1965 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.28);
19661966 margin-bottom: var(--space-3);
19671967 }
19681968 .adm-digests-empty-icon svg { width: 24px; height: 24px; }
20042004 position: absolute;
20052005 top: 0; left: 0; right: 0;
20062006 height: 2px;
2007 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
2007 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
20082008 opacity: 0.7;
20092009 pointer-events: none;
20102010 }
20122012 position: absolute;
20132013 inset: -20% -10% auto auto;
20142014 width: 380px; height: 380px;
2015 background: radial-gradient(circle, rgba(140,109,255,0.20), rgba(54,197,214,0.10) 45%, transparent 70%);
2015 background: radial-gradient(circle, rgba(91,110,232,0.20), rgba(95,143,160,0.10) 45%, transparent 70%);
20162016 filter: blur(80px);
20172017 opacity: 0.7;
20182018 pointer-events: none;
20512051 justify-content: center;
20522052 width: 22px; height: 22px;
20532053 border-radius: 6px;
2054 background: rgba(140,109,255,0.14);
2055 color: #b69dff;
2056 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.35);
2054 background: rgba(91,110,232,0.14);
2055 color: #5b6ee8;
2056 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.35);
20572057 }
20582058 .adm-autopilot-title {
20592059 font-size: clamp(28px, 4vw, 40px);
20652065 color: var(--text-strong);
20662066 }
20672067 .adm-autopilot-title-grad {
2068 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
2068 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
20692069 -webkit-background-clip: text;
20702070 background-clip: text;
20712071 -webkit-text-fill-color: transparent;
21572157 justify-content: center;
21582158 width: 26px; height: 26px;
21592159 border-radius: 8px;
2160 background: rgba(140,109,255,0.12);
2161 color: #b69dff;
2162 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.28);
2160 background: rgba(91,110,232,0.12);
2161 color: #5b6ee8;
2162 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.28);
21632163 }
21642164 .adm-autopilot-stat-value {
21652165 font-family: var(--font-display);
22282228 transition: transform 120ms ease, box-shadow 120ms ease, background 120ms ease, border-color 120ms ease, color 120ms ease;
22292229 }
22302230 .adm-autopilot-btn-primary {
2231 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
2231 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
22322232 color: #fff;
2233 box-shadow: 0 6px 18px -6px rgba(140,109,255,0.45), inset 0 1px 0 rgba(255,255,255,0.16);
2233 box-shadow: 0 6px 18px -6px rgba(91,110,232,0.45), inset 0 1px 0 rgba(255,255,255,0.16);
22342234 }
2235 .adm-autopilot-btn-primary:hover { transform: translateY(-1px); box-shadow: 0 10px 24px -8px rgba(140,109,255,0.55); }
2235 .adm-autopilot-btn-primary:hover { transform: translateY(-1px); box-shadow: 0 10px 24px -8px rgba(91,110,232,0.55); }
22362236
22372237 .adm-autopilot-h3 {
22382238 display: flex;
23622362 inset: 50% auto auto 50%;
23632363 transform: translate(-50%, -50%);
23642364 width: 320px; height: 320px;
2365 background: radial-gradient(circle, rgba(140,109,255,0.16), rgba(54,197,214,0.08) 45%, transparent 70%);
2365 background: radial-gradient(circle, rgba(91,110,232,0.16), rgba(95,143,160,0.08) 45%, transparent 70%);
23662366 filter: blur(60px);
23672367 pointer-events: none;
23682368 z-index: 0;
23742374 justify-content: center;
23752375 width: 56px; height: 56px;
23762376 border-radius: 16px;
2377 background: rgba(140,109,255,0.10);
2378 color: #b69dff;
2379 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.28);
2377 background: rgba(91,110,232,0.10);
2378 color: #5b6ee8;
2379 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.28);
23802380 margin-bottom: var(--space-3);
23812381 }
23822382 .adm-autopilot-empty-icon svg { width: 24px; height: 24px; }
24372437 position: absolute;
24382438 top: 0; left: 0; right: 0;
24392439 height: 2px;
2440 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
2440 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
24412441 opacity: 0.7;
24422442 pointer-events: none;
24432443 }
24452445 position: absolute;
24462446 inset: -20% -10% auto auto;
24472447 width: 380px; height: 380px;
2448 background: radial-gradient(circle, rgba(140,109,255,0.20), rgba(54,197,214,0.10) 45%, transparent 70%);
2448 background: radial-gradient(circle, rgba(91,110,232,0.20), rgba(95,143,160,0.10) 45%, transparent 70%);
24492449 filter: blur(80px);
24502450 opacity: 0.7;
24512451 pointer-events: none;
24702470 .adm-analytics-eyebrow-pill {
24712471 display: inline-flex; align-items: center; justify-content: center;
24722472 width: 22px; height: 22px; border-radius: 6px;
2473 background: rgba(140,109,255,0.14); color: #b69dff;
2474 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.35);
2473 background: rgba(91,110,232,0.14); color: #5b6ee8;
2474 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.35);
24752475 }
24762476 .adm-analytics-title {
24772477 font-size: clamp(28px, 4vw, 36px); font-family: var(--font-display);
24792479 margin: 0 0 var(--space-2); color: var(--text-strong);
24802480 }
24812481 .adm-analytics-title-grad {
2482 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
2482 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
24832483 -webkit-background-clip: text; background-clip: text;
24842484 -webkit-text-fill-color: transparent; color: transparent;
24852485 }
25552555 }
25562556 .adm-analytics-bar-fill {
25572557 height: 100%; border-radius: 9999px;
2558 background: linear-gradient(90deg, #8c6dff, #36c5d6);
2558 background: linear-gradient(90deg, #5b6ee8, #5f8fa0);
25592559 }
25602560 .adm-analytics-bar-label { font-family: var(--font-mono); font-size: 11px; color: var(--text-muted); flex-shrink: 0; }
25612561
25632563 display: inline-flex; align-items: center; gap: 4px;
25642564 padding: 2px 8px; border-radius: 9999px; font-size: 10.5px;
25652565 font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase;
2566 background: rgba(140,109,255,0.12); color: #c5b3ff;
2567 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.28);
2566 background: rgba(91,110,232,0.12); color: #c5b3ff;
2567 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.28);
25682568 }
25692569 .adm-analytics-pill.is-ok { background: rgba(52,211,153,0.12); color: #6ee7b7; box-shadow: inset 0 0 0 1px rgba(52,211,153,0.28); }
25702570 .adm-analytics-pill.is-err { background: rgba(248,113,113,0.12); color: #fecaca; box-shadow: inset 0 0 0 1px rgba(248,113,113,0.28); }
Modifiedsrc/routes/advisories.tsx+17−17View fileUnifiedSplit
9090 position: absolute;
9191 top: 0; left: 0; right: 0;
9292 height: 2px;
93 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
93 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
9494 opacity: 0.75;
9595 pointer-events: none;
9696 }
9898 position: absolute;
9999 inset: -30% -15% auto auto;
100100 width: 460px; height: 460px;
101 background: radial-gradient(circle, rgba(140,109,255,0.22), rgba(54,197,214,0.10) 45%, transparent 70%);
101 background: radial-gradient(circle, rgba(91,110,232,0.22), rgba(95,143,160,0.10) 45%, transparent 70%);
102102 filter: blur(80px);
103103 opacity: 0.75;
104104 pointer-events: none;
128128 .adv-eyebrow-dot {
129129 width: 8px; height: 8px;
130130 border-radius: 9999px;
131 background: linear-gradient(135deg, #8c6dff, #36c5d6);
132 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
131 background: linear-gradient(135deg, #5b6ee8, #5f8fa0);
132 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
133133 }
134134 .adv-title {
135135 font-family: var(--font-display);
141141 color: var(--text-strong);
142142 }
143143 .adv-title-grad {
144 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
144 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
145145 -webkit-background-clip: text;
146146 background-clip: text;
147147 -webkit-text-fill-color: transparent;
166166 font-size: 13px;
167167 font-weight: 600;
168168 color: #fff;
169 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
169 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
170170 border: none;
171171 border-radius: 10px;
172172 cursor: pointer;
173173 text-decoration: none;
174 box-shadow: 0 6px 18px -6px rgba(140,109,255,0.45), inset 0 1px 0 rgba(255,255,255,0.16);
174 box-shadow: 0 6px 18px -6px rgba(91,110,232,0.45), inset 0 1px 0 rgba(255,255,255,0.16);
175175 transition: transform 120ms ease, box-shadow 120ms ease;
176176 }
177 .adv-rescan:hover { transform: translateY(-1px); box-shadow: 0 8px 22px -6px rgba(140,109,255,0.55), inset 0 1px 0 rgba(255,255,255,0.18); }
177 .adv-rescan:hover { transform: translateY(-1px); box-shadow: 0 8px 22px -6px rgba(91,110,232,0.55), inset 0 1px 0 rgba(255,255,255,0.18); }
178178
179179 .adv-banner {
180180 margin-bottom: var(--space-4);
204204 margin-bottom: var(--space-4);
205205 padding: 14px 18px;
206206 border-radius: 14px;
207 background: linear-gradient(135deg, rgba(52,211,153,0.10), rgba(54,197,214,0.06));
207 background: linear-gradient(135deg, rgba(52,211,153,0.10), rgba(95,143,160,0.06));
208208 border: 1px solid rgba(52,211,153,0.32);
209209 color: #bbf7d0;
210210 }
215215 display: inline-flex;
216216 align-items: center;
217217 justify-content: center;
218 background: linear-gradient(135deg, #34d399 0%, #36c5d6 100%);
218 background: linear-gradient(135deg, #34d399 0%, #5f8fa0 100%);
219219 color: #04231a;
220220 box-shadow: 0 0 0 4px rgba(52,211,153,0.16);
221221 }
244244 }
245245 .adv-tab:hover { color: var(--text); text-decoration: none; }
246246 .adv-tab.is-active {
247 background: rgba(140,109,255,0.14);
247 background: rgba(91,110,232,0.14);
248248 color: #c4b5fd;
249 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.32);
249 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.32);
250250 }
251251
252252 /* Card list */
390390 min-width: 200px;
391391 }
392392 .adv-card-actions input[type="text"]:focus {
393 border-color: var(--border-focus, rgba(140,109,255,0.45));
394 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
393 border-color: var(--border-focus, rgba(91,110,232,0.45));
394 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
395395 }
396396 .adv-btn {
397397 display: inline-flex;
410410 }
411411 .adv-btn:hover {
412412 color: var(--text-strong);
413 border-color: rgba(140,109,255,0.45);
414 background: rgba(140,109,255,0.08);
413 border-color: rgba(91,110,232,0.45);
414 background: rgba(91,110,232,0.08);
415415 text-decoration: none;
416416 }
417417
468468 position: absolute;
469469 inset: -40% -20% auto auto;
470470 width: 320px; height: 320px;
471 background: radial-gradient(circle, rgba(140,109,255,0.14), rgba(54,197,214,0.06) 45%, transparent 70%);
471 background: radial-gradient(circle, rgba(91,110,232,0.14), rgba(95,143,160,0.06) 45%, transparent 70%);
472472 filter: blur(60px);
473473 pointer-events: none;
474474 }
Modifiedsrc/routes/agent-pipelines.tsx+6−6View fileUnifiedSplit
5050 position: absolute;
5151 top: 0; left: 0; right: 0;
5252 height: 2px;
53 background: linear-gradient(90deg, transparent 0%, #8c6dff 35%, #36c5d6 65%, transparent 100%);
53 background: linear-gradient(90deg, transparent 0%, #5b6ee8 35%, #5f8fa0 65%, transparent 100%);
5454 opacity: 0.75;
5555 pointer-events: none;
5656 }
9494 border: 1px solid transparent;
9595 }
9696 .ap-badge-active { background: rgba(54,197,100,0.1); color: #36c564; border-color: rgba(54,197,100,0.3); }
97 .ap-badge-idle { background: rgba(140,109,255,0.1); color: #8c6dff; border-color: rgba(140,109,255,0.3); }
97 .ap-badge-idle { background: rgba(91,110,232,0.1); color: #5b6ee8; border-color: rgba(91,110,232,0.3); }
9898 .ap-badge-expired { background: rgba(255,100,80,0.1); color: #ff6450; border-color: rgba(255,100,80,0.3); }
9999 .ap-card {
100100 border: 1px solid var(--border);
137137 .ap-form-row select:focus,
138138 .ap-form-row textarea:focus {
139139 outline: none;
140 border-color: var(--accent, #8c6dff);
140 border-color: var(--accent, #5b6ee8);
141141 }
142142 .ap-stage {
143143 border: 1px solid var(--border);
165165 width: 22px;
166166 height: 22px;
167167 border-radius: 50%;
168 background: var(--accent, #8c6dff);
168 background: var(--accent, #5b6ee8);
169169 color: #fff;
170170 font-size: 11px;
171171 font-weight: 700;
192192 line-height: 1;
193193 }
194194 .ap-btn-primary {
195 background: var(--accent, #8c6dff);
195 background: var(--accent, #5b6ee8);
196196 color: #fff;
197 border-color: var(--accent, #8c6dff);
197 border-color: var(--accent, #5b6ee8);
198198 }
199199 .ap-btn-primary:hover { opacity: 0.88; }
200200 .ap-btn-secondary {
Modifiedsrc/routes/ai-changelog.tsx+23−23View fileUnifiedSplit
6060 position: absolute;
6161 top: 0; left: 0; right: 0;
6262 height: 2px;
63 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
63 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
6464 opacity: 0.7;
6565 pointer-events: none;
6666 }
6868 position: absolute;
6969 inset: -20% -10% auto auto;
7070 width: 420px; height: 420px;
71 background: radial-gradient(circle, rgba(140,109,255,0.20), rgba(54,197,214,0.10) 45%, transparent 70%);
71 background: radial-gradient(circle, rgba(91,110,232,0.20), rgba(95,143,160,0.10) 45%, transparent 70%);
7272 filter: blur(80px);
7373 opacity: 0.75;
7474 pointer-events: none;
9090 justify-content: center;
9191 width: 18px; height: 18px;
9292 border-radius: 6px;
93 background: rgba(140,109,255,0.14);
94 color: #b69dff;
95 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.35);
93 background: rgba(91,110,232,0.14);
94 color: #5b6ee8;
95 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.35);
9696 }
9797 .ai-changelog-title {
9898 font-size: clamp(28px, 4vw, 42px);
104104 color: var(--text-strong);
105105 }
106106 .ai-changelog-title-grad {
107 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
107 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
108108 -webkit-background-clip: text;
109109 background-clip: text;
110110 -webkit-text-fill-color: transparent;
136136 color: #fecaca;
137137 }
138138 .ai-changelog-banner.is-notice {
139 border-color: rgba(140,109,255,0.30);
140 background: rgba(140,109,255,0.06);
139 border-color: rgba(91,110,232,0.30);
140 background: rgba(91,110,232,0.06);
141141 color: var(--text);
142142 }
143143
184184 }
185185 .ai-changelog-input:focus {
186186 border-color: var(--border-focus);
187 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
187 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
188188 }
189189 .ai-changelog-submit {
190190 display: inline-flex;
191191 align-items: center;
192192 gap: 7px;
193193 padding: 9px 16px;
194 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
194 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
195195 color: #ffffff;
196196 border: 1px solid transparent;
197197 border-radius: 10px;
198198 font-size: 13.5px;
199199 font-weight: 600;
200200 cursor: pointer;
201 box-shadow: 0 6px 16px -4px rgba(140,109,255,0.45), inset 0 1px 0 rgba(255,255,255,0.16);
201 box-shadow: 0 6px 16px -4px rgba(91,110,232,0.45), inset 0 1px 0 rgba(255,255,255,0.16);
202202 font-family: inherit;
203203 transition: transform 120ms ease, box-shadow 120ms ease;
204204 line-height: 1;
205205 }
206206 .ai-changelog-submit:hover {
207207 transform: translateY(-1px);
208 box-shadow: 0 10px 22px -6px rgba(140,109,255,0.55), inset 0 1px 0 rgba(255,255,255,0.20);
208 box-shadow: 0 10px 22px -6px rgba(91,110,232,0.55), inset 0 1px 0 rgba(255,255,255,0.20);
209209 }
210210 .ai-changelog-submit svg { display: block; }
211211
227227 line-height: 1;
228228 }
229229 .ai-changelog-ghost:hover {
230 background: rgba(140,109,255,0.06);
231 border-color: rgba(140,109,255,0.45);
230 background: rgba(91,110,232,0.06);
231 border-color: rgba(91,110,232,0.45);
232232 color: var(--text-strong);
233233 text-decoration: none;
234234 }
273273 gap: 5px;
274274 padding: 2px 8px;
275275 border-radius: 9999px;
276 background: rgba(140,109,255,0.10);
276 background: rgba(91,110,232,0.10);
277277 color: #c4b5fd;
278278 font-size: 11px;
279279 font-weight: 600;
280280 letter-spacing: 0.04em;
281281 text-transform: uppercase;
282 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.28);
282 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.28);
283283 }
284284
285285 /* Result panels — split: rendered MD (left) + copyable raw (right) */
326326 .ai-changelog-panel-dot {
327327 width: 8px; height: 8px;
328328 border-radius: 9999px;
329 background: linear-gradient(135deg, #8c6dff, #36c5d6);
330 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
329 background: linear-gradient(135deg, #5b6ee8, #5f8fa0);
330 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
331331 }
332332 .ai-changelog-copy {
333333 display: inline-flex;
411411 position: absolute;
412412 inset: -50% 30% auto 30%;
413413 width: 320px; height: 320px;
414 background: radial-gradient(circle, rgba(140,109,255,0.18), rgba(54,197,214,0.06) 45%, transparent 70%);
414 background: radial-gradient(circle, rgba(91,110,232,0.18), rgba(95,143,160,0.06) 45%, transparent 70%);
415415 filter: blur(70px);
416416 pointer-events: none;
417417 z-index: 0;
455455 .ai-changelog-skeleton {
456456 height: 12px;
457457 border-radius: 4px;
458 background: linear-gradient(90deg, rgba(255,255,255,0.04) 0%, rgba(140,109,255,0.08) 50%, rgba(255,255,255,0.04) 100%);
458 background: linear-gradient(90deg, rgba(255,255,255,0.04) 0%, rgba(91,110,232,0.08) 50%, rgba(255,255,255,0.04) 100%);
459459 background-size: 600px 100%;
460460 animation: ai-changelog-shimmer 1.4s linear infinite;
461461 margin-bottom: 8px;
472472 gap: 6px;
473473 padding: 4px 10px;
474474 border-radius: 9999px;
475 background: rgba(140,109,255,0.08);
476 border: 1px solid rgba(140,109,255,0.22);
475 background: rgba(91,110,232,0.08);
476 border: 1px solid rgba(91,110,232,0.22);
477477 color: var(--text-muted);
478478 font-size: 11px;
479479 letter-spacing: 0.04em;
483483 .ai-changelog-poweredby-pill .dot {
484484 width: 6px; height: 6px;
485485 border-radius: 9999px;
486 background: linear-gradient(135deg, #8c6dff, #36c5d6);
486 background: linear-gradient(135deg, #5b6ee8, #5f8fa0);
487487 }
488488
489489 :root[data-theme='light'] .ai-changelog-panel {
Modifiedsrc/routes/ai-explain.tsx+16−16View fileUnifiedSplit
6464 position: absolute;
6565 top: 0; left: 0; right: 0;
6666 height: 2px;
67 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
67 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
6868 opacity: 0.7;
6969 pointer-events: none;
7070 }
7272 position: absolute;
7373 inset: -20% -10% auto auto;
7474 width: 420px; height: 420px;
75 background: radial-gradient(circle, rgba(140,109,255,0.20), rgba(54,197,214,0.10) 45%, transparent 70%);
75 background: radial-gradient(circle, rgba(91,110,232,0.20), rgba(95,143,160,0.10) 45%, transparent 70%);
7676 filter: blur(80px);
7777 opacity: 0.75;
7878 pointer-events: none;
9595 justify-content: center;
9696 width: 18px; height: 18px;
9797 border-radius: 6px;
98 background: rgba(140,109,255,0.14);
99 color: #b69dff;
100 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.35);
98 background: rgba(91,110,232,0.14);
99 color: #5b6ee8;
100 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.35);
101101 }
102102
103103 .ai-explain-title {
110110 color: var(--text-strong);
111111 }
112112 .ai-explain-title-grad {
113 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
113 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
114114 -webkit-background-clip: text;
115115 background-clip: text;
116116 -webkit-text-fill-color: transparent;
182182 align-items: center;
183183 gap: 6px;
184184 padding: 8px 14px;
185 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
185 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
186186 color: #ffffff;
187187 border: 1px solid transparent;
188188 border-radius: 10px;
190190 font-weight: 600;
191191 text-decoration: none;
192192 cursor: pointer;
193 box-shadow: 0 6px 16px -4px rgba(140,109,255,0.45), inset 0 1px 0 rgba(255,255,255,0.16);
193 box-shadow: 0 6px 16px -4px rgba(91,110,232,0.45), inset 0 1px 0 rgba(255,255,255,0.16);
194194 font-family: inherit;
195195 transition: transform 120ms ease, box-shadow 120ms ease;
196196 }
197197 .ai-explain-regen:hover {
198198 transform: translateY(-1px);
199 box-shadow: 0 10px 22px -6px rgba(140,109,255,0.55), inset 0 1px 0 rgba(255,255,255,0.20);
199 box-shadow: 0 10px 22px -6px rgba(91,110,232,0.55), inset 0 1px 0 rgba(255,255,255,0.20);
200200 }
201201 .ai-explain-regen svg { display: block; }
202202
236236 .ai-explain-panel-dot {
237237 width: 8px; height: 8px;
238238 border-radius: 9999px;
239 background: linear-gradient(135deg, #8c6dff, #36c5d6);
240 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
239 background: linear-gradient(135deg, #5b6ee8, #5f8fa0);
240 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
241241 }
242242 .ai-explain-copy {
243243 display: inline-flex;
332332 position: absolute;
333333 inset: -40% 35% auto 35%;
334334 width: 280px; height: 280px;
335 background: radial-gradient(circle, rgba(140,109,255,0.20), rgba(54,197,214,0.08) 45%, transparent 70%);
335 background: radial-gradient(circle, rgba(91,110,232,0.20), rgba(95,143,160,0.08) 45%, transparent 70%);
336336 filter: blur(60px);
337337 pointer-events: none;
338338 z-index: 0;
382382 gap: 6px;
383383 padding: 4px 10px;
384384 border-radius: 9999px;
385 background: rgba(140,109,255,0.08);
386 border: 1px solid rgba(140,109,255,0.22);
385 background: rgba(91,110,232,0.08);
386 border: 1px solid rgba(91,110,232,0.22);
387387 color: var(--text-muted);
388388 font-size: 11px;
389389 letter-spacing: 0.04em;
393393 .ai-explain-poweredby-pill .dot {
394394 width: 6px; height: 6px;
395395 border-radius: 9999px;
396 background: linear-gradient(135deg, #8c6dff, #36c5d6);
396 background: linear-gradient(135deg, #5b6ee8, #5f8fa0);
397397 }
398398
399399 /* Loading shimmer skeleton — kept available for future async modes. */
404404 .ai-explain-skeleton {
405405 height: 14px;
406406 border-radius: 4px;
407 background: linear-gradient(90deg, rgba(255,255,255,0.04) 0%, rgba(140,109,255,0.08) 50%, rgba(255,255,255,0.04) 100%);
407 background: linear-gradient(90deg, rgba(255,255,255,0.04) 0%, rgba(91,110,232,0.08) 50%, rgba(255,255,255,0.04) 100%);
408408 background-size: 600px 100%;
409409 animation: ai-explain-shimmer 1.4s linear infinite;
410410 margin-bottom: 10px;
Modifiedsrc/routes/ai-tests.tsx+20−20View fileUnifiedSplit
7373 position: absolute;
7474 top: 0; left: 0; right: 0;
7575 height: 2px;
76 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
76 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
7777 opacity: 0.7;
7878 pointer-events: none;
7979 }
8181 position: absolute;
8282 inset: -20% -10% auto auto;
8383 width: 420px; height: 420px;
84 background: radial-gradient(circle, rgba(140,109,255,0.20), rgba(54,197,214,0.10) 45%, transparent 70%);
84 background: radial-gradient(circle, rgba(91,110,232,0.20), rgba(95,143,160,0.10) 45%, transparent 70%);
8585 filter: blur(80px);
8686 opacity: 0.75;
8787 pointer-events: none;
103103 justify-content: center;
104104 width: 18px; height: 18px;
105105 border-radius: 6px;
106 background: rgba(140,109,255,0.14);
107 color: #b69dff;
108 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.35);
106 background: rgba(91,110,232,0.14);
107 color: #5b6ee8;
108 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.35);
109109 }
110110 .ai-tests-title {
111111 font-size: clamp(28px, 4vw, 42px);
117117 color: var(--text-strong);
118118 }
119119 .ai-tests-title-grad {
120 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
120 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
121121 -webkit-background-clip: text;
122122 background-clip: text;
123123 -webkit-text-fill-color: transparent;
178178 .ai-tests-input:focus,
179179 .ai-tests-select:focus {
180180 border-color: var(--border-focus);
181 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
181 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
182182 }
183183 .ai-tests-submit {
184184 display: inline-flex;
185185 align-items: center;
186186 gap: 7px;
187187 padding: 9px 16px;
188 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
188 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
189189 color: #ffffff;
190190 border: 1px solid transparent;
191191 border-radius: 10px;
192192 font-size: 13.5px;
193193 font-weight: 600;
194194 cursor: pointer;
195 box-shadow: 0 6px 16px -4px rgba(140,109,255,0.45), inset 0 1px 0 rgba(255,255,255,0.16);
195 box-shadow: 0 6px 16px -4px rgba(91,110,232,0.45), inset 0 1px 0 rgba(255,255,255,0.16);
196196 font-family: inherit;
197197 transition: transform 120ms ease, box-shadow 120ms ease;
198198 line-height: 1;
199199 }
200200 .ai-tests-submit:hover {
201201 transform: translateY(-1px);
202 box-shadow: 0 10px 22px -6px rgba(140,109,255,0.55), inset 0 1px 0 rgba(255,255,255,0.20);
202 box-shadow: 0 10px 22px -6px rgba(91,110,232,0.55), inset 0 1px 0 rgba(255,255,255,0.20);
203203 }
204204 .ai-tests-submit svg { display: block; }
205205
251251 align-items: center;
252252 gap: 6px;
253253 padding: 8px 14px;
254 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
254 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
255255 color: #ffffff;
256256 border: 1px solid transparent;
257257 border-radius: 10px;
258258 font-size: 13px;
259259 font-weight: 600;
260260 cursor: pointer;
261 box-shadow: 0 6px 16px -4px rgba(140,109,255,0.45), inset 0 1px 0 rgba(255,255,255,0.16);
261 box-shadow: 0 6px 16px -4px rgba(91,110,232,0.45), inset 0 1px 0 rgba(255,255,255,0.16);
262262 font-family: inherit;
263263 transition: transform 120ms ease, box-shadow 120ms ease;
264264 }
265265 .ai-tests-regen:hover {
266266 transform: translateY(-1px);
267 box-shadow: 0 10px 22px -6px rgba(140,109,255,0.55), inset 0 1px 0 rgba(255,255,255,0.20);
267 box-shadow: 0 10px 22px -6px rgba(91,110,232,0.55), inset 0 1px 0 rgba(255,255,255,0.20);
268268 }
269269 .ai-tests-regen svg { display: block; }
270270
326326 .ai-tests-panel-dot {
327327 width: 8px; height: 8px;
328328 border-radius: 9999px;
329 background: linear-gradient(135deg, #8c6dff, #36c5d6);
330 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
329 background: linear-gradient(135deg, #5b6ee8, #5f8fa0);
330 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
331331 }
332332 .ai-tests-copy {
333333 display: inline-flex;
381381 position: absolute;
382382 inset: -50% 30% auto 30%;
383383 width: 320px; height: 320px;
384 background: radial-gradient(circle, rgba(140,109,255,0.18), rgba(54,197,214,0.06) 45%, transparent 70%);
384 background: radial-gradient(circle, rgba(91,110,232,0.18), rgba(95,143,160,0.06) 45%, transparent 70%);
385385 filter: blur(70px);
386386 pointer-events: none;
387387 z-index: 0;
424424 .ai-tests-skeleton {
425425 height: 12px;
426426 border-radius: 4px;
427 background: linear-gradient(90deg, rgba(255,255,255,0.04) 0%, rgba(140,109,255,0.08) 50%, rgba(255,255,255,0.04) 100%);
427 background: linear-gradient(90deg, rgba(255,255,255,0.04) 0%, rgba(91,110,232,0.08) 50%, rgba(255,255,255,0.04) 100%);
428428 background-size: 600px 100%;
429429 animation: ai-tests-shimmer 1.4s linear infinite;
430430 margin-bottom: 8px;
441441 gap: 6px;
442442 padding: 4px 10px;
443443 border-radius: 9999px;
444 background: rgba(140,109,255,0.08);
445 border: 1px solid rgba(140,109,255,0.22);
444 background: rgba(91,110,232,0.08);
445 border: 1px solid rgba(91,110,232,0.22);
446446 color: var(--text-muted);
447447 font-size: 11px;
448448 letter-spacing: 0.04em;
452452 .ai-tests-poweredby-pill .dot {
453453 width: 6px; height: 6px;
454454 border-radius: 9999px;
455 background: linear-gradient(135deg, #8c6dff, #36c5d6);
455 background: linear-gradient(135deg, #5b6ee8, #5f8fa0);
456456 }
457457
458458 :root[data-theme='light'] .ai-tests-panel {
Modifiedsrc/routes/ai-workspace.tsx+13−13View fileUnifiedSplit
4242 position: absolute;
4343 top: 0; left: 0; right: 0;
4444 height: 2px;
45 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
45 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
4646 opacity: 0.7;
4747 pointer-events: none;
4848 }
9494 background: #34d399;
9595 }
9696 .ws-step.is-active .ws-step-dot {
97 background: #8c6dff;
98 box-shadow: 0 0 0 4px rgba(140,109,255,0.22);
97 background: #5b6ee8;
98 box-shadow: 0 0 0 4px rgba(91,110,232,0.22);
9999 animation: ws-pulse 1.4s ease-in-out infinite;
100100 }
101101 .ws-step.is-failed .ws-step-dot {
102102 background: #f87171;
103103 }
104104 @keyframes ws-pulse {
105 0%, 100% { box-shadow: 0 0 0 4px rgba(140,109,255,0.22); }
106 50% { box-shadow: 0 0 0 7px rgba(140,109,255,0.10); }
105 0%, 100% { box-shadow: 0 0 0 4px rgba(91,110,232,0.22); }
106 50% { box-shadow: 0 0 0 7px rgba(91,110,232,0.10); }
107107 }
108108 .ws-step-label {
109109 font-size: 14px;
144144 margin-top: 12px;
145145 padding: 9px 18px;
146146 border-radius: 8px;
147 background: rgba(140,109,255,0.14);
148 border: 1px solid rgba(140,109,255,0.35);
147 background: rgba(91,110,232,0.14);
148 border: 1px solid rgba(91,110,232,0.35);
149149 color: var(--accent);
150150 font-weight: 600;
151151 text-decoration: none;
152152 font-size: 13.5px;
153153 transition: background 120ms;
154154 }
155 .ws-pr-link:hover { background: rgba(140,109,255,0.22); text-decoration: none; }
155 .ws-pr-link:hover { background: rgba(91,110,232,0.22); text-decoration: none; }
156156 .ws-start-btn {
157157 display: inline-flex;
158158 align-items: center;
159159 gap: 8px;
160160 padding: 10px 22px;
161161 border-radius: 8px;
162 background: rgba(140,109,255,0.14);
163 border: 1px solid rgba(140,109,255,0.35);
162 background: rgba(91,110,232,0.14);
163 border: 1px solid rgba(91,110,232,0.35);
164164 color: var(--accent);
165165 font-weight: 700;
166166 font-size: 14px;
167167 cursor: pointer;
168168 transition: background 120ms;
169169 }
170 .ws-start-btn:hover { background: rgba(140,109,255,0.22); }
170 .ws-start-btn:hover { background: rgba(91,110,232,0.22); }
171171 .ws-explain {
172172 margin-top: 18px;
173173 padding: 14px 18px;
203203 text-transform: uppercase;
204204 }
205205 .ws-badge-active {
206 background: rgba(140,109,255,0.15);
206 background: rgba(91,110,232,0.15);
207207 color: #a78bfa;
208 border: 1px solid rgba(140,109,255,0.3);
208 border: 1px solid rgba(91,110,232,0.3);
209209 }
210210 .ws-badge-done {
211211 background: rgba(52,211,153,0.12);
Modifiedsrc/routes/api-docs.tsx+10−10View fileUnifiedSplit
3636 .apidocs-eyebrow-dot {
3737 width: 8px; height: 8px;
3838 border-radius: 9999px;
39 background: linear-gradient(135deg, #8c6dff, #36c5d6);
40 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
39 background: linear-gradient(135deg, #5b6ee8, #5f8fa0);
40 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
4141 }
4242 .apidocs-title {
4343 font-family: var(--font-display);
4949 color: var(--text-strong);
5050 }
5151 .apidocs-title-grad {
52 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
52 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
5353 -webkit-background-clip: text;
5454 background-clip: text;
5555 -webkit-text-fill-color: transparent;
7979 position: absolute;
8080 top: 0; left: 0; right: 0;
8181 height: 2px;
82 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
82 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
8383 opacity: 0.55;
8484 pointer-events: none;
8585 }
164164 box-shadow: inset 0 0 0 1px rgba(52,211,153,0.32);
165165 }
166166 .apidocs-method.m-post {
167 background: rgba(140,109,255,0.16);
167 background: rgba(91,110,232,0.16);
168168 color: #c4b5fd;
169 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.32);
169 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.32);
170170 }
171171 .apidocs-method.m-put,
172172 .apidocs-method.m-patch {
227227 line-height: 1.4;
228228 }
229229 .apidocs-badge.is-auth {
230 background: rgba(54,197,214,0.14);
230 background: rgba(95,143,160,0.14);
231231 color: #67e8f9;
232 box-shadow: inset 0 0 0 1px rgba(54,197,214,0.32);
232 box-shadow: inset 0 0 0 1px rgba(95,143,160,0.32);
233233 }
234234 .apidocs-badge.is-scope {
235235 background: rgba(52,211,153,0.14);
302302 .apidocs-spec-dot {
303303 width: 7px; height: 7px;
304304 border-radius: 9999px;
305 background: linear-gradient(135deg, #8c6dff, #36c5d6);
306 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
305 background: linear-gradient(135deg, #5b6ee8, #5f8fa0);
306 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
307307 }
308308 .apidocs-spec-copy {
309309 display: inline-flex;
Modifiedsrc/routes/ask.tsx+26−26View fileUnifiedSplit
228228 position: absolute;
229229 top: 0; left: 0; right: 0;
230230 height: 2px;
231 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
231 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
232232 opacity: 0.78;
233233 pointer-events: none;
234234 z-index: 2;
237237 position: absolute;
238238 inset: -30% -10% auto auto;
239239 width: 460px; height: 460px;
240 background: radial-gradient(circle, rgba(140,109,255,0.22), rgba(54,197,214,0.10) 45%, transparent 70%);
240 background: radial-gradient(circle, rgba(91,110,232,0.22), rgba(95,143,160,0.10) 45%, transparent 70%);
241241 filter: blur(80px);
242242 opacity: 0.7;
243243 pointer-events: none;
264264 justify-content: center;
265265 width: 18px; height: 18px;
266266 border-radius: 6px;
267 background: rgba(140,109,255,0.14);
268 color: #b69dff;
269 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.35);
267 background: rgba(91,110,232,0.14);
268 color: #5b6ee8;
269 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.35);
270270 }
271271 .ask-eyebrow-who { color: var(--accent); font-weight: 700; text-transform: none; letter-spacing: 0; font-size: 12.5px; }
272272 .ask-pill-warn {
294294 color: var(--text-strong);
295295 }
296296 .ask-title-grad {
297 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
297 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
298298 -webkit-background-clip: text;
299299 background-clip: text;
300300 -webkit-text-fill-color: transparent;
331331 justify-content: center;
332332 width: 36px; height: 36px;
333333 border-radius: 10px;
334 background: linear-gradient(135deg, rgba(140,109,255,0.18), rgba(54,197,214,0.10));
335 color: #b69dff;
336 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.35);
334 background: linear-gradient(135deg, rgba(91,110,232,0.18), rgba(95,143,160,0.10));
335 color: #5b6ee8;
336 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.35);
337337 flex-shrink: 0;
338338 }
339339 .ask-empty-title {
372372 font-weight: 700;
373373 }
374374 .ask-msg-avatar-ai {
375 background: linear-gradient(135deg, #8c6dff, #36c5d6);
375 background: linear-gradient(135deg, #5b6ee8, #5f8fa0);
376376 color: #fff;
377 box-shadow: 0 0 0 1px rgba(140,109,255,0.18), 0 6px 18px -6px rgba(140,109,255,0.45);
377 box-shadow: 0 0 0 1px rgba(91,110,232,0.18), 0 6px 18px -6px rgba(91,110,232,0.45);
378378 }
379379 .ask-msg-avatar-user {
380380 background: rgba(255,255,255,0.05);
413413 .ask-msg-assistant .ask-msg-bubble {
414414 border-top-left-radius: 4px;
415415 background:
416 linear-gradient(180deg, rgba(140,109,255,0.04), transparent 60%),
416 linear-gradient(180deg, rgba(91,110,232,0.04), transparent 60%),
417417 var(--bg-elevated);
418 border-color: rgba(140,109,255,0.22);
418 border-color: rgba(91,110,232,0.22);
419419 }
420420 .ask-msg-user .ask-msg-bubble {
421421 border-top-right-radius: 4px;
422 background: rgba(140,109,255,0.06);
423 border-color: rgba(140,109,255,0.20);
422 background: rgba(91,110,232,0.06);
423 border-color: rgba(91,110,232,0.20);
424424 color: var(--text-strong);
425425 }
426426
435435 transition: border-color 140ms ease, box-shadow 140ms ease;
436436 }
437437 .ask-composer-shell:focus-within {
438 border-color: rgba(140,109,255,0.55);
439 box-shadow: 0 0 0 4px rgba(140,109,255,0.16);
438 border-color: rgba(91,110,232,0.55);
439 box-shadow: 0 0 0 4px rgba(91,110,232,0.16);
440440 }
441441 .ask-composer-shell::before {
442442 content: '';
443443 position: absolute;
444444 top: 0; left: 0; right: 0;
445445 height: 1px;
446 background: linear-gradient(90deg, transparent 0%, rgba(140,109,255,0.45) 30%, rgba(54,197,214,0.45) 70%, transparent 100%);
446 background: linear-gradient(90deg, transparent 0%, rgba(91,110,232,0.45) 30%, rgba(95,143,160,0.45) 70%, transparent 100%);
447447 opacity: 0.6;
448448 pointer-events: none;
449449 }
498498 font-family: var(--font-mono);
499499 font-size: 12px;
500500 color: var(--accent);
501 background: rgba(140,109,255,0.10);
502 border: 1px solid rgba(140,109,255,0.28);
501 background: rgba(91,110,232,0.10);
502 border: 1px solid rgba(91,110,232,0.28);
503503 padding: 1px 6px;
504504 border-radius: 5px;
505505 }
514514 border: 1px solid transparent;
515515 border-radius: 10px;
516516 cursor: pointer;
517 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
518 box-shadow: 0 6px 18px -4px rgba(140,109,255,0.45), inset 0 1px 0 rgba(255,255,255,0.16);
517 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
518 box-shadow: 0 6px 18px -4px rgba(91,110,232,0.45), inset 0 1px 0 rgba(255,255,255,0.16);
519519 transition: transform 120ms ease, box-shadow 120ms ease;
520520 font-family: inherit;
521521 line-height: 1;
522522 }
523523 .ask-submit:hover {
524524 transform: translateY(-1px);
525 box-shadow: 0 10px 24px -6px rgba(140,109,255,0.55), inset 0 1px 0 rgba(255,255,255,0.20);
525 box-shadow: 0 10px 24px -6px rgba(91,110,232,0.55), inset 0 1px 0 rgba(255,255,255,0.20);
526526 }
527527 .ask-submit:active { transform: translateY(0); }
528528
549549 .ask-recent-dot {
550550 width: 7px; height: 7px;
551551 border-radius: 9999px;
552 background: linear-gradient(135deg, #8c6dff, #36c5d6);
553 box-shadow: 0 0 0 3px rgba(140,109,255,0.16);
552 background: linear-gradient(135deg, #5b6ee8, #5f8fa0);
553 box-shadow: 0 0 0 3px rgba(91,110,232,0.16);
554554 }
555555 .ask-recent-list {
556556 list-style: none;
571571 transition: background 120ms ease, padding-left 120ms ease;
572572 }
573573 .ask-recent-link:hover {
574 background: rgba(140,109,255,0.06);
574 background: rgba(91,110,232,0.06);
575575 padding-left: 14px;
576576 text-decoration: none;
577577 }
Modifiedsrc/routes/audit.tsx+17−17View fileUnifiedSplit
319319 position: absolute;
320320 top: 0; left: 0; right: 0;
321321 height: 2px;
322 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
322 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
323323 opacity: 0.75;
324324 pointer-events: none;
325325 }
327327 position: absolute;
328328 inset: -30% -10% auto auto;
329329 width: 460px; height: 460px;
330 background: radial-gradient(circle, rgba(140,109,255,0.22), rgba(54,197,214,0.10) 45%, transparent 70%);
330 background: radial-gradient(circle, rgba(91,110,232,0.22), rgba(95,143,160,0.10) 45%, transparent 70%);
331331 filter: blur(80px);
332332 opacity: 0.7;
333333 pointer-events: none;
349349 justify-content: center;
350350 width: 18px; height: 18px;
351351 border-radius: 6px;
352 background: rgba(140,109,255,0.14);
353 color: #b69dff;
354 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.35);
352 background: rgba(91,110,232,0.14);
353 color: #5b6ee8;
354 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.35);
355355 }
356356 .audit-eyebrow-who { color: var(--accent); font-weight: 600; }
357357 .audit-title {
364364 color: var(--text-strong);
365365 }
366366 .audit-title-grad {
367 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
367 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
368368 -webkit-background-clip: text;
369369 background-clip: text;
370370 -webkit-text-fill-color: transparent;
431431 box-sizing: border-box;
432432 }
433433 .audit-filter-search input:focus {
434 border-color: rgba(140,109,255,0.50);
435 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
434 border-color: rgba(91,110,232,0.50);
435 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
436436 }
437437 .audit-filter-group {
438438 display: flex;
478478 padding: 0;
479479 }
480480 .audit-filter-pill:hover {
481 background: rgba(140,109,255,0.10);
482 border-color: rgba(140,109,255,0.40);
481 background: rgba(91,110,232,0.10);
482 border-color: rgba(91,110,232,0.40);
483483 color: var(--text-strong);
484484 }
485485 .audit-filter-pill.is-active {
486 background: linear-gradient(135deg, rgba(140,109,255,0.20), rgba(54,197,214,0.14));
487 border-color: rgba(140,109,255,0.50);
486 background: linear-gradient(135deg, rgba(91,110,232,0.20), rgba(95,143,160,0.14));
487 border-color: rgba(91,110,232,0.50);
488488 color: #e9d5ff;
489 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.32);
489 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.32);
490490 }
491491 .audit-count {
492492 margin-bottom: 12px;
558558 font-family: var(--font-mono);
559559 font-size: 12px;
560560 color: var(--text-strong);
561 background: linear-gradient(135deg, rgba(140,109,255,0.10), rgba(54,197,214,0.06));
562 border: 1px solid rgba(140,109,255,0.22);
561 background: linear-gradient(135deg, rgba(91,110,232,0.10), rgba(95,143,160,0.06));
562 border: 1px solid rgba(91,110,232,0.22);
563563 padding: 3px 9px;
564564 border-radius: 9999px;
565565 }
632632 }
633633 .audit-card-meta summary::-webkit-details-marker { display: none; }
634634 .audit-card-meta summary:hover {
635 background: rgba(140,109,255,0.06);
636 border-color: rgba(140,109,255,0.32);
635 background: rgba(91,110,232,0.06);
636 border-color: rgba(91,110,232,0.32);
637637 }
638638 .audit-card-meta-preview {
639639 flex: 1;
Modifiedsrc/routes/auth.tsx+1−1View fileUnifiedSplit
407407 </Button>
408408 {/* SSO domain hint — shown dynamically when the typed email domain
409409 matches a known org SSO config. JS fetches /api/sso/domain-hint. */}
410 <div id="sso-domain-hint" style="display:none;margin-top:10px;padding:10px 12px;background:rgba(140,109,255,0.10);border:1px solid rgba(140,109,255,0.30);border-radius:8px;font-size:13px;color:var(--text)" aria-live="polite">
410 <div id="sso-domain-hint" style="display:none;margin-top:10px;padding:10px 12px;background:rgba(91,110,232,0.10);border:1px solid rgba(91,110,232,0.30);border-radius:8px;font-size:13px;color:var(--text)" aria-live="polite">
411411 Your organization uses SSO. You'll be redirected to sign in.
412412 </div>
413413 </Form>
Modifiedsrc/routes/automation-settings.tsx+4−4View fileUnifiedSplit
6262 position: absolute;
6363 top: 0; left: 0; right: 0;
6464 height: 2px;
65 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
65 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
6666 opacity: 0.7;
6767 pointer-events: none;
6868 }
175175 font-weight: 600;
176176 padding: 2px 8px;
177177 border-radius: 9999px;
178 background: rgba(140,109,255,0.12);
179 color: #b69dff;
178 background: rgba(91,110,232,0.12);
179 color: #5b6ee8;
180180 white-space: nowrap;
181181 }
182182 .automation-foot {
198198 align-items: center;
199199 gap: 7px;
200200 padding: 9px 18px;
201 background: linear-gradient(135deg, #8c6dff, #6c63ff);
201 background: linear-gradient(135deg, #5b6ee8, #6c63ff);
202202 color: #fff;
203203 border: none;
204204 border-radius: 9px;
Modifiedsrc/routes/billing-usage.tsx+13−13View fileUnifiedSplit
6161 .cost-hero::before {
6262 content: '';
6363 position: absolute; top: 0; left: 0; right: 0; height: 2px;
64 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
64 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
6565 opacity: 0.75; pointer-events: none;
6666 }
6767 .cost-orb {
6868 position: absolute;
6969 inset: -30% -10% auto auto;
7070 width: 460px; height: 460px;
71 background: radial-gradient(circle, rgba(140,109,255,0.22), rgba(54,197,214,0.10) 45%, transparent 70%);
71 background: radial-gradient(circle, rgba(91,110,232,0.22), rgba(95,143,160,0.10) 45%, transparent 70%);
7272 filter: blur(80px); opacity: 0.7;
7373 pointer-events: none; z-index: 0;
7474 }
8282 }
8383 .cost-eyebrow-dot {
8484 width: 8px; height: 8px; border-radius: 9999px;
85 background: linear-gradient(135deg, #8c6dff, #36c5d6);
86 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
85 background: linear-gradient(135deg, #5b6ee8, #5f8fa0);
86 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
8787 }
8888 .cost-eyebrow strong { color: var(--accent); font-weight: 600; letter-spacing: 0.04em; }
8989 .cost-title {
9696 color: var(--text-strong);
9797 }
9898 .cost-title-grad {
99 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
99 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
100100 -webkit-background-clip: text; background-clip: text;
101101 -webkit-text-fill-color: transparent; color: transparent;
102102 }
179179
180180 /* Trend chart */
181181 .cost-trend { width: 100%; height: 140px; display: block; }
182 .cost-trend-line { stroke: #8c6dff; stroke-width: 2; fill: none; }
182 .cost-trend-line { stroke: #5b6ee8; stroke-width: 2; fill: none; }
183183 .cost-trend-fill { fill: url(#cost-grad); opacity: 0.45; }
184184 .cost-trend-axis { stroke: var(--border); stroke-width: 1; opacity: 0.6; }
185185 .cost-trend-label { fill: var(--text-muted); font-family: var(--font-mono); font-size: 10px; }
192192 .cost-table tr:last-child td { border-bottom: none; }
193193 .cost-table .cost-cat-pill {
194194 display: inline-block; padding: 2px 8px; border-radius: 9999px; font-size: 11px;
195 background: rgba(140,109,255,0.12); color: #c4b5fd; border: 1px solid rgba(140,109,255,0.30);
195 background: rgba(91,110,232,0.12); color: #c4b5fd; border: 1px solid rgba(91,110,232,0.30);
196196 font-family: var(--font-mono);
197197 }
198198 .cost-empty { color: var(--text-muted); font-size: 13px; font-style: italic; padding: 6px 0; }
208208 }
209209 .cost-budget-form button {
210210 padding: 8px 16px; border-radius: 8px;
211 border: 1px solid rgba(140,109,255,0.40);
212 background: linear-gradient(135deg, rgba(140,109,255,0.20), rgba(54,197,214,0.12));
211 border: 1px solid rgba(91,110,232,0.40);
212 background: linear-gradient(135deg, rgba(91,110,232,0.20), rgba(95,143,160,0.12));
213213 color: var(--text-strong); font-weight: 600; cursor: pointer; font-size: 13px;
214214 }
215 .cost-budget-form button:hover { border-color: rgba(140,109,255,0.60); }
215 .cost-budget-form button:hover { border-color: rgba(91,110,232,0.60); }
216216 .cost-budget-note { margin-top: 10px; font-size: 12px; color: var(--text-muted); }
217217
218218 .cost-foot { margin-top: var(--space-5); padding-top: var(--space-4); border-top: 1px solid var(--border); font-size: 12.5px; color: var(--text-muted); text-align: center; }
221221 .cost-sublinks { display: flex; gap: var(--space-3); flex-wrap: wrap; font-size: 13px; margin-bottom: var(--space-4); }
222222 .cost-sublinks a { color: var(--text-muted); text-decoration: none; padding: 6px 12px; border-radius: 9px; border: 1px solid var(--border); background: rgba(255,255,255,0.02); }
223223 .cost-sublinks a:hover { color: var(--text-strong); border-color: var(--border-strong); }
224 .cost-sublinks a.is-current { color: var(--text-strong); border-color: rgba(140,109,255,0.45); background: rgba(140,109,255,0.08); }
224 .cost-sublinks a.is-current { color: var(--text-strong); border-color: rgba(91,110,232,0.45); background: rgba(91,110,232,0.08); }
225225`;
226226
227227/** Build the inline-SVG sparkline for the last N days. Pure function. */
441441 >
442442 <defs>
443443 <linearGradient id="cost-grad" x1="0" y1="0" x2="0" y2="1">
444 <stop offset="0%" stop-color="#8c6dff" stop-opacity="0.6" />
445 <stop offset="100%" stop-color="#36c5d6" stop-opacity="0.05" />
444 <stop offset="0%" stop-color="#5b6ee8" stop-opacity="0.6" />
445 <stop offset="100%" stop-color="#5f8fa0" stop-opacity="0.05" />
446446 </linearGradient>
447447 </defs>
448448 <line class="cost-trend-axis" x1="0" y1="100" x2="100" y2="100" />
Modifiedsrc/routes/billing.tsx+15−15View fileUnifiedSplit
6363 position: absolute;
6464 top: 0; left: 0; right: 0;
6565 height: 2px;
66 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
66 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
6767 opacity: 0.75;
6868 pointer-events: none;
6969 }
7171 position: absolute;
7272 inset: -30% -10% auto auto;
7373 width: 460px; height: 460px;
74 background: radial-gradient(circle, rgba(140,109,255,0.22), rgba(54,197,214,0.10) 45%, transparent 70%);
74 background: radial-gradient(circle, rgba(91,110,232,0.22), rgba(95,143,160,0.10) 45%, transparent 70%);
7575 filter: blur(80px);
7676 opacity: 0.7;
7777 pointer-events: none;
102102 .bill-eyebrow-dot {
103103 width: 8px; height: 8px;
104104 border-radius: 9999px;
105 background: linear-gradient(135deg, #8c6dff, #36c5d6);
106 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
105 background: linear-gradient(135deg, #5b6ee8, #5f8fa0);
106 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
107107 }
108108 .bill-eyebrow strong { color: var(--accent); font-weight: 600; letter-spacing: 0.04em; }
109109 .bill-title {
116116 color: var(--text-strong);
117117 }
118118 .bill-title-grad {
119 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
119 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
120120 -webkit-background-clip: text;
121121 background-clip: text;
122122 -webkit-text-fill-color: transparent;
191191 overflow: hidden;
192192 }
193193 .bill-current.is-featured {
194 border-color: rgba(140,109,255,0.40);
195 background: linear-gradient(180deg, rgba(140,109,255,0.05), var(--bg-elevated) 60%);
194 border-color: rgba(91,110,232,0.40);
195 background: linear-gradient(180deg, rgba(91,110,232,0.05), var(--bg-elevated) 60%);
196196 }
197197 .bill-current.is-featured::before {
198198 content: '';
199199 position: absolute;
200200 top: 0; left: 0; right: 0;
201201 height: 2px;
202 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
202 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
203203 opacity: 0.85;
204204 pointer-events: none;
205205 }
328328 transition: border-color 150ms ease, transform 150ms ease, box-shadow 150ms ease;
329329 }
330330 .bill-plan:hover {
331 border-color: rgba(140,109,255,0.45);
331 border-color: rgba(91,110,232,0.45);
332332 transform: translateY(-2px);
333 box-shadow: 0 10px 28px -10px rgba(140,109,255,0.30);
333 box-shadow: 0 10px 28px -10px rgba(91,110,232,0.30);
334334 }
335335 .bill-plan.is-current {
336336 border-color: rgba(52,211,153,0.50);
418418 width: 100%;
419419 }
420420 .bill-btn-primary {
421 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
421 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
422422 color: #ffffff;
423 box-shadow: 0 6px 18px -6px rgba(140,109,255,0.50), inset 0 1px 0 rgba(255,255,255,0.16);
423 box-shadow: 0 6px 18px -6px rgba(91,110,232,0.50), inset 0 1px 0 rgba(255,255,255,0.16);
424424 }
425425 .bill-btn-primary:hover {
426426 transform: translateY(-1px);
427 box-shadow: 0 10px 24px -8px rgba(140,109,255,0.60), inset 0 1px 0 rgba(255,255,255,0.20);
427 box-shadow: 0 10px 24px -8px rgba(91,110,232,0.60), inset 0 1px 0 rgba(255,255,255,0.20);
428428 color: #ffffff;
429429 text-decoration: none;
430430 }
435435 width: auto;
436436 }
437437 .bill-btn-ghost:hover {
438 background: rgba(140,109,255,0.06);
439 border-color: rgba(140,109,255,0.45);
438 background: rgba(91,110,232,0.06);
439 border-color: rgba(91,110,232,0.45);
440440 color: var(--text-strong);
441441 text-decoration: none;
442442 }
Modifiedsrc/routes/blog.tsx+6−6View fileUnifiedSplit
386386 position: absolute;
387387 top: 0; left: 0; right: 0;
388388 height: 2px;
389 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
389 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
390390 opacity: 0.78;
391391 pointer-events: none;
392392 }
394394 position: absolute;
395395 inset: -28% -10% auto auto;
396396 width: 520px; height: 520px;
397 background: radial-gradient(circle, rgba(140,109,255,0.22), rgba(54,197,214,0.10) 45%, transparent 70%);
397 background: radial-gradient(circle, rgba(91,110,232,0.22), rgba(95,143,160,0.10) 45%, transparent 70%);
398398 filter: blur(80px);
399399 opacity: 0.75;
400400 pointer-events: none;
418418 justify-content: center;
419419 width: 18px; height: 18px;
420420 border-radius: 6px;
421 background: rgba(140,109,255,0.14);
422 color: #b69dff;
423 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.35);
421 background: rgba(91,110,232,0.14);
422 color: #5b6ee8;
423 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.35);
424424 }
425425 .blog-hero-title {
426426 font-family: var(--font-display);
432432 color: var(--text-strong);
433433 }
434434 .blog-hero-grad {
435 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
435 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
436436 -webkit-background-clip: text;
437437 background-clip: text;
438438 -webkit-text-fill-color: transparent;
Modifiedsrc/routes/build-agent-spec.tsx+8−8View fileUnifiedSplit
3636 position: absolute;
3737 top: 0; left: 0; right: 0;
3838 height: 2px;
39 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
39 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
4040 opacity: 0.7;
4141 pointer-events: none;
4242 }
4444 position: absolute;
4545 inset: -20% -10% auto auto;
4646 width: 420px; height: 420px;
47 background: radial-gradient(circle, rgba(140,109,255,0.20), rgba(54,197,214,0.10) 45%, transparent 70%);
47 background: radial-gradient(circle, rgba(91,110,232,0.20), rgba(95,143,160,0.10) 45%, transparent 70%);
4848 filter: blur(80px);
4949 opacity: 0.7;
5050 pointer-events: none;
6666 justify-content: center;
6767 width: 18px; height: 18px;
6868 border-radius: 6px;
69 background: rgba(140,109,255,0.14);
70 color: #b69dff;
71 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.35);
69 background: rgba(91,110,232,0.14);
70 color: #5b6ee8;
71 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.35);
7272 }
7373 .ba-spec-title {
7474 font-size: clamp(28px, 4vw, 44px);
8080 color: var(--text-strong);
8181 }
8282 .ba-spec-title-grad {
83 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
83 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
8484 -webkit-background-clip: text;
8585 background-clip: text;
8686 -webkit-text-fill-color: transparent;
128128 .ba-spec-dot {
129129 width: 8px; height: 8px;
130130 border-radius: 9999px;
131 background: linear-gradient(135deg, #8c6dff, #36c5d6);
132 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
131 background: linear-gradient(135deg, #5b6ee8, #5f8fa0);
132 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
133133 }
134134 .ba-spec-copy {
135135 display: inline-flex;
Modifiedsrc/routes/changelog.tsx+1−1View fileUnifiedSplit
235235 height: 8px;
236236 border-radius: 50%;
237237 background: var(--accent);
238 box-shadow: 0 0 8px rgba(140,109,255,0.5);
238 box-shadow: 0 0 8px rgba(91,110,232,0.5);
239239}
240240.cl-entry-body {
241241 flex: 1;
Modifiedsrc/routes/claude-deploy.tsx+6−6View fileUnifiedSplit
9999 position: absolute;
100100 top: 0; left: 0; right: 0;
101101 height: 2px;
102 background: linear-gradient(90deg, transparent 0%, #f78c4d 30%, #8c6dff 70%, transparent 100%);
102 background: linear-gradient(90deg, transparent 0%, #f78c4d 30%, #5b6ee8 70%, transparent 100%);
103103 opacity: 0.75;
104104 pointer-events: none;
105105 }
107107 position: absolute;
108108 inset: -30% -10% auto auto;
109109 width: 460px; height: 460px;
110 background: radial-gradient(circle, rgba(247,140,77,0.20), rgba(140,109,255,0.12) 45%, transparent 70%);
110 background: radial-gradient(circle, rgba(247,140,77,0.20), rgba(91,110,232,0.12) 45%, transparent 70%);
111111 filter: blur(80px);
112112 opacity: 0.65;
113113 pointer-events: none;
138138 color: var(--text-strong);
139139 }
140140 .cldploy-title .gradient {
141 background-image: linear-gradient(135deg, #f78c4d 0%, #8c6dff 60%, #36c5d6 100%);
141 background-image: linear-gradient(135deg, #f78c4d 0%, #5b6ee8 60%, #5f8fa0 100%);
142142 -webkit-background-clip: text;
143143 background-clip: text;
144144 -webkit-text-fill-color: transparent;
169169 display: inline-flex; align-items: center; justify-content: center;
170170 width: 26px; height: 26px;
171171 border-radius: 50%;
172 background: linear-gradient(135deg, rgba(247,140,77,0.22), rgba(140,109,255,0.14));
172 background: linear-gradient(135deg, rgba(247,140,77,0.22), rgba(91,110,232,0.14));
173173 color: #ffc09f;
174174 border: 1px solid rgba(247,140,77,0.45);
175175 font-family: var(--font-display);
320320 .cldploy-btn:hover { border-color: var(--border-focus); transform: translateY(-1px); }
321321 .cldploy-btn-primary {
322322 border-color: rgba(247,140,77,0.55);
323 background: linear-gradient(135deg, rgba(247,140,77,0.22), rgba(140,109,255,0.14));
323 background: linear-gradient(135deg, rgba(247,140,77,0.22), rgba(91,110,232,0.14));
324324 color: var(--text-strong);
325325 font-weight: 600;
326326 }
400400 border: 1px solid transparent;
401401 }
402402 .cldploy-pill.is-running { background: rgba(63,185,80,0.10); color: #4cce6a; border-color: rgba(63,185,80,0.30); }
403 .cldploy-pill.is-paused { background: rgba(140,109,255,0.10); color: #b5a4ff; border-color: rgba(140,109,255,0.30); }
403 .cldploy-pill.is-paused { background: rgba(91,110,232,0.10); color: #b5a4ff; border-color: rgba(91,110,232,0.30); }
404404 .cldploy-pill.is-errored { background: rgba(248,81,73,0.10); color: #ff7e76; border-color: rgba(248,81,73,0.30); }
405405 .cldploy-pill-dot { width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
406406
Modifiedsrc/routes/code-scanning.tsx+10−10View fileUnifiedSplit
4646 position: absolute;
4747 top: 0; left: 0; right: 0;
4848 height: 2px;
49 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
49 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
5050 opacity: 0.75;
5151 pointer-events: none;
5252 }
5454 position: absolute;
5555 inset: -30% -15% auto auto;
5656 width: 460px; height: 460px;
57 background: radial-gradient(circle, rgba(140,109,255,0.22), rgba(54,197,214,0.10) 45%, transparent 70%);
57 background: radial-gradient(circle, rgba(91,110,232,0.22), rgba(95,143,160,0.10) 45%, transparent 70%);
5858 filter: blur(80px);
5959 opacity: 0.75;
6060 pointer-events: none;
7676 .sec-eyebrow-dot {
7777 width: 8px; height: 8px;
7878 border-radius: 9999px;
79 background: linear-gradient(135deg, #8c6dff, #36c5d6);
80 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
79 background: linear-gradient(135deg, #5b6ee8, #5f8fa0);
80 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
8181 }
8282 .sec-title {
8383 font-family: var(--font-display);
8989 color: var(--text-strong);
9090 }
9191 .sec-title-grad {
92 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
92 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
9393 -webkit-background-clip: text;
9494 background-clip: text;
9595 -webkit-text-fill-color: transparent;
111111 margin-bottom: var(--space-4);
112112 padding: 14px 18px;
113113 border-radius: 14px;
114 background: linear-gradient(135deg, rgba(52,211,153,0.10), rgba(54,197,214,0.06));
114 background: linear-gradient(135deg, rgba(52,211,153,0.10), rgba(95,143,160,0.06));
115115 border: 1px solid rgba(52,211,153,0.32);
116116 color: #bbf7d0;
117117 }
122122 display: inline-flex;
123123 align-items: center;
124124 justify-content: center;
125 background: linear-gradient(135deg, #34d399 0%, #36c5d6 100%);
125 background: linear-gradient(135deg, #34d399 0%, #5f8fa0 100%);
126126 color: #04231a;
127127 box-shadow: 0 0 0 4px rgba(52,211,153,0.16);
128128 }
216216 .sec-card:hover { border-color: var(--border-strong, var(--border)); transform: translateY(-1px); }
217217 .sec-card.is-passed { border-color: rgba(52,211,153,0.22); }
218218 .sec-card.is-failed { border-color: rgba(248,113,113,0.34); }
219 .sec-card.is-repaired { border-color: rgba(140,109,255,0.30); }
219 .sec-card.is-repaired { border-color: rgba(91,110,232,0.30); }
220220 .sec-card-row {
221221 display: flex;
222222 justify-content: space-between;
284284 .sec-pill .dot { width: 6px; height: 6px; border-radius: 9999px; background: currentColor; }
285285 .sec-pill.is-passed { background: rgba(52,211,153,0.14); color: #6ee7b7; box-shadow: inset 0 0 0 1px rgba(52,211,153,0.32); }
286286 .sec-pill.is-failed { background: rgba(248,113,113,0.12); color: #fca5a5; box-shadow: inset 0 0 0 1px rgba(248,113,113,0.34); }
287 .sec-pill.is-repaired { background: rgba(140,109,255,0.14); color: #c4b5fd; box-shadow: inset 0 0 0 1px rgba(140,109,255,0.34); }
287 .sec-pill.is-repaired { background: rgba(91,110,232,0.14); color: #c4b5fd; box-shadow: inset 0 0 0 1px rgba(91,110,232,0.34); }
288288 .sec-pill.is-skipped { background: rgba(148,163,184,0.10); color: #cbd5e1; box-shadow: inset 0 0 0 1px rgba(148,163,184,0.28); }
289289 .sec-pill.is-pending,
290290 .sec-pill.is-running { background: rgba(251,191,36,0.10); color: #fde68a; box-shadow: inset 0 0 0 1px rgba(251,191,36,0.30); }
305305 position: absolute;
306306 inset: -40% -20% auto auto;
307307 width: 320px; height: 320px;
308 background: radial-gradient(circle, rgba(140,109,255,0.14), rgba(54,197,214,0.06) 45%, transparent 70%);
308 background: radial-gradient(circle, rgba(91,110,232,0.14), rgba(95,143,160,0.06) 45%, transparent 70%);
309309 filter: blur(60px);
310310 pointer-events: none;
311311 }
Modifiedsrc/routes/collaborators.tsx+22−22View fileUnifiedSplit
108108 .collab-eyebrow-dot {
109109 width: 8px; height: 8px;
110110 border-radius: 9999px;
111 background: linear-gradient(135deg, #8c6dff, #36c5d6);
112 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
111 background: linear-gradient(135deg, #5b6ee8, #5f8fa0);
112 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
113113 }
114114 .collab-title {
115115 font-family: var(--font-display);
121121 color: var(--text-strong);
122122 }
123123 .collab-title-grad {
124 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
124 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
125125 -webkit-background-clip: text;
126126 background-clip: text;
127127 -webkit-text-fill-color: transparent;
179179 position: absolute;
180180 top: 0; left: 0; right: 0;
181181 height: 2px;
182 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
182 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
183183 opacity: 0.55;
184184 pointer-events: none;
185185 }
210210 justify-content: center;
211211 width: 26px; height: 26px;
212212 border-radius: 8px;
213 background: rgba(140,109,255,0.12);
214 color: #b69dff;
215 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.28);
213 background: rgba(91,110,232,0.12);
214 color: #5b6ee8;
215 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.28);
216216 flex-shrink: 0;
217217 }
218218 .collab-section-sub {
258258 .collab-input:focus,
259259 .collab-select:focus {
260260 outline: none;
261 border-color: rgba(140,109,255,0.55);
261 border-color: rgba(91,110,232,0.55);
262262 background: rgba(255,255,255,0.05);
263 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
263 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
264264 }
265265 .collab-select { appearance: none; padding-right: 28px; background-image: linear-gradient(45deg, transparent 50%, var(--text-muted) 50%), linear-gradient(135deg, var(--text-muted) 50%, transparent 50%); background-position: right 12px top 50%, right 7px top 50%; background-size: 5px 5px, 5px 5px; background-repeat: no-repeat; }
266266
283283 white-space: nowrap;
284284 }
285285 .collab-btn-primary {
286 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
286 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
287287 color: #ffffff;
288 box-shadow: 0 6px 18px -6px rgba(140,109,255,0.50), inset 0 1px 0 rgba(255,255,255,0.16);
288 box-shadow: 0 6px 18px -6px rgba(91,110,232,0.50), inset 0 1px 0 rgba(255,255,255,0.16);
289289 }
290290 .collab-btn-primary:hover {
291291 transform: translateY(-1px);
292 box-shadow: 0 10px 24px -8px rgba(140,109,255,0.60), inset 0 1px 0 rgba(255,255,255,0.20);
292 box-shadow: 0 10px 24px -8px rgba(91,110,232,0.60), inset 0 1px 0 rgba(255,255,255,0.20);
293293 text-decoration: none;
294294 color: #ffffff;
295295 }
299299 border-color: var(--border-strong);
300300 }
301301 .collab-btn-ghost:hover {
302 background: rgba(140,109,255,0.06);
303 border-color: rgba(140,109,255,0.45);
302 background: rgba(91,110,232,0.06);
303 border-color: rgba(91,110,232,0.45);
304304 color: var(--text-strong);
305305 text-decoration: none;
306306 }
370370 .collab-avatar {
371371 width: 44px; height: 44px;
372372 border-radius: 9999px;
373 background: linear-gradient(135deg, rgba(140,109,255,0.30), rgba(54,197,214,0.25));
373 background: linear-gradient(135deg, rgba(91,110,232,0.30), rgba(95,143,160,0.25));
374374 color: #ffffff;
375375 display: inline-flex;
376376 align-items: center;
435435 }
436436 .collab-pill .dot { width: 6px; height: 6px; border-radius: 9999px; background: currentColor; }
437437 .collab-pill.is-admin {
438 background: rgba(140,109,255,0.16);
438 background: rgba(91,110,232,0.16);
439439 color: #c4b5fd;
440 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.32);
440 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.32);
441441 }
442442 .collab-pill.is-write {
443 background: rgba(54,197,214,0.14);
443 background: rgba(95,143,160,0.14);
444444 color: #67e8f9;
445 box-shadow: inset 0 0 0 1px rgba(54,197,214,0.32);
445 box-shadow: inset 0 0 0 1px rgba(95,143,160,0.32);
446446 }
447447 .collab-pill.is-read {
448448 background: rgba(148,163,184,0.16);
478478 position: absolute;
479479 inset: -40% 30% auto 30%;
480480 height: 280px;
481 background: radial-gradient(circle, rgba(140,109,255,0.18), rgba(54,197,214,0.10) 45%, transparent 70%);
481 background: radial-gradient(circle, rgba(91,110,232,0.18), rgba(95,143,160,0.10) 45%, transparent 70%);
482482 filter: blur(70px);
483483 opacity: 0.7;
484484 pointer-events: none;
488488 .collab-empty-icon {
489489 width: 56px; height: 56px;
490490 border-radius: 9999px;
491 background: linear-gradient(135deg, rgba(140,109,255,0.25), rgba(54,197,214,0.20));
492 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.40);
491 background: linear-gradient(135deg, rgba(91,110,232,0.25), rgba(95,143,160,0.20));
492 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.40);
493493 display: inline-flex;
494494 align-items: center;
495495 justify-content: center;
Modifiedsrc/routes/comment-moderation.tsx+2−2View fileUnifiedSplit
4646 margin: 12px 0 18px;
4747 padding: 18px 22px;
4848 border-radius: 14px;
49 background: linear-gradient(135deg, rgba(245, 191, 79, 0.10), rgba(140, 109, 255, 0.06));
49 background: linear-gradient(135deg, rgba(245, 191, 79, 0.10), rgba(91,110,232, 0.06));
5050 border: 1px solid var(--border, #2a2f3a);
5151 }
5252 .modq-head h1 {
110110 }
111111 .modq-avatar img { width: 100%; height: 100%; object-fit: cover; }
112112 .modq-username { color: var(--text-strong, #fff); font-weight: 600; }
113 .modq-target { color: var(--accent, #8c6dff); text-decoration: none; }
113 .modq-target { color: var(--accent, #5b6ee8); text-decoration: none; }
114114 .modq-target:hover { text-decoration: underline; }
115115 .modq-body {
116116 padding: 10px 12px;
Modifiedsrc/routes/compare.tsx+18−18View fileUnifiedSplit
5252 content: '';
5353 position: absolute; top: 0; left: 0; right: 0;
5454 height: 2px;
55 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
55 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
5656 opacity: 0.7;
5757 pointer-events: none;
5858 }
7777 color: var(--text-strong);
7878 }
7979 .compare-title .gradient-text {
80 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
80 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
8181 -webkit-background-clip: text;
8282 background-clip: text;
8383 -webkit-text-fill-color: transparent;
112112 transition: border-color 140ms ease, box-shadow 160ms ease;
113113 }
114114 .compare-branch-card:focus-within {
115 border-color: rgba(140,109,255,0.55);
116 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
115 border-color: rgba(91,110,232,0.55);
116 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
117117 }
118118 .compare-branch-label {
119119 display: flex;
131131 font-size: 12px;
132132 }
133133 .compare-branch-card.is-base .compare-branch-label strong { color: #ff9d76; }
134 .compare-branch-card.is-head .compare-branch-label strong { color: #b69dff; }
134 .compare-branch-card.is-head .compare-branch-label strong { color: #5b6ee8; }
135135 .compare-branch-select {
136136 appearance: none;
137137 -webkit-appearance: none;
152152 transition: border-color 140ms ease, background-color 140ms ease;
153153 }
154154 .compare-branch-select:hover { border-color: var(--border-strong); }
155 .compare-branch-select:focus { outline: none; border-color: rgba(140,109,255,0.55); }
155 .compare-branch-select:focus { outline: none; border-color: rgba(91,110,232,0.55); }
156156 .compare-branch-arrow {
157157 flex: 0 0 auto;
158158 align-self: center;
159159 display: inline-flex; align-items: center; justify-content: center;
160160 width: 36px; height: 36px;
161161 border-radius: 9999px;
162 background: linear-gradient(135deg, rgba(140,109,255,0.18), rgba(54,197,214,0.16));
163 border: 1px solid rgba(140,109,255,0.30);
162 background: linear-gradient(135deg, rgba(91,110,232,0.18), rgba(95,143,160,0.16));
163 border: 1px solid rgba(91,110,232,0.30);
164164 color: var(--text-strong);
165165 font-size: 16px;
166166 line-height: 1;
167167 font-weight: 700;
168 box-shadow: 0 0 18px -8px rgba(140,109,255,0.45);
168 box-shadow: 0 0 18px -8px rgba(91,110,232,0.45);
169169 }
170170 @media (max-width: 720px) {
171171 .compare-branch-arrow { align-self: flex-start; transform: rotate(90deg); }
180180 font-size: 13.5px;
181181 font-weight: 600;
182182 color: #fff;
183 background: linear-gradient(135deg, #8c6dff 0%, #6f5be8 60%, #36c5d6 140%);
184 border: 1px solid rgba(140,109,255,0.55);
185 box-shadow: 0 6px 18px -8px rgba(140,109,255,0.55);
183 background: linear-gradient(135deg, #5b6ee8 0%, #6f5be8 60%, #5f8fa0 140%);
184 border: 1px solid rgba(91,110,232,0.55);
185 box-shadow: 0 6px 18px -8px rgba(91,110,232,0.55);
186186 text-decoration: none;
187187 cursor: pointer;
188188 transition: transform 120ms ease, box-shadow 160ms ease, filter 160ms ease;
189189 }
190190 .compare-cta:hover {
191191 transform: translateY(-1px);
192 box-shadow: 0 10px 22px -6px rgba(140,109,255,0.6);
192 box-shadow: 0 10px 22px -6px rgba(91,110,232,0.6);
193193 color: #fff;
194194 }
195195 .compare-cta.is-disabled,
249249 }
250250 .compare-stat-badge.is-files {
251251 color: var(--text-link);
252 border-color: rgba(140,109,255,0.32);
253 background: rgba(140,109,255,0.08);
252 border-color: rgba(91,110,232,0.32);
253 background: rgba(91,110,232,0.08);
254254 }
255255
256256 /* Diff stats bar — +/- counts */
344344 transition: border-color 140ms ease, color 140ms ease;
345345 }
346346 .compare-commit-sha:hover {
347 border-color: rgba(140,109,255,0.45);
347 border-color: rgba(91,110,232,0.45);
348348 color: var(--text-link);
349349 }
350350
374374 display: inline-flex; align-items: center; justify-content: center;
375375 width: 44px; height: 44px;
376376 border-radius: 9999px;
377 background: linear-gradient(135deg, rgba(140,109,255,0.16), rgba(54,197,214,0.14));
378 border: 1px solid rgba(140,109,255,0.28);
377 background: linear-gradient(135deg, rgba(91,110,232,0.16), rgba(95,143,160,0.14));
378 border: 1px solid rgba(91,110,232,0.28);
379379 color: var(--text-strong);
380380 font-size: 18px;
381381 margin: 0 auto 12px;
Modifiedsrc/routes/connect-claude.tsx+12−12View fileUnifiedSplit
313313 position: absolute;
314314 top: 0; left: 0; right: 0;
315315 height: 2px;
316 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
316 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
317317 opacity: 0.75;
318318 pointer-events: none;
319319 }
321321 position: absolute;
322322 inset: -30% -10% auto auto;
323323 width: 460px; height: 460px;
324 background: radial-gradient(circle, rgba(140,109,255,0.20), rgba(54,197,214,0.10) 45%, transparent 70%);
324 background: radial-gradient(circle, rgba(91,110,232,0.20), rgba(95,143,160,0.10) 45%, transparent 70%);
325325 filter: blur(80px);
326326 opacity: 0.65;
327327 pointer-events: none;
354354 color: var(--text-strong);
355355 }
356356 .connect-claude-title .gradient {
357 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
357 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
358358 -webkit-background-clip: text;
359359 background-clip: text;
360360 -webkit-text-fill-color: transparent;
391391 justify-content: center;
392392 width: 26px; height: 26px;
393393 border-radius: 50%;
394 background: linear-gradient(135deg, rgba(140,109,255,0.20), rgba(54,197,214,0.14));
394 background: linear-gradient(135deg, rgba(91,110,232,0.20), rgba(95,143,160,0.14));
395395 color: #c5b3ff;
396 border: 1px solid rgba(140,109,255,0.40);
396 border: 1px solid rgba(91,110,232,0.40);
397397 font-family: var(--font-display);
398398 font-weight: 700;
399399 font-size: 13px;
445445 transform: translateY(-1px);
446446 }
447447 .connect-claude-btn-primary {
448 border-color: rgba(140,109,255,0.45);
449 background: linear-gradient(135deg, rgba(140,109,255,0.18), rgba(54,197,214,0.12));
448 border-color: rgba(91,110,232,0.45);
449 background: linear-gradient(135deg, rgba(91,110,232,0.18), rgba(95,143,160,0.12));
450450 color: var(--text-strong);
451451 }
452452 .connect-claude-btn-primary:hover {
453 border-color: rgba(140,109,255,0.65);
454 background: linear-gradient(135deg, rgba(140,109,255,0.26), rgba(54,197,214,0.18));
453 border-color: rgba(91,110,232,0.65);
454 background: linear-gradient(135deg, rgba(91,110,232,0.26), rgba(95,143,160,0.18));
455455 }
456456 .connect-claude-token-display {
457457 flex: 1;
507507 transform: translateY(-1px);
508508 }
509509 .connect-claude-option.is-recommended {
510 border-color: rgba(140,109,255,0.45);
511 background: linear-gradient(180deg, rgba(140,109,255,0.06), var(--bg-secondary) 60%);
510 border-color: rgba(91,110,232,0.45);
511 background: linear-gradient(180deg, rgba(91,110,232,0.06), var(--bg-secondary) 60%);
512512 }
513513 .connect-claude-option-badge {
514514 position: absolute;
515515 top: -10px; right: 12px;
516516 padding: 2px 8px;
517 background: linear-gradient(135deg, #8c6dff, #36c5d6);
517 background: linear-gradient(135deg, #5b6ee8, #5f8fa0);
518518 color: #fff;
519519 border-radius: 999px;
520520 font-size: 11px;
Modifiedsrc/routes/connect.tsx+10−10View fileUnifiedSplit
5555 position: absolute;
5656 top: 0; left: 0; right: 0;
5757 height: 2px;
58 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
58 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
5959 pointer-events: none;
6060 }
6161 .cg-hero-orb {
6262 position: absolute;
6363 inset: -20% -5% auto auto;
6464 width: 420px; height: 420px;
65 background: radial-gradient(circle, rgba(140,109,255,0.20), rgba(54,197,214,0.10) 45%, transparent 70%);
65 background: radial-gradient(circle, rgba(91,110,232,0.20), rgba(95,143,160,0.10) 45%, transparent 70%);
6666 filter: blur(80px);
6767 opacity: 0.6;
6868 pointer-events: none;
8484 display: inline-block;
8585 padding: 3px 10px;
8686 border-radius: 999px;
87 border: 1px solid rgba(140,109,255,0.35);
88 background: rgba(140,109,255,0.10);
87 border: 1px solid rgba(91,110,232,0.35);
88 background: rgba(91,110,232,0.10);
8989 color: #c5b3ff;
9090 font-size: 12px;
9191 font-weight: 600;
103103 color: var(--text-strong);
104104 }
105105 .cg-hero-title .gradient {
106 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
106 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
107107 -webkit-background-clip: text;
108108 background-clip: text;
109109 -webkit-text-fill-color: transparent;
121121 gap: 8px;
122122 padding: 11px 20px;
123123 border-radius: 10px;
124 border: 1px solid rgba(140,109,255,0.45);
125 background: linear-gradient(135deg, rgba(140,109,255,0.18), rgba(54,197,214,0.12));
124 border: 1px solid rgba(91,110,232,0.45);
125 background: linear-gradient(135deg, rgba(91,110,232,0.18), rgba(95,143,160,0.12));
126126 color: var(--text-strong);
127127 font-size: 14px;
128128 font-weight: 600;
130130 transition: border-color 150ms ease, background 150ms ease, transform 150ms ease;
131131 }
132132 .cg-hero-cta:hover {
133 border-color: rgba(140,109,255,0.65);
133 border-color: rgba(91,110,232,0.65);
134134 transform: translateY(-1px);
135135 text-decoration: none;
136136 }
163163 flex-shrink: 0;
164164 width: 30px; height: 30px;
165165 border-radius: 50%;
166 background: linear-gradient(135deg, rgba(140,109,255,0.22), rgba(54,197,214,0.16));
167 border: 1px solid rgba(140,109,255,0.40);
166 background: linear-gradient(135deg, rgba(91,110,232,0.22), rgba(95,143,160,0.16));
167 border: 1px solid rgba(91,110,232,0.40);
168168 color: #c5b3ff;
169169 font-family: var(--font-display);
170170 font-weight: 700;
Modifiedsrc/routes/contributors.tsx+15−15View fileUnifiedSplit
412412 .contrib-eyebrow-dot {
413413 width: 8px; height: 8px;
414414 border-radius: 9999px;
415 background: linear-gradient(135deg, #8c6dff, #36c5d6);
416 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
415 background: linear-gradient(135deg, #5b6ee8, #5f8fa0);
416 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
417417 }
418418 .contrib-title {
419419 font-family: var(--font-display);
425425 color: var(--text-strong);
426426 }
427427 .contrib-title-grad {
428 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
428 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
429429 -webkit-background-clip: text;
430430 background-clip: text;
431431 -webkit-text-fill-color: transparent;
469469 position: absolute;
470470 top: 0; left: 0; right: 0;
471471 height: 1px;
472 background: linear-gradient(90deg, transparent, rgba(140,109,255,0.40), rgba(54,197,214,0.30), transparent);
472 background: linear-gradient(90deg, transparent, rgba(91,110,232,0.40), rgba(95,143,160,0.30), transparent);
473473 opacity: 0.55;
474474 pointer-events: none;
475475 }
507507 position: absolute;
508508 top: 0; left: 0; right: 0;
509509 height: 2px;
510 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
510 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
511511 opacity: 0.55;
512512 pointer-events: none;
513513 }
538538 justify-content: center;
539539 width: 26px; height: 26px;
540540 border-radius: 8px;
541 background: rgba(140,109,255,0.12);
542 color: #b69dff;
543 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.28);
541 background: rgba(91,110,232,0.12);
542 color: #5b6ee8;
543 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.28);
544544 flex-shrink: 0;
545545 }
546546 .contrib-section-sub {
562562 .contrib-spark-bar {
563563 flex: 1;
564564 min-width: 0;
565 background: linear-gradient(180deg, #8c6dff 0%, #36c5d6 100%);
565 background: linear-gradient(180deg, #5b6ee8 0%, #5f8fa0 100%);
566566 border-radius: 2px 2px 1px 1px;
567567 transition: opacity 120ms ease, transform 120ms ease;
568568 }
615615 .contrib-avatar {
616616 width: 44px; height: 44px;
617617 border-radius: 9999px;
618 background: linear-gradient(135deg, rgba(140,109,255,0.30), rgba(54,197,214,0.25));
618 background: linear-gradient(135deg, rgba(91,110,232,0.30), rgba(95,143,160,0.25));
619619 color: #ffffff;
620620 display: inline-flex;
621621 align-items: center;
682682 }
683683 .contrib-pill .dot { width: 6px; height: 6px; border-radius: 9999px; background: currentColor; }
684684 .contrib-pill.is-maintainer {
685 background: rgba(140,109,255,0.16);
685 background: rgba(91,110,232,0.16);
686686 color: #c4b5fd;
687 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.32);
687 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.32);
688688 }
689689 .contrib-pill.is-contributor {
690690 background: rgba(148,163,184,0.16);
706706 position: absolute;
707707 inset: -40% 30% auto 30%;
708708 height: 280px;
709 background: radial-gradient(circle, rgba(140,109,255,0.18), rgba(54,197,214,0.10) 45%, transparent 70%);
709 background: radial-gradient(circle, rgba(91,110,232,0.18), rgba(95,143,160,0.10) 45%, transparent 70%);
710710 filter: blur(70px);
711711 opacity: 0.7;
712712 pointer-events: none;
716716 .contrib-empty-icon {
717717 width: 56px; height: 56px;
718718 border-radius: 9999px;
719 background: linear-gradient(135deg, rgba(140,109,255,0.25), rgba(54,197,214,0.20));
720 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.40);
719 background: linear-gradient(135deg, rgba(91,110,232,0.25), rgba(95,143,160,0.20));
720 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.40);
721721 display: inline-flex;
722722 align-items: center;
723723 justify-content: center;
Modifiedsrc/routes/cross-repo-search.tsx+21−21View fileUnifiedSplit
422422 position: absolute;
423423 top: 0; left: 0; right: 0;
424424 height: 2px;
425 background: linear-gradient(90deg,transparent 0%,#8c6dff 30%,#36c5d6 70%,transparent 100%);
425 background: linear-gradient(90deg,transparent 0%,#5b6ee8 30%,#5f8fa0 70%,transparent 100%);
426426 opacity: 0.7;
427427 pointer-events: none;
428428}
430430 position: absolute;
431431 inset: -30% -10% auto auto;
432432 width: 340px; height: 340px;
433 background: radial-gradient(circle,rgba(140,109,255,0.18),rgba(54,197,214,0.09) 45%,transparent 70%);
433 background: radial-gradient(circle,rgba(91,110,232,0.18),rgba(95,143,160,0.09) 45%,transparent 70%);
434434 filter: blur(80px);
435435 opacity: 0.7;
436436 pointer-events: none;
503503.crs-input::placeholder { color: var(--text-muted); }
504504.crs-input:focus {
505505 outline: none;
506 border-color: rgba(140,109,255,0.55);
507 box-shadow: 0 0 0 3px rgba(140,109,255,0.12);
506 border-color: rgba(91,110,232,0.55);
507 box-shadow: 0 0 0 3px rgba(91,110,232,0.12);
508508}
509509.crs-select {
510510 padding: 12px 14px;
519519}
520520.crs-select:focus {
521521 outline: none;
522 border-color: rgba(140,109,255,0.55);
522 border-color: rgba(91,110,232,0.55);
523523}
524524.crs-btn {
525525 display: inline-flex;
531531 font: inherit;
532532 font-size: 14px;
533533 font-weight: 600;
534 background: linear-gradient(135deg,#8c6dff 0%,#36c5d6 100%);
534 background: linear-gradient(135deg,#5b6ee8 0%,#5f8fa0 100%);
535535 color: #fff;
536536 border: none;
537537 cursor: pointer;
538538 transition: transform 120ms ease, box-shadow 120ms ease;
539 box-shadow: 0 6px 18px -6px rgba(140,109,255,0.5);
539 box-shadow: 0 6px 18px -6px rgba(91,110,232,0.5);
540540 white-space: nowrap;
541541}
542542.crs-btn:hover {
543543 transform: translateY(-1px);
544 box-shadow: 0 10px 24px -8px rgba(140,109,255,0.65);
544 box-shadow: 0 10px 24px -8px rgba(91,110,232,0.65);
545545}
546546/* ─── Tabs (back-link to global /search) ─── */
547547.crs-tabs {
567567}
568568.crs-tab:hover { color: var(--text-strong); text-decoration: none; }
569569.crs-tab.is-active {
570 background: rgba(140,109,255,0.14);
570 background: rgba(91,110,232,0.14);
571571 color: var(--text-strong);
572572}
573573/* ─── Stats bar ─── */
589589 border-radius: 9999px;
590590 font-size: 11px;
591591 font-weight: 600;
592 background: rgba(140,109,255,0.12);
592 background: rgba(91,110,232,0.12);
593593 color: #c4b5fd;
594 border: 1px solid rgba(140,109,255,0.28);
594 border: 1px solid rgba(91,110,232,0.28);
595595}
596596.crs-badge-grep {
597 background: rgba(54,197,214,0.10);
597 background: rgba(95,143,160,0.10);
598598 color: #67e8f9;
599 border-color: rgba(54,197,214,0.28);
599 border-color: rgba(95,143,160,0.28);
600600}
601601/* ─── Repo group ─── */
602602.crs-groups { display: flex; flex-direction: column; gap: 16px; }
617617.crs-group-avatar {
618618 width: 28px; height: 28px;
619619 border-radius: 8px;
620 background: linear-gradient(135deg,#8c6dff,#36c5d6);
620 background: linear-gradient(135deg,#5b6ee8,#5f8fa0);
621621 display: inline-flex;
622622 align-items: center;
623623 justify-content: center;
679679 color: var(--text);
680680}
681681.crs-mark {
682 background: rgba(140,109,255,0.25);
682 background: rgba(91,110,232,0.25);
683683 color: var(--text-strong);
684684 border-radius: 3px;
685685 padding: 0 2px;
700700 position: absolute;
701701 top: 0; left: 0; right: 0;
702702 height: 2px;
703 background: linear-gradient(90deg,transparent 0%,#8c6dff 30%,#36c5d6 70%,transparent 100%);
703 background: linear-gradient(90deg,transparent 0%,#5b6ee8 30%,#5f8fa0 70%,transparent 100%);
704704 opacity: 0.55;
705705 pointer-events: none;
706706}
740740 text-decoration: none;
741741 transition: border-color 120ms ease, background 120ms ease;
742742}
743.crs-page-btn:hover { border-color: rgba(140,109,255,0.45); background: rgba(140,109,255,0.06); text-decoration: none; }
743.crs-page-btn:hover { border-color: rgba(91,110,232,0.45); background: rgba(91,110,232,0.06); text-decoration: none; }
744744.crs-page-btn.is-active {
745 background: rgba(140,109,255,0.14);
746 border-color: rgba(140,109,255,0.45);
745 background: rgba(91,110,232,0.14);
746 border-color: rgba(91,110,232,0.45);
747747 color: var(--text-strong);
748748}
749749.crs-page-btn[aria-disabled="true"] {
846846 >
847847 <defs>
848848 <linearGradient id="crsIdleG" x1="0" y1="0" x2="96" y2="96" gradientUnits="userSpaceOnUse">
849 <stop stop-color="#8c6dff" />
850 <stop offset="1" stop-color="#36c5d6" />
849 <stop stop-color="#5b6ee8" />
850 <stop offset="1" stop-color="#5f8fa0" />
851851 </linearGradient>
852852 </defs>
853853 <path d="M30 28L14 48L30 68" stroke="url(#crsIdleG)" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" />
Modifiedsrc/routes/dashboard.tsx+12−12View fileUnifiedSplit
600600 position: absolute;
601601 top: 0; left: 0; right: 0;
602602 height: 2px;
603 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
603 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
604604 opacity: 0.7;
605605 pointer-events: none;
606606 }
615615 .dash-hero-orb {
616616 position: absolute;
617617 inset: 0;
618 background: radial-gradient(circle, rgba(140,109,255,0.20), rgba(54,197,214,0.10) 45%, transparent 70%);
618 background: radial-gradient(circle, rgba(91,110,232,0.20), rgba(95,143,160,0.10) 45%, transparent 70%);
619619 filter: blur(80px);
620620 opacity: 0.7;
621621 animation: dashHeroOrb 14s ease-in-out infinite;
657657 color: var(--text-strong);
658658 }
659659 .dash-hero-title .gradient-text {
660 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
660 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
661661 -webkit-background-clip: text;
662662 background-clip: text;
663663 -webkit-text-fill-color: transparent;
12391239 </div>
12401240 {total > 0 && (
12411241 <span
1242 style="font-size:11px;font-weight:700;padding:2px 8px;border-radius:9999px;background:rgba(140,109,255,0.14);color:var(--accent);border:1px solid rgba(140,109,255,0.25)"
1242 style="font-size:11px;font-weight:700;padding:2px 8px;border-radius:9999px;background:rgba(91,110,232,0.14);color:var(--accent);border:1px solid rgba(91,110,232,0.25)"
12431243 >
12441244 {total} action{total === 1 ? "" : "s"}
12451245 </span>
12651265 {summaryParts.map((p) => (
12661266 <span
12671267 class="badge"
1268 style="font-size:12px;padding:3px 9px;background:rgba(140,109,255,0.08);border-color:rgba(140,109,255,0.22);color:var(--text)"
1268 style="font-size:12px;padding:3px 9px;background:rgba(91,110,232,0.08);border-color:rgba(91,110,232,0.22);color:var(--text)"
12691269 >
12701270 {p}
12711271 </span>
14411441 {weekPills.map((p) => (
14421442 <span
14431443 class="badge"
1444 style="font-size:12px;padding:4px 10px;background:rgba(140,109,255,0.10);border-color:var(--accent);color:var(--text)"
1444 style="font-size:12px;padding:4px 10px;background:rgba(91,110,232,0.10);border-color:var(--accent);color:var(--text)"
14451445 >
14461446 {p}
14471447 </span>
17911791 position: absolute;
17921792 top: 0; left: 0; right: 0;
17931793 height: 1px;
1794 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
1794 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
17951795 opacity: 0.65;
17961796 pointer-events: none;
17971797 }
18351835 position: absolute;
18361836 top: 0; left: 0; right: 0;
18371837 height: 1px;
1838 background: linear-gradient(90deg, transparent 0%, rgba(140,109,255,0.55) 30%, rgba(54,197,214,0.55) 70%, transparent 100%);
1838 background: linear-gradient(90deg, transparent 0%, rgba(91,110,232,0.55) 30%, rgba(95,143,160,0.55) 70%, transparent 100%);
18391839 opacity: 0;
18401840 transition: opacity 160ms ease;
18411841 }
18421842 .qa-card:hover {
1843 border-color: rgba(140,109,255,0.40);
1843 border-color: rgba(91,110,232,0.40);
18441844 text-decoration: none;
18451845 transform: translateY(-1px);
1846 background: linear-gradient(180deg, rgba(140,109,255,0.04), transparent);
1846 background: linear-gradient(180deg, rgba(91,110,232,0.04), transparent);
18471847 }
18481848 .qa-card:hover::before { opacity: 1; }
18491849 .qa-card-label {
18651865 align-items: center;
18661866 justify-content: center;
18671867 border-radius: 5px;
1868 background: linear-gradient(135deg, rgba(140,109,255,0.18), rgba(54,197,214,0.14));
1869 color: #b69dff;
1868 background: linear-gradient(135deg, rgba(91,110,232,0.18), rgba(95,143,160,0.14));
1869 color: #5b6ee8;
18701870 font-size: 11px;
18711871 font-weight: 700;
18721872 flex-shrink: 0;
Modifiedsrc/routes/debt-map.tsx+4−4View fileUnifiedSplit
451451 align-items: center;
452452 gap: 12px;
453453 padding: var(--space-3) var(--space-4);
454 background: rgba(140,109,255,0.08);
455 border: 1px solid rgba(140,109,255,0.25);
454 background: rgba(91,110,232,0.08);
455 border: 1px solid rgba(91,110,232,0.25);
456456 border-radius: 10px;
457457 margin-bottom: var(--space-4);
458458 font-size: 13px;
460460 }
461461 .dm-spinner {
462462 width: 16px; height: 16px;
463 border: 2px solid rgba(140,109,255,0.3);
464 border-top-color: #8c6dff;
463 border: 2px solid rgba(91,110,232,0.3);
464 border-top-color: #5b6ee8;
465465 border-radius: 9999px;
466466 animation: dm-spin 0.8s linear infinite;
467467 flex-shrink: 0;
Modifiedsrc/routes/demo.tsx+20−20View fileUnifiedSplit
551551 position: absolute;
552552 top: 0; left: 0; right: 0;
553553 height: 2px;
554 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
554 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
555555 opacity: 0.7;
556556 pointer-events: none;
557557 }
559559 position: absolute;
560560 inset: -25% -10% auto auto;
561561 width: 480px; height: 480px;
562 background: radial-gradient(circle, rgba(140,109,255,0.22), rgba(54,197,214,0.10) 45%, transparent 70%);
562 background: radial-gradient(circle, rgba(91,110,232,0.22), rgba(95,143,160,0.10) 45%, transparent 70%);
563563 filter: blur(80px);
564564 opacity: 0.7;
565565 pointer-events: none;
598598 color: var(--text-strong);
599599 }
600600 .demo-page-title-grad {
601 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
601 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
602602 -webkit-background-clip: text;
603603 background-clip: text;
604604 -webkit-text-fill-color: transparent;
636636 text-decoration: none;
637637 }
638638 .demo-page-btn-primary {
639 border-color: rgba(140,109,255,0.45);
640 background: linear-gradient(135deg, rgba(140,109,255,0.20), rgba(54,197,214,0.14));
639 border-color: rgba(91,110,232,0.45);
640 background: linear-gradient(135deg, rgba(91,110,232,0.20), rgba(95,143,160,0.14));
641641 color: var(--text-strong);
642642 }
643643 .demo-page-btn-primary:hover {
644 border-color: rgba(140,109,255,0.65);
645 background: linear-gradient(135deg, rgba(140,109,255,0.28), rgba(54,197,214,0.20));
644 border-color: rgba(91,110,232,0.65);
645 background: linear-gradient(135deg, rgba(91,110,232,0.28), rgba(95,143,160,0.20));
646646 }
647647 .demo-page-reset {
648648 padding: 6px 12px;
730730 justify-content: center;
731731 width: 28px; height: 28px;
732732 border-radius: 50%;
733 background: linear-gradient(135deg, rgba(140,109,255,0.22), rgba(54,197,214,0.16));
733 background: linear-gradient(135deg, rgba(91,110,232,0.22), rgba(95,143,160,0.16));
734734 color: #c5b3ff;
735 border: 1px solid rgba(140,109,255,0.40);
735 border: 1px solid rgba(91,110,232,0.40);
736736 font-family: var(--font-display);
737737 font-weight: 700;
738738 font-size: 13px;
743743 justify-content: center;
744744 width: 26px; height: 26px;
745745 border-radius: 8px;
746 background: rgba(54,197,214,0.10);
746 background: rgba(95,143,160,0.10);
747747 color: #5fd3e0;
748 box-shadow: inset 0 0 0 1px rgba(54,197,214,0.30);
748 box-shadow: inset 0 0 0 1px rgba(95,143,160,0.30);
749749 }
750750 .demo-page-step-title {
751751 margin: 0;
787787 color: var(--text-faint);
788788 }
789789 .demo-page-try-link {
790 color: var(--accent, #8c6dff);
790 color: var(--accent, #5b6ee8);
791791 text-decoration: none;
792792 font-weight: 600;
793793 }
833833 font-weight: 500;
834834 }
835835 .demo-page-list a:hover {
836 color: var(--accent, #8c6dff);
836 color: var(--accent, #5b6ee8);
837837 text-decoration: underline;
838838 }
839839 .demo-page-meta { color: var(--text-muted); font-size: 12px; }
871871 transition: border-color 150ms ease, transform 150ms ease;
872872 }
873873 .demo-page-repo-card:hover {
874 border-color: rgba(140,109,255,0.45);
874 border-color: rgba(91,110,232,0.45);
875875 transform: translateY(-1px);
876876 text-decoration: none;
877877 }
911911 font-weight: 500;
912912 }
913913 .demo-page-feed-list a:hover {
914 color: var(--accent, #8c6dff);
914 color: var(--accent, #5b6ee8);
915915 text-decoration: underline;
916916 }
917917 .demo-page-kind {
931931 }
932932 .demo-page-kind-ai_build-dispatched,
933933 .demo-page-kind-ai-build-dispatched {
934 background: rgba(140,109,255,0.15);
935 color: #b69dff;
936 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.32);
934 background: rgba(91,110,232,0.15);
935 color: #5b6ee8;
936 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.32);
937937 }
938938 .demo-page-kind-ai_review-posted,
939939 .demo-page-kind-ai-review-posted {
940 background: rgba(54,197,214,0.15);
940 background: rgba(95,143,160,0.15);
941941 color: #5fd3e0;
942 box-shadow: inset 0 0 0 1px rgba(54,197,214,0.32);
942 box-shadow: inset 0 0 0 1px rgba(95,143,160,0.32);
943943 }
944944`;
945945
Modifiedsrc/routes/dep-updater.tsx+20−20View fileUnifiedSplit
5151 position: absolute;
5252 top: 0; left: 0; right: 0;
5353 height: 2px;
54 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
54 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
5555 opacity: 0.7;
5656 pointer-events: none;
5757 }
5959 position: absolute;
6060 inset: -20% -10% auto auto;
6161 width: 380px; height: 380px;
62 background: radial-gradient(circle, rgba(140,109,255,0.20), rgba(54,197,214,0.10) 45%, transparent 70%);
62 background: radial-gradient(circle, rgba(91,110,232,0.20), rgba(95,143,160,0.10) 45%, transparent 70%);
6363 filter: blur(80px);
6464 opacity: 0.7;
6565 pointer-events: none;
9090 .dep-eyebrow-dot {
9191 width: 8px; height: 8px;
9292 border-radius: 9999px;
93 background: linear-gradient(135deg, #8c6dff, #36c5d6);
94 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
93 background: linear-gradient(135deg, #5b6ee8, #5f8fa0);
94 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
9595 }
9696 .dep-title {
9797 font-family: var(--font-display);
103103 color: var(--text-strong);
104104 }
105105 .dep-title-grad {
106 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
106 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
107107 -webkit-background-clip: text;
108108 background-clip: text;
109109 -webkit-text-fill-color: transparent;
138138 white-space: nowrap;
139139 text-decoration: none;
140140 color: #ffffff;
141 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
142 box-shadow: 0 6px 18px -6px rgba(140,109,255,0.50), inset 0 1px 0 rgba(255,255,255,0.16);
141 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
142 box-shadow: 0 6px 18px -6px rgba(91,110,232,0.50), inset 0 1px 0 rgba(255,255,255,0.16);
143143 transition: transform 120ms ease, box-shadow 120ms ease;
144144 }
145145 .dep-hero-cta:hover {
146146 transform: translateY(-1px);
147 box-shadow: 0 10px 24px -8px rgba(140,109,255,0.60), inset 0 1px 0 rgba(255,255,255,0.20);
147 box-shadow: 0 10px 24px -8px rgba(91,110,232,0.60), inset 0 1px 0 rgba(255,255,255,0.20);
148148 text-decoration: none;
149149 color: #ffffff;
150150 }
163163 position: absolute;
164164 top: 0; left: 0; right: 0;
165165 height: 2px;
166 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
166 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
167167 opacity: 0.45;
168168 pointer-events: none;
169169 }
193193 justify-content: center;
194194 width: 26px; height: 26px;
195195 border-radius: 8px;
196 background: rgba(140,109,255,0.12);
197 color: #b69dff;
198 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.28);
196 background: rgba(91,110,232,0.12);
197 color: #5b6ee8;
198 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.28);
199199 flex-shrink: 0;
200200 }
201201 .dep-section-sub {
238238 text-decoration: none;
239239 padding: 2px 8px;
240240 border-radius: 6px;
241 background: rgba(140,109,255,0.10);
242 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.28);
241 background: rgba(91,110,232,0.10);
242 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.28);
243243 font-variant-numeric: tabular-nums;
244244 }
245 .dep-run-pr:hover { text-decoration: none; background: rgba(140,109,255,0.18); }
245 .dep-run-pr:hover { text-decoration: none; background: rgba(91,110,232,0.18); }
246246 .dep-run-branch {
247247 font-family: var(--font-mono);
248248 font-size: 12px;
395395 box-shadow: inset 0 0 0 1px rgba(248,113,113,0.32);
396396 }
397397 .dep-pill.is-running {
398 background: rgba(54,197,214,0.14);
398 background: rgba(95,143,160,0.14);
399399 color: #67e8f9;
400 box-shadow: inset 0 0 0 1px rgba(54,197,214,0.32);
400 box-shadow: inset 0 0 0 1px rgba(95,143,160,0.32);
401401 }
402402 .dep-pill.is-pending {
403403 background: rgba(251,191,36,0.12);
419419 position: absolute;
420420 inset: -40% 30% auto 30%;
421421 height: 280px;
422 background: radial-gradient(circle, rgba(140,109,255,0.18), rgba(54,197,214,0.10) 45%, transparent 70%);
422 background: radial-gradient(circle, rgba(91,110,232,0.18), rgba(95,143,160,0.10) 45%, transparent 70%);
423423 filter: blur(70px);
424424 opacity: 0.7;
425425 pointer-events: none;
429429 .dep-empty-icon {
430430 width: 56px; height: 56px;
431431 border-radius: 9999px;
432 background: linear-gradient(135deg, rgba(140,109,255,0.25), rgba(54,197,214,0.20));
433 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.40);
432 background: linear-gradient(135deg, rgba(91,110,232,0.25), rgba(95,143,160,0.20));
433 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.40);
434434 display: inline-flex;
435435 align-items: center;
436436 justify-content: center;
Modifiedsrc/routes/deploy-targets.tsx+6−6View fileUnifiedSplit
5454 position: absolute;
5555 top: 0; left: 0; right: 0;
5656 height: 2px;
57 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
57 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
5858 opacity: 0.7;
5959 pointer-events: none;
6060 }
6262 position: absolute;
6363 inset: -20% -10% auto auto;
6464 width: 360px; height: 360px;
65 background: radial-gradient(circle, rgba(140,109,255,0.18), rgba(54,197,214,0.09) 45%, transparent 70%);
65 background: radial-gradient(circle, rgba(91,110,232,0.18), rgba(95,143,160,0.09) 45%, transparent 70%);
6666 filter: blur(80px);
6767 opacity: 0.65;
6868 pointer-events: none;
8888 color: var(--text-strong);
8989 }
9090 .dt-hero-title .gradient-text {
91 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
91 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
9292 -webkit-background-clip: text;
9393 background-clip: text;
9494 -webkit-text-fill-color: transparent;
134134 }
135135 .dt-subnav a.is-active {
136136 color: var(--text-strong);
137 background: rgba(140,109,255,0.16);
138 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.35);
137 background: rgba(91,110,232,0.16);
138 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.35);
139139 }
140140
141141 /* ─── Banners ─── */
258258 .dt-input:focus,
259259 .dt-textarea:focus {
260260 border-color: var(--border-focus);
261 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
261 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
262262 }
263263 .dt-row-2 {
264264 display: grid;
Modifiedsrc/routes/deployments.tsx+7−7View fileUnifiedSplit
6565 justify-content: center;
6666 width: 18px; height: 18px;
6767 border-radius: 6px;
68 background: rgba(140,109,255,0.14);
69 color: #b69dff;
70 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.35);
68 background: rgba(91,110,232,0.14);
69 color: #5b6ee8;
70 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.35);
7171 }
7272 .dk-title {
7373 font-size: clamp(24px, 3.2vw, 32px);
7979 color: var(--text-strong);
8080 }
8181 .dk-title-grad {
82 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
82 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
8383 -webkit-background-clip: text;
8484 background-clip: text;
8585 -webkit-text-fill-color: transparent;
282282 position: absolute;
283283 inset: -40% -10% auto auto;
284284 width: 320px; height: 320px;
285 background: radial-gradient(circle, rgba(140,109,255,0.20), rgba(54,197,214,0.10) 45%, transparent 70%);
285 background: radial-gradient(circle, rgba(91,110,232,0.20), rgba(95,143,160,0.10) 45%, transparent 70%);
286286 filter: blur(70px);
287287 opacity: 0.6;
288288 pointer-events: none;
839839 .cds-badge {
840840 display: inline-flex; align-items: center; padding: 2px 8px;
841841 border-radius: 6px; font-size: 11px; font-weight: 700;
842 background: rgba(140,109,255,0.14); color: #b69dff;
843 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.3);
842 background: rgba(91,110,232,0.14); color: #5b6ee8;
843 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.3);
844844 }
845845 .cds-mono { font-family: var(--font-mono); font-size: 12px; }
846846 .cds-form label { display: block; font-size: 12.5px; font-weight: 600; color: var(--text-muted); margin-bottom: 4px; }
Modifiedsrc/routes/deps.tsx+15−15View fileUnifiedSplit
5858 .deps-eyebrow-dot {
5959 width: 8px; height: 8px;
6060 border-radius: 9999px;
61 background: linear-gradient(135deg, #8c6dff, #36c5d6);
62 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
61 background: linear-gradient(135deg, #5b6ee8, #5f8fa0);
62 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
6363 }
6464 .deps-title {
6565 font-family: var(--font-display);
7171 color: var(--text-strong);
7272 }
7373 .deps-title-grad {
74 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
74 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
7575 -webkit-background-clip: text;
7676 background-clip: text;
7777 -webkit-text-fill-color: transparent;
104104 white-space: nowrap;
105105 }
106106 .deps-btn-primary {
107 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
107 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
108108 color: #ffffff;
109 box-shadow: 0 6px 18px -6px rgba(140,109,255,0.50), inset 0 1px 0 rgba(255,255,255,0.16);
109 box-shadow: 0 6px 18px -6px rgba(91,110,232,0.50), inset 0 1px 0 rgba(255,255,255,0.16);
110110 }
111111 .deps-btn-primary:hover {
112112 transform: translateY(-1px);
113 box-shadow: 0 10px 24px -8px rgba(140,109,255,0.60), inset 0 1px 0 rgba(255,255,255,0.20);
113 box-shadow: 0 10px 24px -8px rgba(91,110,232,0.60), inset 0 1px 0 rgba(255,255,255,0.20);
114114 text-decoration: none;
115115 color: #ffffff;
116116 }
152152 position: absolute;
153153 top: 0; left: 0; right: 0;
154154 height: 1.5px;
155 background: linear-gradient(90deg, transparent 0%, #8c6dff 50%, #36c5d6 100%);
155 background: linear-gradient(90deg, transparent 0%, #5b6ee8 50%, #5f8fa0 100%);
156156 opacity: 0.40;
157157 pointer-events: none;
158158 }
228228 gap: 6px;
229229 padding: 3px 9px;
230230 border-radius: 7px;
231 background: rgba(140,109,255,0.10);
232 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.25);
231 background: rgba(91,110,232,0.10);
232 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.25);
233233 font-family: var(--font-mono);
234234 font-size: 13px;
235235 font-weight: 700;
244244 font-size: 11.5px;
245245 padding: 2px 8px;
246246 border-radius: 9999px;
247 background: rgba(54,197,214,0.10);
247 background: rgba(95,143,160,0.10);
248248 color: #67e8f9;
249 box-shadow: inset 0 0 0 1px rgba(54,197,214,0.28);
249 box-shadow: inset 0 0 0 1px rgba(95,143,160,0.28);
250250 font-variant-numeric: tabular-nums;
251251 white-space: nowrap;
252252 }
335335 transition: color 120ms ease, background 120ms ease;
336336 }
337337 .deps-tree summary::-webkit-details-marker { display: none; }
338 .deps-tree summary:hover { color: var(--text-strong); background: rgba(140,109,255,0.06); }
338 .deps-tree summary:hover { color: var(--text-strong); background: rgba(91,110,232,0.06); }
339339 .deps-tree summary .chev {
340340 width: 9px; height: 9px;
341341 border-right: 1.5px solid currentColor;
371371 position: absolute;
372372 inset: -40% 25% auto 25%;
373373 height: 300px;
374 background: radial-gradient(circle, rgba(140,109,255,0.18), rgba(54,197,214,0.10) 45%, transparent 70%);
374 background: radial-gradient(circle, rgba(91,110,232,0.18), rgba(95,143,160,0.10) 45%, transparent 70%);
375375 filter: blur(72px);
376376 opacity: 0.7;
377377 pointer-events: none;
382382 width: 56px; height: 56px;
383383 margin: 0 auto 14px;
384384 border-radius: 9999px;
385 background: linear-gradient(135deg, rgba(140,109,255,0.25), rgba(54,197,214,0.20));
386 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.40);
385 background: linear-gradient(135deg, rgba(91,110,232,0.25), rgba(95,143,160,0.20));
386 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.40);
387387 display: inline-flex;
388388 align-items: center;
389389 justify-content: center;
Modifiedsrc/routes/dev-env.tsx+8−8View fileUnifiedSplit
6666 position: absolute;
6767 top: 0; left: 0; right: 0;
6868 height: 2px;
69 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
69 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
7070 opacity: 0.75;
7171 pointer-events: none;
7272 }
8585 .dev-env-eyebrow-dot {
8686 width: 8px; height: 8px;
8787 border-radius: 9999px;
88 background: linear-gradient(135deg, #8c6dff, #36c5d6);
89 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
88 background: linear-gradient(135deg, #5b6ee8, #5f8fa0);
89 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
9090 }
9191 .dev-env-title {
9292 font-family: var(--font-display);
134134 }
135135 .dev-env-pill.is-cold .dot { background: #64748b; }
136136 .dev-env-pill.is-warming .dot {
137 background: linear-gradient(135deg, #8c6dff, #36c5d6);
137 background: linear-gradient(135deg, #5b6ee8, #5f8fa0);
138138 animation: devEnvPulse 1.4s ease-in-out infinite;
139139 }
140140 .dev-env-pill.is-ready .dot { background: #22c55e; box-shadow: 0 0 8px rgba(34,197,94,0.6); }
161161 position: absolute;
162162 inset: 0;
163163 width: 35%;
164 background: linear-gradient(90deg, #8c6dff 0%, #36c5d6 100%);
164 background: linear-gradient(90deg, #5b6ee8 0%, #5f8fa0 100%);
165165 border-radius: inherit;
166166 animation: devEnvSlide 1.6s ease-in-out infinite;
167167 }
181181 }
182182 .dev-env-cta {
183183 appearance: none;
184 border: 1px solid rgba(140,109,255,0.45);
185 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
184 border: 1px solid rgba(91,110,232,0.45);
185 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
186186 color: #fff;
187187 padding: 11px 20px;
188188 border-radius: 11px;
199199 }
200200 .dev-env-cta:hover {
201201 transform: translateY(-1px);
202 box-shadow: 0 12px 24px -10px rgba(140,109,255,0.55);
202 box-shadow: 0 12px 24px -10px rgba(91,110,232,0.55);
203203 filter: brightness(1.06);
204204 }
205205 .dev-env-cta-secondary {
Modifiedsrc/routes/developer-apps.tsx+16−16View fileUnifiedSplit
7474 position: absolute;
7575 top: 0; left: 0; right: 0;
7676 height: 2px;
77 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
77 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
7878 opacity: 0.7;
7979 pointer-events: none;
8080 }
8282 position: absolute;
8383 inset: -20% -10% auto auto;
8484 width: 380px; height: 380px;
85 background: radial-gradient(circle, rgba(140,109,255,0.20), rgba(54,197,214,0.10) 45%, transparent 70%);
85 background: radial-gradient(circle, rgba(91,110,232,0.20), rgba(95,143,160,0.10) 45%, transparent 70%);
8686 filter: blur(80px);
8787 opacity: 0.7;
8888 pointer-events: none;
113113 .dev-eyebrow-dot {
114114 width: 8px; height: 8px;
115115 border-radius: 9999px;
116 background: linear-gradient(135deg, #8c6dff, #36c5d6);
117 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
116 background: linear-gradient(135deg, #5b6ee8, #5f8fa0);
117 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
118118 }
119119 .dev-title {
120120 font-size: clamp(26px, 3.5vw, 38px);
126126 color: var(--text-strong);
127127 }
128128 .dev-title-grad {
129 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
129 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
130130 -webkit-background-clip: text;
131131 background-clip: text;
132132 -webkit-text-fill-color: transparent;
188188 transition: transform 120ms ease, border-color 120ms ease, box-shadow 120ms ease;
189189 }
190190 .dev-card:hover {
191 border-color: rgba(140,109,255,0.32);
191 border-color: rgba(91,110,232,0.32);
192192 box-shadow: 0 8px 24px -10px rgba(0,0,0,0.32);
193193 }
194194 .dev-card.is-revoked {
200200 width: 52px;
201201 height: 52px;
202202 border-radius: 12px;
203 background: linear-gradient(135deg, rgba(140,109,255,0.22), rgba(54,197,214,0.16));
204 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.32);
203 background: linear-gradient(135deg, rgba(91,110,232,0.22), rgba(95,143,160,0.16));
204 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.32);
205205 display: flex;
206206 align-items: center;
207207 justify-content: center;
274274 box-shadow: inset 0 0 0 1px rgba(248,113,113,0.32);
275275 }
276276 .dev-pill.is-public {
277 background: rgba(54,197,214,0.12);
277 background: rgba(95,143,160,0.12);
278278 color: #67e8f9;
279 box-shadow: inset 0 0 0 1px rgba(54,197,214,0.32);
279 box-shadow: inset 0 0 0 1px rgba(95,143,160,0.32);
280280 }
281281 .dev-pill .dot { width: 5px; height: 5px; border-radius: 9999px; background: currentColor; }
282282
375375 .dev-input:focus,
376376 .dev-textarea:focus {
377377 border-color: var(--border-focus);
378 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
378 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
379379 }
380380 .dev-hint {
381381 font-size: 11.5px;
491491 transition: transform 120ms ease, box-shadow 120ms ease, background 120ms ease, border-color 120ms ease, color 120ms ease;
492492 }
493493 .dev-btn-primary {
494 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
494 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
495495 color: #ffffff;
496 box-shadow: 0 6px 18px -6px rgba(140,109,255,0.50), inset 0 1px 0 rgba(255,255,255,0.16);
496 box-shadow: 0 6px 18px -6px rgba(91,110,232,0.50), inset 0 1px 0 rgba(255,255,255,0.16);
497497 }
498498 .dev-btn-primary:hover {
499499 transform: translateY(-1px);
500 box-shadow: 0 10px 24px -8px rgba(140,109,255,0.60), inset 0 1px 0 rgba(255,255,255,0.20);
500 box-shadow: 0 10px 24px -8px rgba(91,110,232,0.60), inset 0 1px 0 rgba(255,255,255,0.20);
501501 color: #ffffff;
502502 text-decoration: none;
503503 }
507507 border-color: var(--border-strong);
508508 }
509509 .dev-btn-ghost:hover {
510 background: rgba(140,109,255,0.06);
511 border-color: rgba(140,109,255,0.45);
510 background: rgba(91,110,232,0.06);
511 border-color: rgba(91,110,232,0.45);
512512 color: var(--text-strong);
513513 text-decoration: none;
514514 }
Modifiedsrc/routes/developer-program.tsx+12−12View fileUnifiedSplit
3838 position: absolute;
3939 top: 0; left: 0; right: 0;
4040 height: 2px;
41 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
41 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
4242 opacity: 0.85;
4343 pointer-events: none;
4444 }
5252 .devprog-hero-orb {
5353 position: absolute;
5454 inset: 0;
55 background: radial-gradient(circle, rgba(140,109,255,0.24), rgba(54,197,214,0.10) 45%, transparent 70%);
55 background: radial-gradient(circle, rgba(91,110,232,0.24), rgba(95,143,160,0.10) 45%, transparent 70%);
5656 filter: blur(90px);
5757 opacity: 0.7;
5858 animation: devprogOrbDrift 14s ease-in-out infinite;
6161 position: absolute;
6262 inset: auto auto -20% -12%;
6363 width: 340px; height: 340px;
64 background: radial-gradient(circle, rgba(54,197,214,0.18), rgba(140,109,255,0.06) 50%, transparent 75%);
64 background: radial-gradient(circle, rgba(95,143,160,0.18), rgba(91,110,232,0.06) 50%, transparent 75%);
6565 filter: blur(70px);
6666 opacity: 0.5;
6767 pointer-events: none;
103103 width: 6px; height: 6px;
104104 border-radius: 50%;
105105 background: var(--accent);
106 box-shadow: 0 0 8px rgba(140,109,255,0.7);
106 box-shadow: 0 0 8px rgba(91,110,232,0.7);
107107 }
108108 .devprog-hero-title {
109109 font-family: var(--font-display);
116116 margin: 0;
117117 }
118118 .devprog-hero-title .gradient-text {
119 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
119 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
120120 -webkit-background-clip: text;
121121 background-clip: text;
122122 -webkit-text-fill-color: transparent;
161161 position: absolute;
162162 top: 0; left: 0; right: 0;
163163 height: 2px;
164 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
164 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
165165 opacity: 0;
166166 transition: opacity 180ms ease;
167167 pointer-events: none;
168168 }
169169 .devprog-card:hover {
170 border-color: rgba(140,109,255,0.40);
171 box-shadow: 0 14px 32px -16px rgba(0,0,0,0.55), 0 0 24px -8px rgba(140,109,255,0.18);
170 border-color: rgba(91,110,232,0.40);
171 box-shadow: 0 14px 32px -16px rgba(0,0,0,0.55), 0 0 24px -8px rgba(91,110,232,0.18);
172172 transform: translateY(-2px);
173173 }
174174 .devprog-card:hover::before { opacity: 0.85; }
175175 .devprog-card-icon {
176176 width: 44px; height: 44px;
177177 border-radius: 12px;
178 background: var(--accent-gradient-soft, rgba(140,109,255,0.12));
179 border: 1px solid rgba(140,109,255,0.22);
178 background: var(--accent-gradient-soft, rgba(91,110,232,0.12));
179 border: 1px solid rgba(91,110,232,0.22);
180180 display: flex;
181181 align-items: center;
182182 justify-content: center;
250250 font-weight: 800;
251251 letter-spacing: -0.04em;
252252 line-height: 1;
253 background-image: linear-gradient(135deg, #a48bff 0%, #36c5d6 100%);
253 background-image: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
254254 -webkit-background-clip: text;
255255 background-clip: text;
256256 -webkit-text-fill-color: transparent;
299299 position: absolute;
300300 top: 0; left: 0; right: 0;
301301 height: 2px;
302 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
302 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
303303 opacity: 0.75;
304304 pointer-events: none;
305305 }
Modifiedsrc/routes/discussions.tsx+23−23View fileUnifiedSplit
141141 position: absolute;
142142 top: 0; left: 0; right: 0;
143143 height: 2px;
144 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
144 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
145145 opacity: 0.75;
146146 pointer-events: none;
147147 }
149149 position: absolute;
150150 inset: -30% -15% auto auto;
151151 width: 460px; height: 460px;
152 background: radial-gradient(circle, rgba(140,109,255,0.22), rgba(54,197,214,0.10) 45%, transparent 70%);
152 background: radial-gradient(circle, rgba(91,110,232,0.22), rgba(95,143,160,0.10) 45%, transparent 70%);
153153 filter: blur(80px);
154154 opacity: 0.75;
155155 pointer-events: none;
180180 .disc-eyebrow-dot {
181181 width: 8px; height: 8px;
182182 border-radius: 9999px;
183 background: linear-gradient(135deg, #8c6dff, #36c5d6);
184 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
183 background: linear-gradient(135deg, #5b6ee8, #5f8fa0);
184 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
185185 }
186186 .disc-title {
187187 font-family: var(--font-display);
193193 color: var(--text-strong);
194194 }
195195 .disc-title-grad {
196 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
196 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
197197 -webkit-background-clip: text;
198198 background-clip: text;
199199 -webkit-text-fill-color: transparent;
217217 font-weight: 600;
218218 text-decoration: none;
219219 border: 1px solid transparent;
220 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
220 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
221221 color: #fff;
222 box-shadow: 0 6px 18px -4px rgba(140,109,255,0.45), inset 0 1px 0 rgba(255,255,255,0.16);
222 box-shadow: 0 6px 18px -4px rgba(91,110,232,0.45), inset 0 1px 0 rgba(255,255,255,0.16);
223223 transition: transform 120ms ease, box-shadow 120ms ease;
224224 white-space: nowrap;
225225 }
226226 .disc-cta:hover {
227227 transform: translateY(-1px);
228 box-shadow: 0 10px 24px -6px rgba(140,109,255,0.55), inset 0 1px 0 rgba(255,255,255,0.20);
228 box-shadow: 0 10px 24px -6px rgba(91,110,232,0.55), inset 0 1px 0 rgba(255,255,255,0.20);
229229 color: #fff;
230230 text-decoration: none;
231231 }
251251 text-decoration: none;
252252 transition: border-color 120ms ease, color 120ms ease, background 120ms ease;
253253 }
254 .disc-chip:hover { border-color: rgba(140,109,255,0.45); color: var(--text-strong); text-decoration: none; }
254 .disc-chip:hover { border-color: rgba(91,110,232,0.45); color: var(--text-strong); text-decoration: none; }
255255 .disc-chip.is-active {
256256 color: #fff;
257 background: linear-gradient(135deg, rgba(140,109,255,0.85), rgba(54,197,214,0.85));
258 border-color: rgba(140,109,255,0.55);
257 background: linear-gradient(135deg, rgba(91,110,232,0.85), rgba(95,143,160,0.85));
258 border-color: rgba(91,110,232,0.55);
259259 }
260260
261261 /* Thread card list */
274274 transition: border-color 120ms ease, transform 120ms ease;
275275 }
276276 .disc-card:hover { border-color: var(--border-strong, var(--border)); transform: translateY(-1px); }
277 .disc-card.is-pinned { border-color: rgba(140,109,255,0.32); }
277 .disc-card.is-pinned { border-color: rgba(91,110,232,0.32); }
278278
279279 .disc-card-row {
280280 display: flex;
285285 flex: none;
286286 width: 36px; height: 36px;
287287 border-radius: 9999px;
288 background: linear-gradient(135deg, #8c6dff, #36c5d6);
288 background: linear-gradient(135deg, #5b6ee8, #5f8fa0);
289289 color: #fff;
290290 display: flex;
291291 align-items: center;
337337 font-weight: 700;
338338 letter-spacing: 0.06em;
339339 text-transform: uppercase;
340 background: rgba(140,109,255,0.10);
341 color: #b69dff;
342 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.32);
340 background: rgba(91,110,232,0.10);
341 color: #5b6ee8;
342 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.32);
343343 }
344344 .disc-tag.is-pinned { background: rgba(252,211,77,0.10); color: #fcd34d; box-shadow: inset 0 0 0 1px rgba(252,211,77,0.32); }
345345 .disc-tag.is-closed { background: rgba(248,113,113,0.10); color: #fca5a5; box-shadow: inset 0 0 0 1px rgba(248,113,113,0.32); }
388388 position: absolute;
389389 inset: -40% -20% auto auto;
390390 width: 320px; height: 320px;
391 background: radial-gradient(circle, rgba(140,109,255,0.14), rgba(54,197,214,0.06) 45%, transparent 70%);
391 background: radial-gradient(circle, rgba(91,110,232,0.14), rgba(95,143,160,0.06) 45%, transparent 70%);
392392 filter: blur(60px);
393393 pointer-events: none;
394394 }
431431 .disc-input:focus,
432432 .disc-textarea:focus,
433433 .disc-select:focus {
434 border-color: var(--border-focus, rgba(140,109,255,0.55));
435 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
434 border-color: var(--border-focus, rgba(91,110,232,0.55));
435 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
436436 }
437437
438438 /* Category cards on the form */
463463 font-weight: 600;
464464 color: var(--text);
465465 }
466 .disc-cat-label:hover { border-color: rgba(140,109,255,0.45); }
466 .disc-cat-label:hover { border-color: rgba(91,110,232,0.45); }
467467 .disc-cat-option input[type="radio"]:checked + .disc-cat-label {
468 border-color: rgba(140,109,255,0.6);
469 background: rgba(140,109,255,0.08);
468 border-color: rgba(91,110,232,0.6);
469 background: rgba(91,110,232,0.08);
470470 color: var(--text-strong);
471471 }
472472 .disc-cat-emoji { font-size: 18px; line-height: 1; }
10801080 <article class="disc-comment">
10811081 <header class="disc-comment-header">
10821082 <strong>@{discussion.author.username}</strong>
1083 <span style="background:rgba(140,109,255,0.10);color:var(--accent);font-size:11px;font-weight:700;padding:1px 8px;border-radius:9999px;text-transform:uppercase;letter-spacing:0.02em">
1083 <span style="background:rgba(91,110,232,0.10);color:var(--accent);font-size:11px;font-weight:700;padding:1px 8px;border-radius:9999px;text-transform:uppercase;letter-spacing:0.02em">
10841084 Author
10851085 </span>
10861086 <span>{relTime(discussion.d.createdAt)}</span>
Modifiedsrc/routes/docs-tracking.tsx+6−6View fileUnifiedSplit
113113 position: absolute;
114114 top: 0; left: 0; right: 0;
115115 height: 2px;
116 background: linear-gradient(90deg, transparent 0%, #36c5d6 30%, #8c6dff 70%, transparent 100%);
116 background: linear-gradient(90deg, transparent 0%, #5f8fa0 30%, #5b6ee8 70%, transparent 100%);
117117 opacity: 0.7;
118118 pointer-events: none;
119119 }
121121 position: absolute;
122122 inset: -30% -10% auto auto;
123123 width: 320px; height: 320px;
124 background: radial-gradient(circle, rgba(54,197,214,0.18), rgba(140,109,255,0.08) 45%, transparent 70%);
124 background: radial-gradient(circle, rgba(95,143,160,0.18), rgba(91,110,232,0.08) 45%, transparent 70%);
125125 filter: blur(70px);
126126 opacity: 0.7;
127127 pointer-events: none;
144144 .doctrk-eyebrow-dot {
145145 width: 8px; height: 8px;
146146 border-radius: 9999px;
147 background: linear-gradient(135deg, #36c5d6, #8c6dff);
148 box-shadow: 0 0 0 3px rgba(54,197,214,0.18);
147 background: linear-gradient(135deg, #5f8fa0, #5b6ee8);
148 box-shadow: 0 0 0 3px rgba(95,143,160,0.18);
149149 }
150150 .doctrk-title {
151151 font-family: var(--font-display);
232232 border-radius: 6px;
233233 }
234234 .doctrk-section-meta a {
235 color: #b69dff;
235 color: #5b6ee8;
236236 text-decoration: none;
237237 }
238238 .doctrk-section-meta a:hover { text-decoration: underline; }
295295 inset: auto auto -40% 50%;
296296 transform: translateX(-50%);
297297 width: 320px; height: 320px;
298 background: radial-gradient(circle, rgba(54,197,214,0.18), rgba(140,109,255,0.08) 45%, transparent 70%);
298 background: radial-gradient(circle, rgba(95,143,160,0.18), rgba(91,110,232,0.08) 45%, transparent 70%);
299299 filter: blur(70px);
300300 opacity: 0.7;
301301 pointer-events: none;
Modifiedsrc/routes/docs.tsx+10−10View fileUnifiedSplit
7272 transition: background 120ms ease, color 120ms ease;
7373 }
7474 .docs-sidebar-nav a:hover {
75 background: rgba(140,109,255,0.08);
75 background: rgba(91,110,232,0.08);
7676 color: var(--text-strong);
7777 }
7878 .docs-sidebar-nav a.docs-nav-active {
79 background: rgba(140,109,255,0.14);
79 background: rgba(91,110,232,0.14);
8080 color: #c4b6ff;
8181 font-weight: 600;
8282 }
9696 position: absolute;
9797 top: 0; left: 0; right: 0;
9898 height: 2px;
99 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
99 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
100100 opacity: 0.75;
101101 }
102102 .docs-hero-orb {
103103 position: absolute;
104104 inset: -20% -10% auto auto;
105105 width: 320px; height: 320px;
106 background: radial-gradient(circle, rgba(140,109,255,0.18), rgba(54,197,214,0.09) 45%, transparent 70%);
106 background: radial-gradient(circle, rgba(91,110,232,0.18), rgba(95,143,160,0.09) 45%, transparent 70%);
107107 filter: blur(80px);
108108 opacity: 0.7;
109109 pointer-events: none;
126126 color: var(--text-strong);
127127 }
128128 .docs-hero-title .docs-gradient {
129 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
129 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
130130 -webkit-background-clip: text;
131131 background-clip: text;
132132 -webkit-text-fill-color: transparent;
156156 display: block;
157157 }
158158 .docs-card:hover {
159 border-color: rgba(140,109,255,0.45);
160 box-shadow: 0 4px 24px -8px rgba(140,109,255,0.25);
159 border-color: rgba(91,110,232,0.45);
160 box-shadow: 0 4px 24px -8px rgba(91,110,232,0.25);
161161 }
162162 .docs-card-icon {
163163 font-size: 24px;
228228 font-size: 12.5px;
229229 padding: 1px 5px;
230230 border-radius: 4px;
231 background: rgba(140,109,255,0.10);
231 background: rgba(91,110,232,0.10);
232232 color: #c4b6ff;
233233 }
234234 .docs-content pre {
294294 max-width: 220px;
295295 flex: 1;
296296 }
297 .docs-page-nav-item:hover { border-color: rgba(140,109,255,0.45); }
297 .docs-page-nav-item:hover { border-color: rgba(91,110,232,0.45); }
298298 .docs-page-nav-item--next { text-align: right; margin-left: auto; }
299299 .docs-page-nav-label {
300300 font-size: 11px;
325325 }
326326 .docs-edit-link:hover {
327327 color: var(--text);
328 border-color: rgba(140,109,255,0.35);
328 border-color: rgba(91,110,232,0.35);
329329 }
330330`;
331331
Modifiedsrc/routes/dora.tsx+1−1View fileUnifiedSplit
106106 position: absolute;
107107 top: 0; left: 0; right: 0;
108108 height: 2px;
109 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
109 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
110110 opacity: 0.8;
111111 pointer-events: none;
112112 }
Modifiedsrc/routes/editor.tsx+29−29View fileUnifiedSplit
271271 },
272272 '.cm-content': {
273273 padding: '12px 14px',
274 caretColor: '#a48bff',
274 caretColor: '#5b6ee8',
275275 },
276276 '.cm-focused': {
277277 outline: 'none',
278278 },
279279 '&.cm-focused': {
280 borderColor: 'rgba(140,109,255,0.55)',
281 boxShadow: '0 0 0 3px rgba(140,109,255,0.18)',
280 borderColor: 'rgba(91,110,232,0.55)',
281 boxShadow: '0 0 0 3px rgba(91,110,232,0.18)',
282282 },
283283 '.cm-gutters': {
284284 background: 'rgba(255,255,255,0.02)',
287287 paddingRight: '4px',
288288 },
289289 '.cm-activeLineGutter': {
290 background: 'rgba(140,109,255,0.08)',
290 background: 'rgba(91,110,232,0.08)',
291291 },
292292 '.cm-activeLine': {
293 background: 'rgba(140,109,255,0.06)',
293 background: 'rgba(91,110,232,0.06)',
294294 },
295295 '.cm-scroller': {
296296 overflow: 'auto',
298298 maxHeight: '70vh',
299299 },
300300 '.cm-cursor': {
301 borderLeftColor: '#a48bff',
301 borderLeftColor: '#5b6ee8',
302302 },
303303 });
304304
706706 .editor-eyebrow-dot {
707707 width: 8px; height: 8px;
708708 border-radius: 9999px;
709 background: linear-gradient(135deg, #8c6dff, #36c5d6);
710 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
709 background: linear-gradient(135deg, #5b6ee8, #5f8fa0);
710 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
711711 }
712712 .editor-title {
713713 font-family: var(--font-display);
719719 color: var(--text-strong);
720720 }
721721 .editor-title-grad {
722 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
722 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
723723 -webkit-background-clip: text;
724724 background-clip: text;
725725 -webkit-text-fill-color: transparent;
773773 font-family: var(--font-mono);
774774 font-size: 12px;
775775 color: #c4b5fd;
776 background: rgba(140,109,255,0.12);
777 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.30);
776 background: rgba(91,110,232,0.12);
777 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.30);
778778 white-space: nowrap;
779779 font-weight: 600;
780780 }
793793 position: absolute;
794794 top: 0; left: 0; right: 0;
795795 height: 2px;
796 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
796 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
797797 opacity: 0.55;
798798 pointer-events: none;
799799 }
833833 }
834834 .editor-input:focus {
835835 outline: none;
836 border-color: rgba(140,109,255,0.55);
836 border-color: rgba(91,110,232,0.55);
837837 background: rgba(255,255,255,0.05);
838 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
838 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
839839 }
840840 .editor-input-mono { font-family: var(--font-mono); }
841841
858858 }
859859 .editor-textarea:focus {
860860 outline: none;
861 border-color: rgba(140,109,255,0.55);
862 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
861 border-color: rgba(91,110,232,0.55);
862 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
863863 }
864864
865865 /* ─── Action row ─── */
890890 white-space: nowrap;
891891 }
892892 .editor-btn-primary {
893 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
893 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
894894 color: #fff;
895 box-shadow: 0 6px 18px -6px rgba(140,109,255,0.5), inset 0 1px 0 rgba(255,255,255,0.16);
895 box-shadow: 0 6px 18px -6px rgba(91,110,232,0.5), inset 0 1px 0 rgba(255,255,255,0.16);
896896 }
897897 .editor-btn-primary:hover {
898898 transform: translateY(-1px);
899 box-shadow: 0 10px 24px -8px rgba(140,109,255,0.6), inset 0 1px 0 rgba(255,255,255,0.20);
899 box-shadow: 0 10px 24px -8px rgba(91,110,232,0.6), inset 0 1px 0 rgba(255,255,255,0.20);
900900 text-decoration: none;
901901 color: #fff;
902902 }
906906 border-color: var(--border-strong);
907907 }
908908 .editor-btn-ghost:hover {
909 background: rgba(140,109,255,0.06);
910 border-color: rgba(140,109,255,0.45);
909 background: rgba(91,110,232,0.06);
910 border-color: rgba(91,110,232,0.45);
911911 color: var(--text-strong);
912912 text-decoration: none;
913913 }
914914 .editor-btn-ai {
915915 background: transparent;
916916 color: #c4b5fd;
917 border-color: rgba(140,109,255,0.35);
917 border-color: rgba(91,110,232,0.35);
918918 }
919919 .editor-btn-ai:hover {
920 border-color: rgba(140,109,255,0.65);
921 background: rgba(140,109,255,0.08);
920 border-color: rgba(91,110,232,0.65);
921 background: rgba(91,110,232,0.08);
922922 color: #ddd6fe;
923923 text-decoration: none;
924924 }
984984 width: 10px;
985985 height: 10px;
986986 border: 1.5px solid rgba(164,139,255,0.3);
987 border-top-color: #a48bff;
987 border-top-color: #5b6ee8;
988988 border-radius: 50%;
989989 animation: ai-spin 0.7s linear infinite;
990990 }
10141014 font-weight: 700;
10151015 text-transform: uppercase;
10161016 letter-spacing: 0.1em;
1017 color: #a48bff;
1017 color: #5b6ee8;
10181018 }
10191019 .ai-explain-panel-close {
10201020 background: none;
10881088 align-items: center;
10891089 gap: 4px;
10901090 font-size: 11px;
1091 color: #a48bff;
1092 background: rgba(140,109,255,0.08);
1093 border: 1px solid rgba(140,109,255,0.20);
1091 color: #5b6ee8;
1092 background: rgba(91,110,232,0.08);
1093 border: 1px solid rgba(91,110,232,0.20);
10941094 border-radius: 999px;
10951095 padding: 3px 8px;
10961096 font-weight: 600;
Modifiedsrc/routes/email-verification.tsx+16−16View fileUnifiedSplit
317317 position: absolute;
318318 top: 0; left: 0; right: 0;
319319 height: 2px;
320 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
320 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
321321 opacity: 0.7;
322322 pointer-events: none;
323323 }
325325 position: absolute;
326326 inset: -20% -10% auto auto;
327327 width: 380px; height: 380px;
328 background: radial-gradient(circle, rgba(140,109,255,0.20), rgba(54,197,214,0.10) 45%, transparent 70%);
328 background: radial-gradient(circle, rgba(91,110,232,0.20), rgba(95,143,160,0.10) 45%, transparent 70%);
329329 filter: blur(80px);
330330 opacity: 0.7;
331331 pointer-events: none;
350350 justify-content: center;
351351 width: 18px; height: 18px;
352352 border-radius: 6px;
353 background: rgba(140,109,255,0.14);
354 color: #b69dff;
355 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.35);
353 background: rgba(91,110,232,0.14);
354 color: #5b6ee8;
355 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.35);
356356 }
357357 .ev-crumb { color: var(--text-muted); text-decoration: none; }
358358 .ev-crumb:hover { color: var(--text); }
366366 color: var(--text-strong);
367367 }
368368 .ev-title-grad {
369 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
369 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
370370 -webkit-background-clip: text;
371371 background-clip: text;
372372 -webkit-text-fill-color: transparent;
431431 }
432432 .ev-status.is-on {
433433 border-color: rgba(52,211,153,0.32);
434 background: linear-gradient(135deg, rgba(52,211,153,0.08) 0%, rgba(15,17,26,0) 60%), var(--bg-elevated);
434 background: linear-gradient(135deg, rgba(52,211,153,0.08) 0%, rgba(22,27,34,0) 60%), var(--bg-elevated);
435435 }
436436 .ev-status.is-off {
437437 border-color: rgba(251,191,36,0.32);
438 background: linear-gradient(135deg, rgba(251,191,36,0.06) 0%, rgba(15,17,26,0) 60%), var(--bg-elevated);
438 background: linear-gradient(135deg, rgba(251,191,36,0.06) 0%, rgba(22,27,34,0) 60%), var(--bg-elevated);
439439 }
440440 .ev-status-mark {
441441 flex-shrink: 0;
509509 justify-content: center;
510510 width: 26px; height: 26px;
511511 border-radius: 8px;
512 background: rgba(140,109,255,0.12);
513 color: #b69dff;
514 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.28);
512 background: rgba(91,110,232,0.12);
513 color: #5b6ee8;
514 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.28);
515515 flex-shrink: 0;
516516 }
517517 .ev-section-sub {
540540 transition: transform 120ms ease, box-shadow 120ms ease, background 120ms ease, border-color 120ms ease, color 120ms ease;
541541 }
542542 .ev-btn-primary {
543 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
543 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
544544 color: #fff;
545 box-shadow: 0 6px 18px -4px rgba(140,109,255,0.45), inset 0 1px 0 rgba(255,255,255,0.16);
545 box-shadow: 0 6px 18px -4px rgba(91,110,232,0.45), inset 0 1px 0 rgba(255,255,255,0.16);
546546 }
547547 .ev-btn-primary:hover {
548548 transform: translateY(-1px);
549 box-shadow: 0 10px 24px -6px rgba(140,109,255,0.55), inset 0 1px 0 rgba(255,255,255,0.20);
549 box-shadow: 0 10px 24px -6px rgba(91,110,232,0.55), inset 0 1px 0 rgba(255,255,255,0.20);
550550 color: #fff;
551551 text-decoration: none;
552552 }
556556 border-color: var(--border-strong);
557557 }
558558 .ev-btn-ghost:hover {
559 background: rgba(140,109,255,0.06);
560 border-color: rgba(140,109,255,0.45);
559 background: rgba(91,110,232,0.06);
560 border-color: rgba(91,110,232,0.45);
561561 color: var(--text-strong);
562562 text-decoration: none;
563563 }
Modifiedsrc/routes/enterprise.tsx+7−7View fileUnifiedSplit
358358 position: absolute;
359359 top: 0; left: 8%; right: 8%;
360360 height: 2px;
361 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
361 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
362362 opacity: 0.65;
363363 pointer-events: none;
364364 border-radius: 2px;
368368 top: 6%; left: 50%;
369369 transform: translateX(-50%);
370370 width: 480px; height: 480px;
371 background: radial-gradient(circle, rgba(140,109,255,0.18), rgba(54,197,214,0.10) 45%, transparent 70%);
371 background: radial-gradient(circle, rgba(91,110,232,0.18), rgba(95,143,160,0.10) 45%, transparent 70%);
372372 filter: blur(90px);
373373 opacity: 0.65;
374374 pointer-events: none;
426426 transition: border-color var(--t-fast) var(--ease), transform var(--t-base) var(--ease-out-quart);
427427 }
428428 .ent-feature-card:hover {
429 border-color: rgba(140,109,255,0.35);
429 border-color: rgba(91,110,232,0.35);
430430 transform: translateY(-2px);
431431 }
432432 .ent-feature-icon {
515515 }
516516 .ent-siem-code {
517517 background:
518 linear-gradient(160deg, rgba(140,109,255,0.06), rgba(54,197,214,0.04) 60%, transparent),
518 linear-gradient(160deg, rgba(91,110,232,0.06), rgba(95,143,160,0.04) 60%, transparent),
519519 var(--bg-secondary);
520520 border-left: 1px solid var(--border);
521521 padding: var(--s-10) var(--s-6);
595595 padding: var(--s-10) var(--s-8);
596596 position: relative;
597597 background:
598 radial-gradient(60% 100% at 50% 0%, rgba(140,109,255,0.10), transparent 60%),
598 radial-gradient(60% 100% at 50% 0%, rgba(91,110,232,0.10), transparent 60%),
599599 var(--bg-elevated);
600600 }
601601 .ent-contact-header {
666666 .ent-field input:focus,
667667 .ent-field select:focus,
668668 .ent-field textarea:focus {
669 border-color: rgba(140,109,255,0.55);
670 box-shadow: 0 0 0 3px rgba(140,109,255,0.12);
669 border-color: rgba(91,110,232,0.55);
670 box-shadow: 0 0 0 3px rgba(91,110,232,0.12);
671671 }
672672 .ent-submit { width: 100%; justify-content: center; margin-top: var(--s-2); }
673673
Modifiedsrc/routes/environments.tsx+20−20View fileUnifiedSplit
140140 position: absolute;
141141 top: 0; left: 0; right: 0;
142142 height: 2px;
143 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
143 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
144144 opacity: 0.7;
145145 pointer-events: none;
146146 }
148148 position: absolute;
149149 inset: -30% -10% auto auto;
150150 width: 320px; height: 320px;
151 background: radial-gradient(circle, rgba(140,109,255,0.18), rgba(54,197,214,0.08) 45%, transparent 70%);
151 background: radial-gradient(circle, rgba(91,110,232,0.18), rgba(95,143,160,0.08) 45%, transparent 70%);
152152 filter: blur(70px);
153153 opacity: 0.7;
154154 pointer-events: none;
180180 .envs-eyebrow-dot {
181181 width: 8px; height: 8px;
182182 border-radius: 9999px;
183 background: linear-gradient(135deg, #8c6dff, #36c5d6);
184 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
183 background: linear-gradient(135deg, #5b6ee8, #5f8fa0);
184 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
185185 }
186186 .envs-title {
187187 margin: 0 0 6px;
193193 color: var(--text-strong);
194194 }
195195 .envs-title-grad {
196 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
196 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
197197 -webkit-background-clip: text;
198198 background-clip: text;
199199 -webkit-text-fill-color: transparent;
258258 position: absolute;
259259 top: 0; left: 14px; right: 14px;
260260 height: 1px;
261 background: linear-gradient(90deg, transparent 0%, rgba(140,109,255,0.45) 30%, rgba(54,197,214,0.45) 70%, transparent 100%);
261 background: linear-gradient(90deg, transparent 0%, rgba(91,110,232,0.45) 30%, rgba(95,143,160,0.45) 70%, transparent 100%);
262262 opacity: 0;
263263 transition: opacity 160ms ease;
264264 }
265265 .envs-card:hover {
266266 transform: translateY(-1px);
267 border-color: rgba(140,109,255,0.32);
267 border-color: rgba(91,110,232,0.32);
268268 box-shadow: 0 8px 22px -10px rgba(0,0,0,0.40);
269269 }
270270 .envs-card:hover::before { opacity: 1; }
329329 box-shadow: inset 0 0 0 1px rgba(52,211,153,0.30);
330330 }
331331 .envs-pill.is-protected {
332 background: rgba(140,109,255,0.12);
332 background: rgba(91,110,232,0.12);
333333 color: #c4b5fd;
334 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.32);
334 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.32);
335335 }
336336 .envs-pill.is-warn {
337337 background: rgba(251,191,36,0.10);
388388 box-sizing: border-box;
389389 }
390390 .envs-input:focus, .envs-textarea:focus {
391 border-color: rgba(140,109,255,0.50);
392 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
391 border-color: rgba(91,110,232,0.50);
392 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
393393 }
394394 .envs-check {
395395 display: inline-flex;
437437 font-family: inherit;
438438 }
439439 .envs-btn:hover {
440 background: rgba(140,109,255,0.07);
441 border-color: rgba(140,109,255,0.45);
440 background: rgba(91,110,232,0.07);
441 border-color: rgba(91,110,232,0.45);
442442 color: var(--text-strong);
443443 text-decoration: none;
444444 }
445445 .envs-btn.is-primary {
446 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
446 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
447447 color: #fff;
448448 border-color: transparent;
449 box-shadow: 0 4px 12px -4px rgba(140,109,255,0.45), inset 0 1px 0 rgba(255,255,255,0.14);
449 box-shadow: 0 4px 12px -4px rgba(91,110,232,0.45), inset 0 1px 0 rgba(255,255,255,0.14);
450450 }
451451 .envs-btn.is-primary:hover { transform: translateY(-1px); color: #fff; }
452452 .envs-btn.is-danger {
475475 inset: auto auto -40% 50%;
476476 transform: translateX(-50%);
477477 width: 320px; height: 320px;
478 background: radial-gradient(circle, rgba(140,109,255,0.18), rgba(54,197,214,0.08) 45%, transparent 70%);
478 background: radial-gradient(circle, rgba(91,110,232,0.18), rgba(95,143,160,0.08) 45%, transparent 70%);
479479 filter: blur(70px);
480480 opacity: 0.7;
481481 pointer-events: none;
485485 width: 44px; height: 44px;
486486 margin: 0 auto var(--space-3);
487487 border-radius: 14px;
488 background: linear-gradient(135deg, rgba(140,109,255,0.18), rgba(54,197,214,0.14));
489 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.32);
488 background: linear-gradient(135deg, rgba(91,110,232,0.18), rgba(95,143,160,0.14));
489 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.32);
490490 display: flex; align-items: center; justify-content: center;
491 color: #b69dff;
491 color: #5b6ee8;
492492 }
493493 .envs-empty-title {
494494 font-family: var(--font-display);
519519 position: absolute;
520520 top: 0; left: 14px; right: 14px;
521521 height: 1px;
522 background: linear-gradient(90deg, transparent 0%, rgba(140,109,255,0.40) 30%, rgba(54,197,214,0.40) 70%, transparent 100%);
522 background: linear-gradient(90deg, transparent 0%, rgba(91,110,232,0.40) 30%, rgba(95,143,160,0.40) 70%, transparent 100%);
523523 opacity: 0.7;
524524 }
525525 .envs-create-title {
Modifiedsrc/routes/explain.tsx+16−16View fileUnifiedSplit
5555 position: absolute;
5656 top: 0; left: 0; right: 0;
5757 height: 2px;
58 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
58 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
5959 opacity: 0.7;
6060 pointer-events: none;
6161 }
6363 position: absolute;
6464 inset: -20% -10% auto auto;
6565 width: 460px; height: 460px;
66 background: radial-gradient(circle, rgba(140,109,255,0.18), rgba(54,197,214,0.09) 45%, transparent 70%);
66 background: radial-gradient(circle, rgba(91,110,232,0.18), rgba(95,143,160,0.09) 45%, transparent 70%);
6767 filter: blur(90px);
6868 opacity: 0.7;
6969 pointer-events: none;
8080 .explain-eyebrow .pill {
8181 display: inline-flex; align-items: center; justify-content: center;
8282 width: 18px; height: 18px; border-radius: 6px;
83 background: rgba(140,109,255,0.14);
84 color: #b69dff;
85 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.35);
83 background: rgba(91,110,232,0.14);
84 color: #5b6ee8;
85 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.35);
8686 }
8787 .explain-title {
8888 font-size: clamp(28px, 4vw, 40px);
9494 color: var(--text-strong);
9595 }
9696 .explain-title-grad {
97 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
97 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
9898 -webkit-background-clip: text;
9999 background-clip: text;
100100 -webkit-text-fill-color: transparent;
108108 .explain-trigger-btn {
109109 display: inline-flex; align-items: center; gap: 8px;
110110 padding: 11px 22px;
111 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
111 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
112112 color: #fff;
113113 border: 1px solid transparent;
114114 border-radius: 10px;
115115 font-size: 14px; font-weight: 600;
116116 text-decoration: none; cursor: pointer;
117 box-shadow: 0 6px 18px -4px rgba(140,109,255,0.45), inset 0 1px 0 rgba(255,255,255,0.16);
117 box-shadow: 0 6px 18px -4px rgba(91,110,232,0.45), inset 0 1px 0 rgba(255,255,255,0.16);
118118 font-family: inherit;
119119 transition: transform 120ms ease, box-shadow 120ms ease;
120120 }
121121 .explain-trigger-btn:hover {
122122 transform: translateY(-1px);
123 box-shadow: 0 10px 24px -6px rgba(140,109,255,0.55), inset 0 1px 0 rgba(255,255,255,0.20);
123 box-shadow: 0 10px 24px -6px rgba(91,110,232,0.55), inset 0 1px 0 rgba(255,255,255,0.20);
124124 }
125125 .explain-trigger-btn svg { display: block; }
126126
135135 }
136136 .explain-spinner {
137137 width: 36px; height: 36px; flex-shrink: 0;
138 border: 3px solid rgba(140,109,255,0.18);
139 border-top-color: #8c6dff;
138 border: 3px solid rgba(91,110,232,0.18);
139 border-top-color: #5b6ee8;
140140 border-radius: 50%;
141141 animation: explain-spin 0.8s linear infinite;
142142 }
190190 .explain-card-icon {
191191 display: flex; align-items: center; justify-content: center;
192192 width: 22px; height: 22px; border-radius: 6px;
193 background: rgba(140,109,255,0.12);
194 color: #b69dff;
193 background: rgba(91,110,232,0.12);
194 color: #5b6ee8;
195195 flex-shrink: 0;
196196 }
197197 .explain-card-title {
389389 display: inline-flex; align-items: center; gap: 6px;
390390 padding: 4px 10px;
391391 border-radius: 9999px;
392 background: rgba(140,109,255,0.08);
393 border: 1px solid rgba(140,109,255,0.22);
392 background: rgba(91,110,232,0.08);
393 border: 1px solid rgba(91,110,232,0.22);
394394 color: var(--text-muted);
395395 font-size: 11px; letter-spacing: 0.04em;
396396 text-transform: uppercase; font-weight: 600;
397397 }
398398 .explain-poweredby-pill .dot {
399399 width: 6px; height: 6px; border-radius: 50%;
400 background: linear-gradient(135deg, #8c6dff, #36c5d6);
400 background: linear-gradient(135deg, #5b6ee8, #5f8fa0);
401401 }
402402
403403 /* Cached badge */
Modifiedsrc/routes/explore.tsx+31−31View fileUnifiedSplit
4747 position: absolute;
4848 top: 0; left: 0; right: 0;
4949 height: 2px;
50 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
50 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
5151 opacity: 0.75;
5252 pointer-events: none;
5353 }
6262 .explore-hero-orb {
6363 position: absolute;
6464 inset: 0;
65 background: radial-gradient(circle, rgba(140,109,255,0.22), rgba(54,197,214,0.10) 45%, transparent 70%);
65 background: radial-gradient(circle, rgba(91,110,232,0.22), rgba(95,143,160,0.10) 45%, transparent 70%);
6666 filter: blur(80px);
6767 opacity: 0.75;
6868 animation: exploreHeroOrb 16s ease-in-out infinite;
7171 position: absolute;
7272 inset: auto auto -25% -15%;
7373 width: 320px; height: 320px;
74 background: radial-gradient(circle, rgba(54,197,214,0.16), rgba(140,109,255,0.06) 50%, transparent 75%);
74 background: radial-gradient(circle, rgba(95,143,160,0.16), rgba(91,110,232,0.06) 50%, transparent 75%);
7575 filter: blur(70px);
7676 opacity: 0.55;
7777 pointer-events: none;
112112 display: inline-block;
113113 width: 6px; height: 6px;
114114 border-radius: 9999px;
115 background: linear-gradient(135deg, #8c6dff, #36c5d6);
116 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
115 background: linear-gradient(135deg, #5b6ee8, #5f8fa0);
116 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
117117 }
118118 .explore-hero-title {
119119 font-family: var(--font-display);
125125 color: var(--text-strong);
126126 }
127127 .explore-hero-title-grad {
128 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 45%, #36c5d6 100%);
128 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 45%, #5f8fa0 100%);
129129 -webkit-background-clip: text;
130130 background-clip: text;
131131 -webkit-text-fill-color: transparent;
176176 }
177177 .explore-hero-search input:focus {
178178 outline: none;
179 border-color: rgba(140,109,255,0.65);
180 box-shadow: 0 0 0 4px rgba(140,109,255,0.14);
179 border-color: rgba(91,110,232,0.65);
180 box-shadow: 0 0 0 4px rgba(91,110,232,0.14);
181181 background: var(--bg-secondary);
182182 }
183183 .explore-hero-search .btn { padding: 12px 22px; border-radius: 12px; }
219219 }
220220 .explore-filter:hover { color: var(--text-strong); text-decoration: none; }
221221 .explore-filter.is-active {
222 background: linear-gradient(135deg, rgba(140,109,255,0.18), rgba(54,197,214,0.14));
222 background: linear-gradient(135deg, rgba(91,110,232,0.18), rgba(95,143,160,0.14));
223223 color: var(--text-strong);
224 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.30);
224 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.30);
225225 }
226226 .explore-filter-icon {
227227 width: 13px; height: 13px;
251251 gap: 6px;
252252 padding: 4px 12px;
253253 border-radius: 9999px;
254 background: rgba(140,109,255,0.12);
254 background: rgba(91,110,232,0.12);
255255 color: var(--text-strong);
256 border: 1px solid rgba(140,109,255,0.30);
256 border: 1px solid rgba(91,110,232,0.30);
257257 font-size: 12.5px;
258258 font-weight: 600;
259259 }
291291 width: 3px;
292292 height: 16px;
293293 border-radius: 2px;
294 background: linear-gradient(180deg, #8c6dff, #36c5d6);
294 background: linear-gradient(180deg, #5b6ee8, #5f8fa0);
295295 }
296296 .explore-section-sub {
297297 font-size: 12.5px;
325325 position: absolute;
326326 top: 0; left: 0; right: 0;
327327 height: 2px;
328 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
328 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
329329 opacity: 0;
330330 transition: opacity 180ms ease;
331331 pointer-events: none;
332332 }
333333 .explore-card:hover {
334334 transform: translateY(-3px);
335 border-color: rgba(140,109,255,0.45);
336 box-shadow: 0 14px 30px -16px rgba(0,0,0,0.55), 0 0 24px -8px rgba(140,109,255,0.22);
335 border-color: rgba(91,110,232,0.45);
336 box-shadow: 0 14px 30px -16px rgba(0,0,0,0.55), 0 0 24px -8px rgba(91,110,232,0.22);
337337 text-decoration: none;
338338 }
339339 .explore-card:hover::before { opacity: 0.85; }
340340 .explore-card:focus-visible {
341341 outline: none;
342 border-color: rgba(140,109,255,0.65);
343 box-shadow: 0 0 0 3px rgba(140,109,255,0.22);
342 border-color: rgba(91,110,232,0.65);
343 box-shadow: 0 0 0 3px rgba(91,110,232,0.22);
344344 }
345345 .explore-card-head {
346346 display: flex;
359359 font-weight: 700;
360360 font-size: 14px;
361361 color: #fff;
362 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
362 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
363363 flex-shrink: 0;
364364 letter-spacing: -0.01em;
365 box-shadow: 0 4px 12px -4px rgba(140,109,255,0.45);
365 box-shadow: 0 4px 12px -4px rgba(91,110,232,0.45);
366366 }
367367 .explore-card-name {
368368 display: flex;
450450 border: 1px solid rgba(255,180,94,0.28);
451451 }
452452 .explore-pill-fork {
453 background: rgba(54,197,214,0.10);
454 color: #36c5d6;
455 border: 1px solid rgba(54,197,214,0.28);
453 background: rgba(95,143,160,0.10);
454 color: #5f8fa0;
455 border: 1px solid rgba(95,143,160,0.28);
456456 }
457457 .explore-pill-archived {
458458 background: rgba(255,255,255,0.04);
460460 border: 1px solid var(--border);
461461 }
462462 .explore-pill-template {
463 background: rgba(140,109,255,0.12);
463 background: rgba(91,110,232,0.12);
464464 color: var(--text-strong);
465 border: 1px solid rgba(140,109,255,0.30);
465 border: 1px solid rgba(91,110,232,0.30);
466466 }
467467
468468 /* ─── Loading skeleton (used when JS later swaps in async fragments) ─── */
515515 position: absolute;
516516 inset: -40% -20% auto auto;
517517 width: 320px; height: 320px;
518 background: radial-gradient(circle, rgba(140,109,255,0.18), rgba(54,197,214,0.08) 50%, transparent 75%);
518 background: radial-gradient(circle, rgba(91,110,232,0.18), rgba(95,143,160,0.08) 50%, transparent 75%);
519519 filter: blur(70px);
520520 opacity: 0.55;
521521 pointer-events: none;
627627 position: absolute;
628628 top: 0; left: 0; right: 0;
629629 height: 2px;
630 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
630 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
631631 opacity: 0.7;
632632 pointer-events: none;
633633 }
634634 .explore-gh-callout-icon {
635635 width: 40px; height: 40px;
636636 border-radius: 10px;
637 background: rgba(140,109,255,0.10);
638 border: 1px solid rgba(140,109,255,0.20);
637 background: rgba(91,110,232,0.10);
638 border: 1px solid rgba(91,110,232,0.20);
639639 display: flex; align-items: center; justify-content: center;
640640 color: var(--accent);
641641 flex-shrink: 0;
10321032 y2="96"
10331033 gradientUnits="userSpaceOnUse"
10341034 >
1035 <stop stop-color="#8c6dff" />
1036 <stop offset="1" stop-color="#36c5d6" />
1035 <stop stop-color="#5b6ee8" />
1036 <stop offset="1" stop-color="#5f8fa0" />
10371037 </linearGradient>
10381038 </defs>
10391039 <circle
Modifiedsrc/routes/follows.tsx+15−15View fileUnifiedSplit
8484 .follows-eyebrow-dot {
8585 width: 8px; height: 8px;
8686 border-radius: 9999px;
87 background: linear-gradient(135deg, #8c6dff, #36c5d6);
88 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
87 background: linear-gradient(135deg, #5b6ee8, #5f8fa0);
88 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
8989 }
9090 .follows-title {
9191 font-family: var(--font-display);
9797 color: var(--text-strong);
9898 }
9999 .follows-title-grad {
100 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
100 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
101101 -webkit-background-clip: text;
102102 background-clip: text;
103103 -webkit-text-fill-color: transparent;
145145 text-decoration: none;
146146 }
147147 .follows-tab.is-active {
148 background: linear-gradient(135deg, rgba(140,109,255,0.16), rgba(54,197,214,0.14));
148 background: linear-gradient(135deg, rgba(91,110,232,0.16), rgba(95,143,160,0.14));
149149 color: #e9e2ff;
150 border-color: rgba(140,109,255,0.40);
150 border-color: rgba(91,110,232,0.40);
151151 }
152152 .follows-tab-count {
153153 font-family: var(--font-mono);
168168 position: absolute;
169169 top: 0; left: 0; right: 0;
170170 height: 2px;
171 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
171 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
172172 opacity: 0.55;
173173 pointer-events: none;
174174 }
197197 .follows-avatar {
198198 width: 48px; height: 48px;
199199 border-radius: 9999px;
200 background: linear-gradient(135deg, rgba(140,109,255,0.30), rgba(54,197,214,0.25));
200 background: linear-gradient(135deg, rgba(91,110,232,0.30), rgba(95,143,160,0.25));
201201 color: #ffffff;
202202 display: inline-flex;
203203 align-items: center;
268268 transition: transform 120ms ease, box-shadow 120ms ease, background 120ms ease, border-color 120ms ease, color 120ms ease;
269269 }
270270 .follows-btn-primary {
271 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
271 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
272272 color: #ffffff;
273 box-shadow: 0 6px 18px -6px rgba(140,109,255,0.50), inset 0 1px 0 rgba(255,255,255,0.16);
273 box-shadow: 0 6px 18px -6px rgba(91,110,232,0.50), inset 0 1px 0 rgba(255,255,255,0.16);
274274 }
275275 .follows-btn-primary:hover {
276276 transform: translateY(-1px);
277 box-shadow: 0 10px 24px -8px rgba(140,109,255,0.60), inset 0 1px 0 rgba(255,255,255,0.20);
277 box-shadow: 0 10px 24px -8px rgba(91,110,232,0.60), inset 0 1px 0 rgba(255,255,255,0.20);
278278 color: #ffffff;
279279 text-decoration: none;
280280 }
284284 border-color: var(--border-strong);
285285 }
286286 .follows-btn-ghost:hover {
287 background: rgba(140,109,255,0.06);
288 border-color: rgba(140,109,255,0.45);
287 background: rgba(91,110,232,0.06);
288 border-color: rgba(91,110,232,0.45);
289289 color: var(--text-strong);
290290 text-decoration: none;
291291 }
304304 position: absolute;
305305 inset: -40% 30% auto 30%;
306306 height: 280px;
307 background: radial-gradient(circle, rgba(140,109,255,0.18), rgba(54,197,214,0.10) 45%, transparent 70%);
307 background: radial-gradient(circle, rgba(91,110,232,0.18), rgba(95,143,160,0.10) 45%, transparent 70%);
308308 filter: blur(70px);
309309 opacity: 0.7;
310310 pointer-events: none;
314314 .follows-empty-icon {
315315 width: 56px; height: 56px;
316316 border-radius: 9999px;
317 background: linear-gradient(135deg, rgba(140,109,255,0.25), rgba(54,197,214,0.20));
318 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.40);
317 background: linear-gradient(135deg, rgba(91,110,232,0.25), rgba(95,143,160,0.20));
318 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.40);
319319 display: inline-flex;
320320 align-items: center;
321321 justify-content: center;
Modifiedsrc/routes/fork.tsx+17−17View fileUnifiedSplit
4949 position: absolute;
5050 top: 0; left: 0; right: 0;
5151 height: 2px;
52 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
52 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
5353 opacity: 0.75;
5454 pointer-events: none;
5555 }
5757 position: absolute;
5858 inset: -30% -10% auto auto;
5959 width: 420px; height: 420px;
60 background: radial-gradient(circle, rgba(140,109,255,0.22), rgba(54,197,214,0.10) 45%, transparent 70%);
60 background: radial-gradient(circle, rgba(91,110,232,0.22), rgba(95,143,160,0.10) 45%, transparent 70%);
6161 filter: blur(80px);
6262 opacity: 0.7;
6363 pointer-events: none;
8787 .fork-eyebrow-dot {
8888 width: 8px; height: 8px;
8989 border-radius: 9999px;
90 background: linear-gradient(135deg, #8c6dff, #36c5d6);
91 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
90 background: linear-gradient(135deg, #5b6ee8, #5f8fa0);
91 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
9292 }
9393 .fork-eyebrow strong { color: var(--accent); font-weight: 700; }
9494 .fork-title {
101101 color: var(--text-strong);
102102 }
103103 .fork-title-grad {
104 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
104 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
105105 -webkit-background-clip: text;
106106 background-clip: text;
107107 -webkit-text-fill-color: transparent;
133133 position: absolute;
134134 left: 0; top: 0; bottom: 0;
135135 width: 3px;
136 background: linear-gradient(180deg, #8c6dff 0%, #36c5d6 100%);
136 background: linear-gradient(180deg, #5b6ee8 0%, #5f8fa0 100%);
137137 }
138138 .fork-source-icon {
139139 flex-shrink: 0;
140140 width: 44px; height: 44px;
141141 border-radius: 12px;
142 background: linear-gradient(135deg, rgba(140,109,255,0.20), rgba(54,197,214,0.14));
143 border: 1px solid rgba(140,109,255,0.35);
142 background: linear-gradient(135deg, rgba(91,110,232,0.20), rgba(95,143,160,0.14));
143 border: 1px solid rgba(91,110,232,0.35);
144144 display: inline-flex;
145145 align-items: center;
146146 justify-content: center;
200200 justify-content: center;
201201 width: 26px; height: 26px;
202202 border-radius: 50%;
203 background: linear-gradient(135deg, rgba(140,109,255,0.20), rgba(54,197,214,0.14));
203 background: linear-gradient(135deg, rgba(91,110,232,0.20), rgba(95,143,160,0.14));
204204 color: #c5b3ff;
205 border: 1px solid rgba(140,109,255,0.40);
205 border: 1px solid rgba(91,110,232,0.40);
206206 font-family: var(--font-display);
207207 font-weight: 700;
208208 font-size: 13px;
239239 .fork-dest-avatar {
240240 width: 28px; height: 28px;
241241 border-radius: 50%;
242 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
242 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
243243 color: #fff;
244244 display: inline-flex;
245245 align-items: center;
318318 }
319319 .fork-submit {
320320 appearance: none;
321 border: 1px solid rgba(140,109,255,0.45);
322 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
321 border: 1px solid rgba(91,110,232,0.45);
322 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
323323 color: #fff;
324324 padding: 12px 22px;
325325 border-radius: 10px;
327327 font-weight: 700;
328328 font-size: 14px;
329329 cursor: pointer;
330 box-shadow: 0 10px 24px -10px rgba(140,109,255,0.55);
330 box-shadow: 0 10px 24px -10px rgba(91,110,232,0.55);
331331 transition: transform 140ms ease, box-shadow 140ms ease, filter 140ms ease;
332332 }
333333 .fork-submit:hover {
334334 transform: translateY(-1px);
335 box-shadow: 0 14px 28px -10px rgba(140,109,255,0.7);
335 box-shadow: 0 14px 28px -10px rgba(91,110,232,0.7);
336336 filter: brightness(1.06);
337337 }
338338 .fork-submit:focus-visible {
339 outline: 3px solid rgba(140,109,255,0.45);
339 outline: 3px solid rgba(91,110,232,0.45);
340340 outline-offset: 2px;
341341 }
342342 .fork-submit:disabled {
365365 position: absolute;
366366 inset: -40% 25% auto 25%;
367367 width: 50%; height: 240px;
368 background: radial-gradient(circle, rgba(140,109,255,0.18), transparent 65%);
368 background: radial-gradient(circle, rgba(91,110,232,0.18), transparent 65%);
369369 filter: blur(60px);
370370 opacity: 0.7;
371371 pointer-events: none;
Modifiedsrc/routes/gates.tsx+35−35View fileUnifiedSplit
8888 position: absolute;
8989 top: 0; left: 0; right: 0;
9090 height: 2px;
91 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
91 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
9292 opacity: 0.7;
9393 pointer-events: none;
9494 }
9696 position: absolute;
9797 inset: -20% -10% auto auto;
9898 width: 380px; height: 380px;
99 background: radial-gradient(circle, rgba(140,109,255,0.20), rgba(54,197,214,0.10) 45%, transparent 70%);
99 background: radial-gradient(circle, rgba(91,110,232,0.20), rgba(95,143,160,0.10) 45%, transparent 70%);
100100 filter: blur(80px);
101101 opacity: 0.7;
102102 pointer-events: none;
130130 justify-content: center;
131131 width: 18px; height: 18px;
132132 border-radius: 6px;
133 background: rgba(140,109,255,0.14);
134 color: #b69dff;
135 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.35);
133 background: rgba(91,110,232,0.14);
134 color: #5b6ee8;
135 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.35);
136136 }
137137 .gates-title {
138138 font-size: clamp(26px, 3.6vw, 36px);
144144 color: var(--text-strong);
145145 }
146146 .gates-title-grad {
147 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
147 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
148148 -webkit-background-clip: text;
149149 background-clip: text;
150150 -webkit-text-fill-color: transparent;
214214 }
215215 .gates-status.is-on {
216216 border-color: rgba(52,211,153,0.32);
217 background: linear-gradient(135deg, rgba(52,211,153,0.08) 0%, rgba(15,17,26,0) 60%), var(--bg-elevated);
217 background: linear-gradient(135deg, rgba(52,211,153,0.08) 0%, rgba(22,27,34,0) 60%), var(--bg-elevated);
218218 }
219219 .gates-status.is-warn {
220220 border-color: rgba(248,113,113,0.32);
221 background: linear-gradient(135deg, rgba(248,113,113,0.08) 0%, rgba(15,17,26,0) 60%), var(--bg-elevated);
221 background: linear-gradient(135deg, rgba(248,113,113,0.08) 0%, rgba(22,27,34,0) 60%), var(--bg-elevated);
222222 }
223223 .gates-status.is-empty {
224224 border-color: rgba(251,191,36,0.30);
225 background: linear-gradient(135deg, rgba(251,191,36,0.06) 0%, rgba(15,17,26,0) 60%), var(--bg-elevated);
225 background: linear-gradient(135deg, rgba(251,191,36,0.06) 0%, rgba(22,27,34,0) 60%), var(--bg-elevated);
226226 }
227227 .gates-status-row {
228228 display: flex;
238238 align-items: center;
239239 justify-content: center;
240240 color: #fff;
241 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
242 box-shadow: 0 8px 20px -8px rgba(140,109,255,0.50), inset 0 1px 0 rgba(255,255,255,0.18);
241 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
242 box-shadow: 0 8px 20px -8px rgba(91,110,232,0.50), inset 0 1px 0 rgba(255,255,255,0.18);
243243 }
244244 .gates-status.is-on .gates-status-mark {
245245 background: linear-gradient(135deg, #34d399 0%, #10b981 100%);
304304 opacity: 0.55;
305305 }
306306 .gates-stat.is-pass { color: #34d399; }
307 .gates-stat.is-repaired { color: #b69dff; }
307 .gates-stat.is-repaired { color: #5b6ee8; }
308308 .gates-stat.is-fail { color: #f87171; }
309309 .gates-stat.is-skipped { color: var(--text-muted); }
310310 .gates-stat-num {
354354 justify-content: center;
355355 width: 26px; height: 26px;
356356 border-radius: 8px;
357 background: rgba(140,109,255,0.12);
358 color: #b69dff;
359 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.28);
357 background: rgba(91,110,232,0.12);
358 color: #5b6ee8;
359 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.28);
360360 flex-shrink: 0;
361361 }
362362 .gates-section-sub {
384384 transition: border-color 140ms ease, transform 140ms ease;
385385 }
386386 .gates-run:hover {
387 border-color: rgba(140,109,255,0.30);
387 border-color: rgba(91,110,232,0.30);
388388 transform: translateY(-1px);
389389 }
390390 .gates-run-light {
397397 }
398398 .gates-run-light.is-pass { background: #34d399; box-shadow: 0 0 0 3px rgba(52,211,153,0.22), 0 0 8px rgba(52,211,153,0.40); }
399399 .gates-run-light.is-fail { background: #f87171; box-shadow: 0 0 0 3px rgba(248,113,113,0.22), 0 0 10px rgba(248,113,113,0.45); }
400 .gates-run-light.is-repaired { background: #b69dff; box-shadow: 0 0 0 3px rgba(140,109,255,0.22), 0 0 8px rgba(140,109,255,0.40); }
400 .gates-run-light.is-repaired { background: #5b6ee8; box-shadow: 0 0 0 3px rgba(91,110,232,0.22), 0 0 8px rgba(91,110,232,0.40); }
401401 .gates-run-body { flex: 1; min-width: 0; }
402402 .gates-run-head {
403403 display: flex;
423423 }
424424 .gates-run-pill.is-pass { background: rgba(52,211,153,0.14); color: #6ee7b7; box-shadow: inset 0 0 0 1px rgba(52,211,153,0.30); }
425425 .gates-run-pill.is-fail { background: rgba(248,113,113,0.14); color: #fecaca; box-shadow: inset 0 0 0 1px rgba(248,113,113,0.30); }
426 .gates-run-pill.is-repaired { background: rgba(140,109,255,0.14); color: #c4b5fd; box-shadow: inset 0 0 0 1px rgba(140,109,255,0.30); }
426 .gates-run-pill.is-repaired { background: rgba(91,110,232,0.14); color: #c4b5fd; box-shadow: inset 0 0 0 1px rgba(91,110,232,0.30); }
427427 .gates-run-pill.is-skipped { background: rgba(255,255,255,0.04); color: var(--text-muted); box-shadow: inset 0 0 0 1px var(--border); }
428428 .gates-run-meta {
429429 margin-top: 4px;
472472 position: absolute;
473473 inset: -30% auto auto -10%;
474474 width: 260px; height: 260px;
475 background: radial-gradient(circle, rgba(140,109,255,0.16), rgba(54,197,214,0.08) 45%, transparent 70%);
475 background: radial-gradient(circle, rgba(91,110,232,0.16), rgba(95,143,160,0.08) 45%, transparent 70%);
476476 filter: blur(60px);
477477 opacity: 0.8;
478478 pointer-events: none;
483483 margin: 0 auto var(--space-3);
484484 width: 52px; height: 52px;
485485 border-radius: 14px;
486 background: linear-gradient(135deg, rgba(140,109,255,0.18), rgba(54,197,214,0.12));
487 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.30);
486 background: linear-gradient(135deg, rgba(91,110,232,0.18), rgba(95,143,160,0.12));
487 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.30);
488488 display: flex;
489489 align-items: center;
490490 justify-content: center;
525525 transition: background 120ms ease;
526526 }
527527 .gates-toggle:first-child { border-top: none; }
528 .gates-toggle:hover { background: rgba(140,109,255,0.04); }
528 .gates-toggle:hover { background: rgba(91,110,232,0.04); }
529529 .gates-toggle-input {
530530 margin-top: 3px;
531531 flex-shrink: 0;
532532 width: 18px; height: 18px;
533 accent-color: #8c6dff;
533 accent-color: #5b6ee8;
534534 cursor: pointer;
535535 }
536536 .gates-toggle-text { flex: 1; min-width: 0; }
555555 margin-bottom: 10px;
556556 transition: border-color 140ms ease;
557557 }
558 .gates-rule:hover { border-color: rgba(140,109,255,0.28); }
558 .gates-rule:hover { border-color: rgba(91,110,232,0.28); }
559559 .gates-rule-head {
560560 display: flex;
561561 align-items: center;
567567 font-family: var(--font-mono);
568568 font-size: 13px;
569569 color: var(--text-strong);
570 background: rgba(140,109,255,0.10);
571 border: 1px solid rgba(140,109,255,0.30);
570 background: rgba(91,110,232,0.10);
571 border: 1px solid rgba(91,110,232,0.30);
572572 padding: 3px 10px;
573573 border-radius: 8px;
574574 font-weight: 600;
641641 }
642642 .gates-input:focus,
643643 .gates-select:focus {
644 border-color: var(--border-focus, rgba(140,109,255,0.55));
645 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
644 border-color: var(--border-focus, rgba(91,110,232,0.55));
645 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
646646 }
647647 .gates-number {
648648 width: 80px;
666666 cursor: pointer;
667667 transition: border-color 120ms ease, background 120ms ease;
668668 }
669 .gates-checkbox:hover { border-color: rgba(140,109,255,0.45); background: rgba(140,109,255,0.06); }
670 .gates-checkbox input { accent-color: #8c6dff; cursor: pointer; }
669 .gates-checkbox:hover { border-color: rgba(91,110,232,0.45); background: rgba(91,110,232,0.06); }
670 .gates-checkbox input { accent-color: #5b6ee8; cursor: pointer; }
671671 .gates-checkbox.is-num { gap: 8px; padding: 4px 8px 4px 11px; }
672672
673673 /* ─── Buttons ─── */
687687 transition: transform 120ms ease, box-shadow 120ms ease, background 120ms ease, border-color 120ms ease, color 120ms ease;
688688 }
689689 .gates-btn-primary {
690 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
690 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
691691 color: #fff;
692 box-shadow: 0 6px 18px -4px rgba(140,109,255,0.45), inset 0 1px 0 rgba(255,255,255,0.16);
692 box-shadow: 0 6px 18px -4px rgba(91,110,232,0.45), inset 0 1px 0 rgba(255,255,255,0.16);
693693 }
694694 .gates-btn-primary:hover {
695695 transform: translateY(-1px);
696 box-shadow: 0 10px 24px -6px rgba(140,109,255,0.55), inset 0 1px 0 rgba(255,255,255,0.20);
696 box-shadow: 0 10px 24px -6px rgba(91,110,232,0.55), inset 0 1px 0 rgba(255,255,255,0.20);
697697 color: #fff;
698698 text-decoration: none;
699699 }
703703 border-color: var(--border-strong);
704704 }
705705 .gates-btn-ghost:hover {
706 background: rgba(140,109,255,0.06);
707 border-color: rgba(140,109,255,0.45);
706 background: rgba(91,110,232,0.06);
707 border-color: rgba(91,110,232,0.45);
708708 color: var(--text-strong);
709709 text-decoration: none;
710710 }
Modifiedsrc/routes/gists.tsx+22−22View fileUnifiedSplit
7171 .gists-eyebrow-dot {
7272 width: 8px; height: 8px;
7373 border-radius: 9999px;
74 background: linear-gradient(135deg, #8c6dff, #36c5d6);
75 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
74 background: linear-gradient(135deg, #5b6ee8, #5f8fa0);
75 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
7676 }
7777 .gists-title {
7878 font-family: var(--font-display);
8484 color: var(--text-strong);
8585 }
8686 .gists-title-grad {
87 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
87 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
8888 -webkit-background-clip: text;
8989 background-clip: text;
9090 -webkit-text-fill-color: transparent;
117117 transition: transform 120ms ease, box-shadow 120ms ease, background 120ms ease, border-color 120ms ease, color 120ms ease;
118118 }
119119 .gists-btn-primary {
120 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
120 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
121121 color: #ffffff;
122 box-shadow: 0 6px 18px -6px rgba(140,109,255,0.50), inset 0 1px 0 rgba(255,255,255,0.16);
122 box-shadow: 0 6px 18px -6px rgba(91,110,232,0.50), inset 0 1px 0 rgba(255,255,255,0.16);
123123 }
124124 .gists-btn-primary:hover {
125125 transform: translateY(-1px);
126 box-shadow: 0 10px 24px -8px rgba(140,109,255,0.60), inset 0 1px 0 rgba(255,255,255,0.20);
126 box-shadow: 0 10px 24px -8px rgba(91,110,232,0.60), inset 0 1px 0 rgba(255,255,255,0.20);
127127 text-decoration: none;
128128 color: #ffffff;
129129 }
133133 border-color: var(--border-strong);
134134 }
135135 .gists-btn-ghost:hover {
136 background: rgba(140,109,255,0.06);
137 border-color: rgba(140,109,255,0.45);
136 background: rgba(91,110,232,0.06);
137 border-color: rgba(91,110,232,0.45);
138138 color: var(--text-strong);
139139 text-decoration: none;
140140 }
249249 font-variant-numeric: tabular-nums;
250250 }
251251 .gists-slug:hover {
252 border-color: rgba(140,109,255,0.45);
252 border-color: rgba(91,110,232,0.45);
253253 color: #c4b5fd;
254254 text-decoration: none;
255255 }
268268 }
269269 .gists-pill .dot { width: 6px; height: 6px; border-radius: 9999px; background: currentColor; }
270270 .gists-pill.is-lang {
271 background: rgba(140,109,255,0.12);
271 background: rgba(91,110,232,0.12);
272272 color: #c4b5fd;
273 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.30);
273 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.30);
274274 font-family: var(--font-mono);
275275 }
276276 .gists-pill.is-public {
284284 box-shadow: inset 0 0 0 1px rgba(251,191,36,0.32);
285285 }
286286 .gists-pill.is-count {
287 background: rgba(54,197,214,0.14);
287 background: rgba(95,143,160,0.14);
288288 color: #67e8f9;
289 box-shadow: inset 0 0 0 1px rgba(54,197,214,0.32);
289 box-shadow: inset 0 0 0 1px rgba(95,143,160,0.32);
290290 font-family: var(--font-mono);
291291 font-variant-numeric: tabular-nums;
292292 }
312312 font-weight: 500;
313313 }
314314 .gists-pager a:hover {
315 border-color: rgba(140,109,255,0.45);
315 border-color: rgba(91,110,232,0.45);
316316 color: var(--text-strong);
317 background: rgba(140,109,255,0.06);
317 background: rgba(91,110,232,0.06);
318318 text-decoration: none;
319319 }
320320
333333 position: absolute;
334334 top: 0; left: 0; right: 0;
335335 height: 2px;
336 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
336 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
337337 opacity: 0.55;
338338 }
339339 .gists-field { margin-bottom: 14px; }
361361 .gists-textarea { font-family: var(--font-mono); font-size: 12.5px; line-height: 1.5; resize: vertical; }
362362 .gists-input:focus, .gists-textarea:focus {
363363 outline: none;
364 border-color: rgba(140,109,255,0.55);
364 border-color: rgba(91,110,232,0.55);
365365 background: rgba(255,255,255,0.05);
366 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
366 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
367367 }
368368 .gists-visibility { display: flex; gap: 18px; flex-wrap: wrap; margin-bottom: 14px; font-size: 13px; }
369369 .gists-visibility label { display: inline-flex; align-items: center; gap: 6px; cursor: pointer; }
426426 flex-wrap: wrap;
427427 }
428428 .gists-detail-title a { color: #c4b5fd; text-decoration: none; }
429 .gists-detail-title a:hover { color: #a48bff; text-decoration: underline; }
429 .gists-detail-title a:hover { color: #5b6ee8; text-decoration: underline; }
430430 .gists-detail-actions { display: flex; gap: 8px; flex-wrap: wrap; }
431431
432432 /* Star button */
467467 position: absolute;
468468 inset: -40% 30% auto 30%;
469469 height: 280px;
470 background: radial-gradient(circle, rgba(140,109,255,0.18), rgba(54,197,214,0.10) 45%, transparent 70%);
470 background: radial-gradient(circle, rgba(91,110,232,0.18), rgba(95,143,160,0.10) 45%, transparent 70%);
471471 filter: blur(70px);
472472 opacity: 0.7;
473473 pointer-events: none;
477477 .gists-empty-icon {
478478 width: 56px; height: 56px;
479479 border-radius: 9999px;
480 background: linear-gradient(135deg, rgba(140,109,255,0.25), rgba(54,197,214,0.20));
481 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.40);
480 background: linear-gradient(135deg, rgba(91,110,232,0.25), rgba(95,143,160,0.20));
481 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.40);
482482 display: inline-flex;
483483 align-items: center;
484484 justify-content: center;
Modifiedsrc/routes/help.tsx+8−8View fileUnifiedSplit
3838 position: absolute;
3939 top: 0; left: 0; right: 0;
4040 height: 2px;
41 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
41 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
4242 opacity: 0.75;
4343 pointer-events: none;
4444 }
5252 .help-hero-orb {
5353 position: absolute;
5454 inset: 0;
55 background: radial-gradient(circle, rgba(140,109,255,0.20), rgba(54,197,214,0.10) 45%, transparent 70%);
55 background: radial-gradient(circle, rgba(91,110,232,0.20), rgba(95,143,160,0.10) 45%, transparent 70%);
5656 filter: blur(80px);
5757 opacity: 0.7;
5858 animation: helpHeroOrb 14s ease-in-out infinite;
8686 justify-content: center;
8787 width: 22px; height: 22px;
8888 border-radius: 7px;
89 background: linear-gradient(135deg, rgba(140,109,255,0.20), rgba(54,197,214,0.18));
90 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.35);
89 background: linear-gradient(135deg, rgba(91,110,232,0.20), rgba(95,143,160,0.18));
90 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.35);
9191 color: #c4b6ff;
9292 font-size: 13px;
9393 line-height: 1;
102102 color: var(--text-strong);
103103 }
104104 .help-hero-title .help-gradient-text {
105 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
105 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
106106 -webkit-background-clip: text;
107107 background-clip: text;
108108 -webkit-text-fill-color: transparent;
151151 transition: border-color 120ms ease, background 120ms ease, color 120ms ease;
152152 }
153153 .help-toc-list a:hover {
154 border-color: rgba(140,109,255,0.45);
155 background: rgba(140,109,255,0.06);
154 border-color: rgba(91,110,232,0.45);
155 background: rgba(91,110,232,0.06);
156156 color: var(--text-strong);
157157 }
158158
214214 font-size: 12.5px;
215215 padding: 1px 5px;
216216 border-radius: 4px;
217 background: rgba(140,109,255,0.10);
217 background: rgba(91,110,232,0.10);
218218 color: #c4b6ff;
219219 }
220220 .help-item a { color: var(--text-link, var(--accent)); }
Modifiedsrc/routes/import-bulk.tsx+6−6View fileUnifiedSplit
6464 position: absolute;
6565 top: 0; left: 0; right: 0;
6666 height: 2px;
67 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
67 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
6868 opacity: 0.75;
6969 pointer-events: none;
7070 }
7878 .import-bulk-hero-orb {
7979 position: absolute;
8080 inset: 0;
81 background: radial-gradient(circle, rgba(140,109,255,0.20), rgba(54,197,214,0.10) 45%, transparent 70%);
81 background: radial-gradient(circle, rgba(91,110,232,0.20), rgba(95,143,160,0.10) 45%, transparent 70%);
8282 filter: blur(80px);
8383 opacity: 0.7;
8484 animation: importBulkHeroOrb 14s ease-in-out infinite;
106106 width: 6px; height: 6px;
107107 border-radius: 50%;
108108 background: var(--accent);
109 box-shadow: 0 0 8px rgba(140,109,255,0.6);
109 box-shadow: 0 0 8px rgba(91,110,232,0.6);
110110 margin-right: 8px;
111111 vertical-align: 1px;
112112 }
120120 color: var(--text-strong);
121121 }
122122 .import-bulk-hero-title .gradient-text {
123 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
123 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
124124 -webkit-background-clip: text;
125125 background-clip: text;
126126 -webkit-text-fill-color: transparent;
234234 .import-bulk-input:focus,
235235 .import-bulk-select:focus {
236236 border-color: var(--accent);
237 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
237 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
238238 }
239239
240240 /* ─── Toggle row (dry-run checkbox) ─── */
290290 position: absolute;
291291 left: 0; top: 0; bottom: 0;
292292 width: 3px;
293 background: linear-gradient(180deg, #8c6dff 0%, #36c5d6 100%);
293 background: linear-gradient(180deg, #5b6ee8 0%, #5f8fa0 100%);
294294 }
295295 .import-bulk-info strong {
296296 display: block;
Modifiedsrc/routes/import-secrets.tsx+13−13View fileUnifiedSplit
7272 position: absolute;
7373 top: 0; left: 0; right: 0;
7474 height: 2px;
75 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
75 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
7676 opacity: 0.75;
7777 pointer-events: none;
7878 }
8080 position: absolute;
8181 inset: -22% -10% auto auto;
8282 width: 380px; height: 380px;
83 background: radial-gradient(circle, rgba(140,109,255,0.20), rgba(54,197,214,0.10) 45%, transparent 70%);
83 background: radial-gradient(circle, rgba(91,110,232,0.20), rgba(95,143,160,0.10) 45%, transparent 70%);
8484 filter: blur(80px);
8585 opacity: 0.7;
8686 pointer-events: none;
105105 justify-content: center;
106106 width: 18px; height: 18px;
107107 border-radius: 6px;
108 background: rgba(140,109,255,0.14);
109 color: #b69dff;
110 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.35);
108 background: rgba(91,110,232,0.14);
109 color: #5b6ee8;
110 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.35);
111111 }
112112 .is-checklist-title {
113113 font-size: clamp(26px, 3.6vw, 36px);
119119 color: var(--text-strong);
120120 }
121121 .is-checklist-title-grad {
122 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
122 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
123123 -webkit-background-clip: text;
124124 background-clip: text;
125125 -webkit-text-fill-color: transparent;
212212 justify-content: center;
213213 width: 26px; height: 26px;
214214 border-radius: 50%;
215 background: linear-gradient(135deg, rgba(140,109,255,0.20), rgba(54,197,214,0.14));
215 background: linear-gradient(135deg, rgba(91,110,232,0.20), rgba(95,143,160,0.14));
216216 color: #c5b3ff;
217 border: 1px solid rgba(140,109,255,0.40);
217 border: 1px solid rgba(91,110,232,0.40);
218218 font-family: var(--font-display);
219219 font-weight: 700;
220220 font-size: 13px;
279279 }
280280 .is-checklist-input:focus {
281281 border-color: var(--border-focus);
282 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
282 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
283283 }
284284 .is-checklist-save {
285285 appearance: none;
352352 letter-spacing: -0.005em;
353353 cursor: pointer;
354354 color: #fff;
355 border: 1px solid rgba(140,109,255,0.55);
356 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
357 box-shadow: 0 4px 14px rgba(140,109,255,0.32);
355 border: 1px solid rgba(91,110,232,0.55);
356 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
357 box-shadow: 0 4px 14px rgba(91,110,232,0.32);
358358 transition: transform 150ms ease, box-shadow 150ms ease, filter 150ms ease;
359359 }
360360 .is-checklist-done-btn:hover {
361361 transform: translateY(-1px);
362 box-shadow: 0 6px 18px rgba(140,109,255,0.42);
362 box-shadow: 0 6px 18px rgba(91,110,232,0.42);
363363 filter: brightness(1.06);
364364 }
365365 .is-checklist-done-btn:active { transform: translateY(0); }
Modifiedsrc/routes/import.tsx+15−15View fileUnifiedSplit
6060 position: absolute;
6161 top: 0; left: 0; right: 0;
6262 height: 2px;
63 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
63 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
6464 opacity: 0.75;
6565 pointer-events: none;
6666 }
7474 .import-hero-orb {
7575 position: absolute;
7676 inset: 0;
77 background: radial-gradient(circle, rgba(140,109,255,0.20), rgba(54,197,214,0.10) 45%, transparent 70%);
77 background: radial-gradient(circle, rgba(91,110,232,0.20), rgba(95,143,160,0.10) 45%, transparent 70%);
7878 filter: blur(80px);
7979 opacity: 0.7;
8080 animation: importHeroOrb 14s ease-in-out infinite;
102102 width: 6px; height: 6px;
103103 border-radius: 50%;
104104 background: var(--accent);
105 box-shadow: 0 0 8px rgba(140,109,255,0.6);
105 box-shadow: 0 0 8px rgba(91,110,232,0.6);
106106 margin-right: 8px;
107107 vertical-align: 1px;
108108 }
116116 color: var(--text-strong);
117117 }
118118 .import-hero-title .gradient-text {
119 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
119 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
120120 -webkit-background-clip: text;
121121 background-clip: text;
122122 -webkit-text-fill-color: transparent;
147147 transition: border-color 140ms ease, transform 140ms ease;
148148 }
149149 .import-bulk-cta:hover {
150 border-color: rgba(140,109,255,0.45);
150 border-color: rgba(91,110,232,0.45);
151151 transform: translateY(-1px);
152152 }
153153 .import-bulk-cta::before {
155155 position: absolute;
156156 left: 0; top: 0; bottom: 0;
157157 width: 3px;
158 background: linear-gradient(180deg, #8c6dff 0%, #36c5d6 100%);
158 background: linear-gradient(180deg, #5b6ee8 0%, #5f8fa0 100%);
159159 }
160160 .import-bulk-cta-text strong {
161161 display: block;
232232 position: absolute;
233233 top: 0; left: 0; right: 0;
234234 height: 2px;
235 background: linear-gradient(90deg, #8c6dff 0%, #36c5d6 50%, #8c6dff 100%);
235 background: linear-gradient(90deg, #5b6ee8 0%, #5f8fa0 50%, #5b6ee8 100%);
236236 background-size: 200% 100%;
237237 animation: importProgressShimmer 2.2s linear infinite;
238238 pointer-events: none;
283283 position: relative;
284284 }
285285 .import-step.is-active {
286 border-color: rgba(140,109,255,0.45);
286 border-color: rgba(91,110,232,0.45);
287287 color: var(--text-strong);
288 background: rgba(140,109,255,0.07);
288 background: rgba(91,110,232,0.07);
289289 }
290290 .import-step.is-active .import-step-dot {
291291 background: var(--accent);
292292 border-color: var(--accent);
293 box-shadow: 0 0 10px rgba(140,109,255,0.6);
293 box-shadow: 0 0 10px rgba(91,110,232,0.6);
294294 animation: importStepPulse 1.4s ease-in-out infinite;
295295 }
296296 @keyframes importStepPulse {
297 0%, 100% { box-shadow: 0 0 8px rgba(140,109,255,0.4); }
298 50% { box-shadow: 0 0 14px rgba(140,109,255,0.85); }
297 0%, 100% { box-shadow: 0 0 8px rgba(91,110,232,0.4); }
298 50% { box-shadow: 0 0 14px rgba(91,110,232,0.85); }
299299 }
300300 @media (prefers-reduced-motion: reduce) {
301301 .import-step.is-active .import-step-dot { animation: none; }
331331 justify-content: center;
332332 width: 24px; height: 24px;
333333 border-radius: 8px;
334 background: linear-gradient(135deg, rgba(140,109,255,0.18) 0%, rgba(54,197,214,0.18) 100%);
334 background: linear-gradient(135deg, rgba(91,110,232,0.18) 0%, rgba(95,143,160,0.18) 100%);
335335 color: var(--accent);
336336 font-size: 12px;
337337 font-weight: 700;
338 border: 1px solid rgba(140,109,255,0.28);
338 border: 1px solid rgba(91,110,232,0.28);
339339 }
340340 .import-option-title {
341341 font-family: var(--font-display);
370370 }
371371 .import-input:focus {
372372 border-color: var(--accent);
373 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
373 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
374374 }
375375 .import-input.is-mono { font-family: var(--font-mono); font-size: 13px; }
376376 .import-field { margin-top: 10px; }
Modifiedsrc/routes/inbox.tsx+14−14View fileUnifiedSplit
134134 position: absolute;
135135 top: 0; left: 0; right: 0;
136136 height: 2px;
137 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
137 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
138138 opacity: 0.7;
139139 pointer-events: none;
140140 }
142142 position: absolute;
143143 inset: -30% -10% auto auto;
144144 width: 380px; height: 380px;
145 background: radial-gradient(circle, rgba(140,109,255,0.18), rgba(54,197,214,0.09) 45%, transparent 70%);
145 background: radial-gradient(circle, rgba(91,110,232,0.18), rgba(95,143,160,0.09) 45%, transparent 70%);
146146 filter: blur(80px);
147147 opacity: 0.7;
148148 pointer-events: none;
166166 color: var(--text-strong);
167167 }
168168 .inbox-title-grad {
169 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
169 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
170170 -webkit-background-clip: text;
171171 background-clip: text;
172172 -webkit-text-fill-color: transparent;
228228 }
229229 .inbox-tab:hover { color: var(--text-strong); text-decoration: none; }
230230 .inbox-tab.is-active {
231 background: rgba(140,109,255,0.14);
231 background: rgba(91,110,232,0.14);
232232 color: var(--text-strong);
233233 }
234234 .inbox-tab-count {
239239 border-radius: 9999px;
240240 }
241241 .inbox-tab.is-active .inbox-tab-count {
242 background: rgba(140,109,255,0.22);
242 background: rgba(91,110,232,0.22);
243243 color: var(--text);
244244 }
245245
261261 transition: background 120ms ease;
262262 }
263263 .inbox-row:last-child { border-bottom: none; }
264 .inbox-row:hover { background: rgba(140,109,255,0.04); }
264 .inbox-row:hover { background: rgba(91,110,232,0.04); }
265265 .inbox-row-icon {
266266 flex-shrink: 0;
267267 width: 30px;
281281 .inbox-row-icon.is-ci { color: #f87171; background: rgba(248,113,113,0.10); border-color: rgba(248,113,113,0.25); }
282282 .inbox-row-icon.is-ai {
283283 color: #fff;
284 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
285 border-color: rgba(140,109,255,0.55);
286 box-shadow: 0 0 12px rgba(140,109,255,0.40);
284 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
285 border-color: rgba(91,110,232,0.55);
286 box-shadow: 0 0 12px rgba(91,110,232,0.40);
287287 }
288288 .inbox-row-icon.is-ci .inbox-ci-dot {
289289 width: 8px; height: 8px;
347347 .inbox-row-kind.is-review { background: rgba(96,165,250,0.13); color: #93c5fd; }
348348 .inbox-row-kind.is-ci { background: rgba(248,113,113,0.13); color: #fca5a5; }
349349 .inbox-row-kind.is-ai-finding {
350 background: linear-gradient(135deg, rgba(140,109,255,0.20), rgba(54,197,214,0.18));
350 background: linear-gradient(135deg, rgba(91,110,232,0.20), rgba(95,143,160,0.18));
351351 color: #d6c7ff;
352352 }
353353 .inbox-row-kind.is-ai-merge {
354 background: linear-gradient(135deg, rgba(140,109,255,0.20), rgba(54,197,214,0.18));
354 background: linear-gradient(135deg, rgba(91,110,232,0.20), rgba(95,143,160,0.18));
355355 color: #d6c7ff;
356356 }
357357
378378 }
379379 .inbox-mark:hover {
380380 color: var(--text-strong);
381 background: rgba(140,109,255,0.08);
382 border-color: rgba(140,109,255,0.30);
381 background: rgba(91,110,232,0.08);
382 border-color: rgba(91,110,232,0.30);
383383 text-decoration: none;
384384 }
385385
397397 position: absolute;
398398 inset: -20% -10% auto auto;
399399 width: 320px; height: 320px;
400 background: radial-gradient(circle, rgba(140,109,255,0.10), transparent 70%);
400 background: radial-gradient(circle, rgba(91,110,232,0.10), transparent 70%);
401401 filter: blur(60px);
402402 pointer-events: none;
403403 }
Modifiedsrc/routes/insights.tsx+8−8View fileUnifiedSplit
6060 position: absolute;
6161 top: 0; left: 0; right: 0;
6262 height: 2px;
63 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
63 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
6464 opacity: 0.75;
6565 pointer-events: none;
6666 }
6868 position: absolute;
6969 inset: -30% -15% auto auto;
7070 width: 460px; height: 460px;
71 background: radial-gradient(circle, rgba(140,109,255,0.22), rgba(54,197,214,0.10) 45%, transparent 70%);
71 background: radial-gradient(circle, rgba(91,110,232,0.22), rgba(95,143,160,0.10) 45%, transparent 70%);
7272 filter: blur(80px);
7373 opacity: 0.75;
7474 pointer-events: none;
9090 .insights-eyebrow-dot {
9191 width: 8px; height: 8px;
9292 border-radius: 9999px;
93 background: linear-gradient(135deg, #8c6dff, #36c5d6);
94 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
93 background: linear-gradient(135deg, #5b6ee8, #5f8fa0);
94 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
9595 }
9696 .insights-title {
9797 font-family: var(--font-display);
103103 color: var(--text-strong);
104104 }
105105 .insights-title-grad {
106 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
106 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
107107 -webkit-background-clip: text;
108108 background-clip: text;
109109 -webkit-text-fill-color: transparent;
273273 top: 6px;
274274 bottom: 6px;
275275 width: 2px;
276 background: linear-gradient(180deg, rgba(140,109,255,0.22), rgba(54,197,214,0.06));
276 background: linear-gradient(180deg, rgba(91,110,232,0.22), rgba(95,143,160,0.06));
277277 border-radius: 9999px;
278278 }
279279 .insights-timeline-item {
290290 box-shadow: 0 0 0 3px rgba(255,255,255,0.04);
291291 }
292292 .insights-timeline-dot.is-milestone {
293 background: linear-gradient(135deg, #34d399, #36c5d6);
293 background: linear-gradient(135deg, #34d399, #5f8fa0);
294294 box-shadow: 0 0 0 4px rgba(52,211,153,0.18);
295295 width: 14px; height: 14px;
296296 left: -23px;
388388 position: absolute;
389389 inset: -40% -20% auto auto;
390390 width: 320px; height: 320px;
391 background: radial-gradient(circle, rgba(140,109,255,0.14), rgba(54,197,214,0.06) 45%, transparent 70%);
391 background: radial-gradient(circle, rgba(91,110,232,0.14), rgba(95,143,160,0.06) 45%, transparent 70%);
392392 filter: blur(60px);
393393 pointer-events: none;
394394 }
Modifiedsrc/routes/invites.tsx+25−25View fileUnifiedSplit
5353 position: absolute;
5454 top: 0; left: 0; right: 0;
5555 height: 2px;
56 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
56 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
5757 opacity: 0.7;
5858 pointer-events: none;
5959 }
6161 position: absolute;
6262 inset: -20% -10% auto auto;
6363 width: 380px; height: 380px;
64 background: radial-gradient(circle, rgba(140,109,255,0.20), rgba(54,197,214,0.10) 45%, transparent 70%);
64 background: radial-gradient(circle, rgba(91,110,232,0.20), rgba(95,143,160,0.10) 45%, transparent 70%);
6565 filter: blur(80px);
6666 opacity: 0.7;
6767 pointer-events: none;
8686 justify-content: center;
8787 width: 18px; height: 18px;
8888 border-radius: 6px;
89 background: rgba(140,109,255,0.14);
90 color: #b69dff;
91 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.35);
89 background: rgba(91,110,232,0.14);
90 color: #5b6ee8;
91 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.35);
9292 }
9393 .inv-title {
9494 font-size: clamp(28px, 4vw, 40px);
100100 color: var(--text-strong);
101101 }
102102 .inv-title-grad {
103 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
103 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
104104 -webkit-background-clip: text;
105105 background-clip: text;
106106 -webkit-text-fill-color: transparent;
133133 color: #fecaca;
134134 }
135135 .inv-banner.is-info {
136 border-color: rgba(54,197,214,0.40);
137 background: rgba(54,197,214,0.08);
136 border-color: rgba(95,143,160,0.40);
137 background: rgba(95,143,160,0.08);
138138 color: #a5f3fc;
139139 }
140140 .inv-banner-dot {
173173 justify-content: center;
174174 width: 26px; height: 26px;
175175 border-radius: 8px;
176 background: rgba(140,109,255,0.12);
177 color: #b69dff;
178 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.28);
176 background: rgba(91,110,232,0.12);
177 color: #5b6ee8;
178 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.28);
179179 flex-shrink: 0;
180180 }
181181 .inv-section-sub {
199199 transition: border-color 120ms ease, box-shadow 120ms ease;
200200 }
201201 .inv-card:hover {
202 border-color: rgba(140,109,255,0.32);
202 border-color: rgba(91,110,232,0.32);
203203 box-shadow: 0 8px 24px -10px rgba(0,0,0,0.32);
204204 }
205205 .inv-logo {
207207 width: 44px;
208208 height: 44px;
209209 border-radius: 10px;
210 background: linear-gradient(135deg, rgba(140,109,255,0.22), rgba(54,197,214,0.16));
211 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.32);
210 background: linear-gradient(135deg, rgba(91,110,232,0.22), rgba(95,143,160,0.16));
211 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.32);
212212 display: flex;
213213 align-items: center;
214214 justify-content: center;
248248 font-weight: 700;
249249 letter-spacing: 0.05em;
250250 text-transform: uppercase;
251 background: rgba(140,109,255,0.14);
251 background: rgba(91,110,232,0.14);
252252 color: #c4b5fd;
253 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.32);
253 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.32);
254254 }
255255 .inv-pill .dot { width: 5px; height: 5px; border-radius: 9999px; background: currentColor; }
256256 .inv-card-actions { flex-shrink: 0; display: flex; gap: 8px; flex-wrap: wrap; }
273273 transition: transform 120ms ease, box-shadow 120ms ease, background 120ms ease, border-color 120ms ease, color 120ms ease;
274274 }
275275 .inv-btn-primary {
276 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
276 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
277277 color: #fff;
278 box-shadow: 0 6px 18px -4px rgba(140,109,255,0.45), inset 0 1px 0 rgba(255,255,255,0.16);
278 box-shadow: 0 6px 18px -4px rgba(91,110,232,0.45), inset 0 1px 0 rgba(255,255,255,0.16);
279279 }
280280 .inv-btn-primary:hover {
281281 transform: translateY(-1px);
282 box-shadow: 0 10px 24px -6px rgba(140,109,255,0.55), inset 0 1px 0 rgba(255,255,255,0.20);
282 box-shadow: 0 10px 24px -6px rgba(91,110,232,0.55), inset 0 1px 0 rgba(255,255,255,0.20);
283283 color: #fff;
284284 text-decoration: none;
285285 }
289289 border-color: var(--border-strong);
290290 }
291291 .inv-btn-ghost:hover {
292 background: rgba(140,109,255,0.06);
293 border-color: rgba(140,109,255,0.45);
292 background: rgba(91,110,232,0.06);
293 border-color: rgba(91,110,232,0.45);
294294 color: var(--text-strong);
295295 text-decoration: none;
296296 }
320320 position: absolute;
321321 top: 0; left: 0; right: 0;
322322 height: 2px;
323 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
323 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
324324 opacity: 0.55;
325325 pointer-events: none;
326326 }
329329 margin: 0 auto 18px;
330330 border-radius: 9999px;
331331 background:
332 radial-gradient(circle at 35% 35%, rgba(140,109,255,0.55), rgba(54,197,214,0.25) 55%, transparent 75%);
332 radial-gradient(circle at 35% 35%, rgba(91,110,232,0.55), rgba(95,143,160,0.25) 55%, transparent 75%);
333333 box-shadow:
334 0 0 32px rgba(140,109,255,0.35),
335 inset 0 0 0 1px rgba(140,109,255,0.35);
334 0 0 32px rgba(91,110,232,0.35),
335 inset 0 0 0 1px rgba(91,110,232,0.35);
336336 display: flex;
337337 align-items: center;
338338 justify-content: center;
Modifiedsrc/routes/issues-dashboard.tsx+10−10View fileUnifiedSplit
6969 position: absolute;
7070 top: 0; left: 0; right: 0;
7171 height: 2px;
72 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
72 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
7373 opacity: 0.7;
7474 pointer-events: none;
7575 }
7777 position: absolute;
7878 inset: -30% -10% auto auto;
7979 width: 380px; height: 380px;
80 background: radial-gradient(circle, rgba(140,109,255,0.18), rgba(54,197,214,0.09) 45%, transparent 70%);
80 background: radial-gradient(circle, rgba(91,110,232,0.18), rgba(95,143,160,0.09) 45%, transparent 70%);
8181 filter: blur(80px);
8282 opacity: 0.7;
8383 pointer-events: none;
101101 color: var(--text-strong);
102102 }
103103 .idash-title-grad {
104 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
104 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
105105 -webkit-background-clip: text;
106106 background-clip: text;
107107 -webkit-text-fill-color: transparent;
163163 }
164164 .idash-tab:hover { color: var(--text-strong); text-decoration: none; }
165165 .idash-tab.is-active {
166 background: rgba(140,109,255,0.14);
166 background: rgba(91,110,232,0.14);
167167 color: var(--text-strong);
168168 }
169169 .idash-tab-count {
174174 border-radius: 9999px;
175175 }
176176 .idash-tab.is-active .idash-tab-count {
177 background: rgba(140,109,255,0.22);
177 background: rgba(91,110,232,0.22);
178178 color: var(--text);
179179 }
180180
196196 transition: background 120ms ease;
197197 }
198198 .idash-row:last-child { border-bottom: none; }
199 .idash-row:hover { background: rgba(140,109,255,0.04); }
199 .idash-row:hover { background: rgba(91,110,232,0.04); }
200200 .idash-row-icon {
201201 width: 18px; height: 18px;
202202 flex-shrink: 0;
206206 justify-content: center;
207207 }
208208 .idash-row-icon.is-open { color: #34d399; }
209 .idash-row-icon.is-closed { color: #b69dff; }
209 .idash-row-icon.is-closed { color: #5b6ee8; }
210210 .idash-row-main { flex: 1; min-width: 0; }
211211 .idash-row-title {
212212 font-family: var(--font-display);
273273 }
274274 .idash-badge.ai-triaged { color: #93c5fd; background: rgba(96,165,250,0.12); box-shadow: inset 0 0 0 1px rgba(96,165,250,0.32); }
275275 .idash-badge.ai-fix { color: #6ee7b7; background: rgba(52,211,153,0.13); box-shadow: inset 0 0 0 1px rgba(52,211,153,0.30); }
276 .idash-badge.ai-progress { color: #b69dff; background: rgba(140,109,255,0.18); box-shadow: inset 0 0 0 1px rgba(140,109,255,0.36); }
276 .idash-badge.ai-progress { color: #5b6ee8; background: rgba(91,110,232,0.18); box-shadow: inset 0 0 0 1px rgba(91,110,232,0.36); }
277277 .idash-badge.ai-progress .dot { animation: idashPulse 1.6s ease-in-out infinite; }
278278
279279 @keyframes idashPulse {
293293 text-transform: uppercase;
294294 }
295295 .idash-state-pill.is-open { background: rgba(52,211,153,0.13); color: #6ee7b7; box-shadow: inset 0 0 0 1px rgba(52,211,153,0.30); }
296 .idash-state-pill.is-closed { background: rgba(140,109,255,0.16); color: #b69dff; box-shadow: inset 0 0 0 1px rgba(140,109,255,0.32); }
296 .idash-state-pill.is-closed { background: rgba(91,110,232,0.16); color: #5b6ee8; box-shadow: inset 0 0 0 1px rgba(91,110,232,0.32); }
297297
298298 .idash-empty {
299299 padding: 60px 20px;
309309 position: absolute;
310310 inset: -20% -10% auto auto;
311311 width: 320px; height: 320px;
312 background: radial-gradient(circle, rgba(140,109,255,0.10), transparent 70%);
312 background: radial-gradient(circle, rgba(91,110,232,0.10), transparent 70%);
313313 filter: blur(60px);
314314 pointer-events: none;
315315 }
Modifiedsrc/routes/issues.tsx+34−34View fileUnifiedSplit
8282 position: absolute;
8383 top: 0; left: 0; right: 0;
8484 height: 2px;
85 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
85 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
8686 opacity: 0.7;
8787 pointer-events: none;
8888 }
9797 .issues-hero-orb {
9898 position: absolute;
9999 inset: 0;
100 background: radial-gradient(circle, rgba(140,109,255,0.18), rgba(54,197,214,0.09) 45%, transparent 70%);
100 background: radial-gradient(circle, rgba(91,110,232,0.18), rgba(95,143,160,0.09) 45%, transparent 70%);
101101 filter: blur(80px);
102102 opacity: 0.7;
103103 animation: issuesHeroOrb 14s ease-in-out infinite;
207207 }
208208 .issues-filter:hover { color: var(--text-strong); text-decoration: none; }
209209 .issues-filter.is-active {
210 background: rgba(140,109,255,0.14);
210 background: rgba(91,110,232,0.14);
211211 color: var(--text-strong);
212212 }
213213 .issues-filter-count {
219219 border-radius: 9999px;
220220 }
221221 .issues-filter.is-active .issues-filter-count {
222 background: rgba(140,109,255,0.18);
222 background: rgba(91,110,232,0.18);
223223 color: var(--text);
224224 }
225225
236236 max-width: 280px;
237237 transition: border-color 120ms ease;
238238 }
239 .issues-search-form:focus-within { border-color: rgba(140,109,255,0.55); }
239 .issues-search-form:focus-within { border-color: rgba(91,110,232,0.55); }
240240 .issues-search-input {
241241 flex: 1;
242242 background: transparent;
262262 .issues-filter-banner {
263263 margin-bottom: 12px;
264264 padding: 8px 14px;
265 background: rgba(140,109,255,0.06);
266 border: 1px solid rgba(140,109,255,0.2);
265 background: rgba(91,110,232,0.06);
266 border: 1px solid rgba(91,110,232,0.2);
267267 border-radius: 8px;
268268 font-size: 13px;
269269 color: var(--text-muted);
270270 }
271271 .issues-filter-clear {
272 color: var(--accent, #8c6dff);
272 color: var(--accent, #5b6ee8);
273273 text-decoration: underline;
274274 cursor: pointer;
275275 }
276276 .issues-label-badge {
277277 display: inline-block;
278 background: rgba(140,109,255,0.15);
278 background: rgba(91,110,232,0.15);
279279 color: #a78bfa;
280280 border-radius: 9999px;
281281 padding: 1px 8px;
302302 transition: background 120ms ease, transform 120ms ease;
303303 }
304304 .issues-row:last-child { border-bottom: none; }
305 .issues-row:hover { background: rgba(140,109,255,0.04); }
305 .issues-row:hover { background: rgba(91,110,232,0.04); }
306306 .issues-row-icon {
307307 width: 18px;
308308 height: 18px;
313313 justify-content: center;
314314 }
315315 .issues-row-icon.is-open { color: #34d399; }
316 .issues-row-icon.is-closed { color: #b69dff; }
316 .issues-row-icon.is-closed { color: #5b6ee8; }
317317 .issues-row-main { flex: 1; min-width: 0; }
318318 .issues-row-title {
319319 font-family: var(--font-display);
366366 font-size: 11.5px;
367367 font-weight: 600;
368368 line-height: 1.4;
369 background: rgba(140,109,255,0.10);
369 background: rgba(91,110,232,0.10);
370370 color: var(--text-strong);
371 border: 1px solid rgba(140,109,255,0.28);
371 border: 1px solid rgba(91,110,232,0.28);
372372 letter-spacing: 0.005em;
373373 }
374374
388388 position: absolute;
389389 top: 0; left: 0; right: 0;
390390 height: 2px;
391 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
391 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
392392 opacity: 0.55;
393393 pointer-events: none;
394394 }
431431 position: absolute;
432432 top: 0; left: 0; right: 0;
433433 height: 2px;
434 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
434 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
435435 opacity: 0.7;
436436 pointer-events: none;
437437 }
476476 }
477477 .issues-state-pill.is-closed {
478478 background: rgba(182,157,255,0.12);
479 color: #b69dff;
479 color: #5b6ee8;
480480 border: 1px solid rgba(182,157,255,0.35);
481481 }
482482 .issues-detail-spacer { flex: 1; }
518518 align-items: center;
519519 padding: 1px 8px;
520520 border-radius: 9999px;
521 background: rgba(140,109,255,0.10);
521 background: rgba(91,110,232,0.10);
522522 color: var(--accent);
523523 font-size: 11px;
524524 font-weight: 600;
528528
529529 /* AI Review comment — distinct purple-accent treatment */
530530 .issues-comment.is-ai {
531 border-color: rgba(140,109,255,0.45);
532 box-shadow: 0 0 0 1px rgba(140,109,255,0.18), 0 12px 32px -16px rgba(140,109,255,0.25);
531 border-color: rgba(91,110,232,0.45);
532 box-shadow: 0 0 0 1px rgba(91,110,232,0.18), 0 12px 32px -16px rgba(91,110,232,0.25);
533533 }
534534 .issues-comment.is-ai::before {
535535 content: '';
536536 position: absolute;
537537 top: 0; left: 0; right: 0;
538538 height: 2px;
539 background: linear-gradient(90deg, #8c6dff 0%, #36c5d6 100%);
539 background: linear-gradient(90deg, #5b6ee8 0%, #5f8fa0 100%);
540540 pointer-events: none;
541541 }
542542 .issues-comment.is-ai .issues-comment-header {
543 background: linear-gradient(180deg, rgba(140,109,255,0.08), rgba(140,109,255,0.02));
544 border-bottom-color: rgba(140,109,255,0.22);
543 background: linear-gradient(180deg, rgba(91,110,232,0.08), rgba(91,110,232,0.02));
544 border-bottom-color: rgba(91,110,232,0.22);
545545 }
546546 .issues-ai-badge {
547547 display: inline-flex;
549549 gap: 5px;
550550 padding: 2px 9px;
551551 border-radius: 9999px;
552 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
552 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
553553 color: #fff;
554554 font-size: 11px;
555555 font-weight: 700;
588588 transition: border-color 160ms ease, box-shadow 160ms ease;
589589 }
590590 .issues-composer:focus-within {
591 border-color: rgba(140,109,255,0.55);
592 box-shadow: 0 0 0 3px rgba(140,109,255,0.16);
591 border-color: rgba(91,110,232,0.55);
592 box-shadow: 0 0 0 3px rgba(91,110,232,0.16);
593593 }
594594 .issues-composer-header {
595595 display: flex;
642642 margin: 0 0 14px;
643643 padding: 10px 14px;
644644 border-radius: 12px;
645 background: rgba(140,109,255,0.08);
646 border: 1px solid rgba(140,109,255,0.28);
645 background: rgba(91,110,232,0.08);
646 border: 1px solid rgba(91,110,232,0.28);
647647 color: var(--text);
648648 font-size: 13.5px;
649649 }
725725 color: var(--text);
726726 }
727727 .issues-sort-opt.is-active {
728 background: rgba(140,109,255,0.12);
728 background: rgba(91,110,232,0.12);
729729 color: var(--text-link);
730 border-color: rgba(140,109,255,0.35);
730 border-color: rgba(91,110,232,0.35);
731731 font-weight: 600;
732732 }
733733`;
748748 >
749749 <defs>
750750 <linearGradient id="issuesEmptyG" x1="0" y1="0" x2="1" y2="1">
751 <stop offset="0%" stop-color="#8c6dff" stop-opacity="0.55" />
752 <stop offset="100%" stop-color="#36c5d6" stop-opacity="0.55" />
751 <stop offset="0%" stop-color="#5b6ee8" stop-opacity="0.55" />
752 <stop offset="100%" stop-color="#5f8fa0" stop-opacity="0.55" />
753753 </linearGradient>
754754 </defs>
755 <circle cx="48" cy="48" r="42" stroke="url(#issuesEmptyG)" stroke-width="1.5" fill="rgba(140,109,255,0.04)" />
755 <circle cx="48" cy="48" r="42" stroke="url(#issuesEmptyG)" stroke-width="1.5" fill="rgba(91,110,232,0.04)" />
756756 <circle cx="48" cy="48" r="14" stroke="url(#issuesEmptyG)" stroke-width="2" fill="none" />
757757 <path d="M48 30v8M48 58v8M30 48h8M58 48h8" stroke="url(#issuesEmptyG)" stroke-width="2" stroke-linecap="round" />
758758 </svg>
10031003 >
10041004 Milestones
10051005 {Number(milestoneCounts?.open ?? 0) > 0 && (
1006 <span style="margin-left:5px;font-size:11.5px;background:rgba(140,109,255,0.18);color:#a78bfa;padding:1px 7px;border-radius:9999px">
1006 <span style="margin-left:5px;font-size:11.5px;background:rgba(91,110,232,0.18);color:#a78bfa;padding:1px 7px;border-radius:9999px">
10071007 {Number(milestoneCounts?.open ?? 0)}
10081008 </span>
10091009 )}
15431543 <button
15441544 type="submit"
15451545 class="btn btn-primary"
1546 style="font-size:13px;padding:6px 12px;background:linear-gradient(135deg,#8c6dff,#36c5d6);border:none;cursor:pointer"
1546 style="font-size:13px;padding:6px 12px;background:linear-gradient(135deg,#5b6ee8,#5f8fa0);border:none;cursor:pointer"
15471547 onclick="return confirm('Ship Agent will read the codebase, write code, and open a PR automatically. Review the PR before merging. Continue?')"
15481548 >
15491549 Ship It
Modifiedsrc/routes/legal.tsx+7−7View fileUnifiedSplit
4545 position: absolute;
4646 top: 0; left: 0; right: 0;
4747 height: 2px;
48 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
48 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
4949 opacity: 0.78;
5050 pointer-events: none;
5151 }
5353 position: absolute;
5454 inset: -22% -10% auto auto;
5555 width: 380px; height: 380px;
56 background: radial-gradient(circle, rgba(140,109,255,0.20), rgba(54,197,214,0.10) 45%, transparent 70%);
56 background: radial-gradient(circle, rgba(91,110,232,0.20), rgba(95,143,160,0.10) 45%, transparent 70%);
5757 filter: blur(80px);
5858 opacity: 0.7;
5959 pointer-events: none;
7878 justify-content: center;
7979 width: 18px; height: 18px;
8080 border-radius: 6px;
81 background: rgba(140,109,255,0.14);
82 color: #b69dff;
83 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.35);
81 background: rgba(91,110,232,0.14);
82 color: #5b6ee8;
83 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.35);
8484 }
8585 .legal-page-title {
8686 font-size: clamp(28px, 4vw, 40px);
9292 color: var(--text-strong);
9393 }
9494 .legal-page-title-grad {
95 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
95 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
9696 -webkit-background-clip: text;
9797 background-clip: text;
9898 -webkit-text-fill-color: transparent;
120120 position: absolute;
121121 left: 0; top: 0; bottom: 0;
122122 width: 3px;
123 background: linear-gradient(180deg, #8c6dff 0%, #36c5d6 100%);
123 background: linear-gradient(180deg, #5b6ee8 0%, #5f8fa0 100%);
124124 }
125125 .legal-page-toc-label {
126126 font-family: var(--font-mono);
Modifiedsrc/routes/marketplace-agents.tsx+26−26View fileUnifiedSplit
7474 position: absolute;
7575 top: 0; left: 0; right: 0;
7676 height: 2px;
77 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
77 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
7878 opacity: 0.75;
7979 pointer-events: none;
8080 }
8282 position: absolute;
8383 inset: -30% -10% auto auto;
8484 width: 460px; height: 460px;
85 background: radial-gradient(circle, rgba(140,109,255,0.22), rgba(54,197,214,0.10) 45%, transparent 70%);
85 background: radial-gradient(circle, rgba(91,110,232,0.22), rgba(95,143,160,0.10) 45%, transparent 70%);
8686 filter: blur(80px);
8787 opacity: 0.7;
8888 pointer-events: none;
113113 .amkt-eyebrow-dot {
114114 width: 8px; height: 8px;
115115 border-radius: 9999px;
116 background: linear-gradient(135deg, #8c6dff, #36c5d6);
117 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
116 background: linear-gradient(135deg, #5b6ee8, #5f8fa0);
117 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
118118 }
119119 .amkt-title {
120120 font-family: var(--font-display);
126126 color: var(--text-strong);
127127 }
128128 .amkt-title-grad {
129 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
129 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
130130 -webkit-background-clip: text;
131131 background-clip: text;
132132 -webkit-text-fill-color: transparent;
147147 border-radius: 10px;
148148 font-size: 13px;
149149 font-weight: 600;
150 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
150 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
151151 color: #fff;
152152 text-decoration: none;
153153 border: 1px solid transparent;
154 box-shadow: 0 6px 16px -6px rgba(140,109,255,0.50), inset 0 1px 0 rgba(255,255,255,0.16);
154 box-shadow: 0 6px 16px -6px rgba(91,110,232,0.50), inset 0 1px 0 rgba(255,255,255,0.16);
155155 transition: transform 120ms ease, box-shadow 120ms ease;
156156 }
157157 .amkt-hero-cta:hover {
158158 transform: translateY(-1px);
159159 color: #fff;
160160 text-decoration: none;
161 box-shadow: 0 10px 24px -8px rgba(140,109,255,0.60);
161 box-shadow: 0 10px 24px -8px rgba(91,110,232,0.60);
162162 }
163163
164164 /* ─── Category filter pills ─── */
185185 }
186186 .amkt-pill:hover {
187187 color: var(--text-strong);
188 border-color: rgba(140,109,255,0.45);
189 background: rgba(140,109,255,0.06);
188 border-color: rgba(91,110,232,0.45);
189 background: rgba(91,110,232,0.06);
190190 text-decoration: none;
191191 }
192192 .amkt-pill.is-active {
193 background: linear-gradient(135deg, rgba(140,109,255,0.20), rgba(54,197,214,0.14));
193 background: linear-gradient(135deg, rgba(91,110,232,0.20), rgba(95,143,160,0.14));
194194 color: #c5b3ff;
195 border-color: rgba(140,109,255,0.45);
195 border-color: rgba(91,110,232,0.45);
196196 }
197197
198198 /* ─── Card grid ─── */
215215 transition: border-color 150ms ease, transform 150ms ease, box-shadow 150ms ease;
216216 }
217217 .amkt-card:hover {
218 border-color: rgba(140,109,255,0.45);
218 border-color: rgba(91,110,232,0.45);
219219 transform: translateY(-2px);
220 box-shadow: 0 10px 28px -10px rgba(140,109,255,0.30);
220 box-shadow: 0 10px 28px -10px rgba(91,110,232,0.30);
221221 text-decoration: none;
222222 color: inherit;
223223 }
285285 font-size: 11px;
286286 font-weight: 700;
287287 color: #c5b3ff;
288 background: rgba(140,109,255,0.10);
289 border: 1px solid rgba(140,109,255,0.30);
288 background: rgba(91,110,232,0.10);
289 border: 1px solid rgba(91,110,232,0.30);
290290 font-family: var(--font-mono);
291291 }
292292 .amkt-price-pill.is-free {
302302 border-radius: 8px;
303303 font-size: 12px;
304304 font-weight: 600;
305 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
305 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
306306 color: #fff;
307307 text-decoration: none;
308 box-shadow: 0 4px 12px -4px rgba(140,109,255,0.45), inset 0 1px 0 rgba(255,255,255,0.16);
308 box-shadow: 0 4px 12px -4px rgba(91,110,232,0.45), inset 0 1px 0 rgba(255,255,255,0.16);
309309 transition: transform 120ms ease;
310310 }
311311 .amkt-install-btn:hover {
321321 padding: clamp(28px, 4vw, 44px) clamp(20px, 4vw, 40px);
322322 text-align: center;
323323 background: var(--bg-elevated);
324 border: 1px dashed rgba(140,109,255,0.40);
324 border: 1px dashed rgba(91,110,232,0.40);
325325 border-radius: 16px;
326326 overflow: hidden;
327327 }
483483 .amkt-form-group textarea:focus,
484484 .amkt-form-group select:focus {
485485 outline: none;
486 border-color: rgba(140,109,255,0.45);
487 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
486 border-color: rgba(91,110,232,0.45);
487 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
488488 }
489489
490490 /* ─── Buttons ─── */
505505 line-height: 1;
506506 }
507507 .amkt-btn-primary {
508 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
508 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
509509 color: #ffffff;
510 box-shadow: 0 6px 18px -6px rgba(140,109,255,0.50), inset 0 1px 0 rgba(255,255,255,0.16);
510 box-shadow: 0 6px 18px -6px rgba(91,110,232,0.50), inset 0 1px 0 rgba(255,255,255,0.16);
511511 }
512512 .amkt-btn-primary:hover {
513513 transform: translateY(-1px);
514 box-shadow: 0 10px 24px -8px rgba(140,109,255,0.60);
514 box-shadow: 0 10px 24px -8px rgba(91,110,232,0.60);
515515 color: #ffffff;
516516 text-decoration: none;
517517 }
521521 border-color: var(--border);
522522 }
523523 .amkt-btn-ghost:hover {
524 background: rgba(140,109,255,0.06);
525 border-color: rgba(140,109,255,0.45);
524 background: rgba(91,110,232,0.06);
525 border-color: rgba(91,110,232,0.45);
526526 color: var(--text-strong);
527527 text-decoration: none;
528528 }
Modifiedsrc/routes/marketplace.tsx+32−32View fileUnifiedSplit
6868 position: absolute;
6969 top: 0; left: 0; right: 0;
7070 height: 2px;
71 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
71 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
7272 opacity: 0.75;
7373 pointer-events: none;
7474 }
7676 position: absolute;
7777 inset: -30% -10% auto auto;
7878 width: 460px; height: 460px;
79 background: radial-gradient(circle, rgba(140,109,255,0.22), rgba(54,197,214,0.10) 45%, transparent 70%);
79 background: radial-gradient(circle, rgba(91,110,232,0.22), rgba(95,143,160,0.10) 45%, transparent 70%);
8080 filter: blur(80px);
8181 opacity: 0.7;
8282 pointer-events: none;
107107 .mkt-eyebrow-dot {
108108 width: 8px; height: 8px;
109109 border-radius: 9999px;
110 background: linear-gradient(135deg, #8c6dff, #36c5d6);
111 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
110 background: linear-gradient(135deg, #5b6ee8, #5f8fa0);
111 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
112112 }
113113 .mkt-title {
114114 font-family: var(--font-display);
120120 color: var(--text-strong);
121121 }
122122 .mkt-title-grad {
123 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
123 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
124124 -webkit-background-clip: text;
125125 background-clip: text;
126126 -webkit-text-fill-color: transparent;
141141 border-radius: 10px;
142142 font-size: 13px;
143143 font-weight: 600;
144 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
144 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
145145 color: #fff;
146146 text-decoration: none;
147147 border: 1px solid transparent;
148 box-shadow: 0 6px 16px -6px rgba(140,109,255,0.50), inset 0 1px 0 rgba(255,255,255,0.16);
148 box-shadow: 0 6px 16px -6px rgba(91,110,232,0.50), inset 0 1px 0 rgba(255,255,255,0.16);
149149 transition: transform 120ms ease, box-shadow 120ms ease;
150150 }
151151 .mkt-hero-cta:hover {
152152 transform: translateY(-1px);
153153 color: #fff;
154154 text-decoration: none;
155 box-shadow: 0 10px 24px -8px rgba(140,109,255,0.60);
155 box-shadow: 0 10px 24px -8px rgba(91,110,232,0.60);
156156 }
157157
158158 /* ─── Search + filter row ─── */
181181 }
182182 .mkt-search input:focus {
183183 outline: none;
184 border-color: rgba(140,109,255,0.45);
185 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
184 border-color: rgba(91,110,232,0.45);
185 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
186186 }
187187 .mkt-search button {
188188 padding: 9px 16px;
197197 transition: border-color 120ms ease, background 120ms ease;
198198 }
199199 .mkt-search button:hover {
200 border-color: rgba(140,109,255,0.45);
201 background: rgba(140,109,255,0.06);
200 border-color: rgba(91,110,232,0.45);
201 background: rgba(91,110,232,0.06);
202202 }
203203
204204 /* ─── Category filter pills ─── */
225225 }
226226 .mkt-pill:hover {
227227 color: var(--text-strong);
228 border-color: rgba(140,109,255,0.45);
229 background: rgba(140,109,255,0.06);
228 border-color: rgba(91,110,232,0.45);
229 background: rgba(91,110,232,0.06);
230230 text-decoration: none;
231231 }
232232 .mkt-pill.is-active {
233 background: linear-gradient(135deg, rgba(140,109,255,0.20), rgba(54,197,214,0.14));
233 background: linear-gradient(135deg, rgba(91,110,232,0.20), rgba(95,143,160,0.14));
234234 color: #c5b3ff;
235 border-color: rgba(140,109,255,0.45);
235 border-color: rgba(91,110,232,0.45);
236236 }
237237
238238 /* ─── App grid ─── */
255255 transition: border-color 150ms ease, transform 150ms ease, box-shadow 150ms ease;
256256 }
257257 .mkt-card:hover {
258 border-color: rgba(140,109,255,0.45);
258 border-color: rgba(91,110,232,0.45);
259259 transform: translateY(-2px);
260 box-shadow: 0 10px 28px -10px rgba(140,109,255,0.30);
260 box-shadow: 0 10px 28px -10px rgba(91,110,232,0.30);
261261 text-decoration: none;
262262 color: inherit;
263263 }
338338 border-radius: 8px;
339339 font-size: 12px;
340340 font-weight: 600;
341 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
341 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
342342 color: #fff;
343343 text-decoration: none;
344 box-shadow: 0 4px 12px -4px rgba(140,109,255,0.45), inset 0 1px 0 rgba(255,255,255,0.16);
344 box-shadow: 0 4px 12px -4px rgba(91,110,232,0.45), inset 0 1px 0 rgba(255,255,255,0.16);
345345 transition: transform 120ms ease;
346346 }
347347 .mkt-install-btn:hover {
356356 padding: clamp(28px, 4vw, 44px) clamp(20px, 4vw, 40px);
357357 text-align: center;
358358 background: var(--bg-elevated);
359 border: 1px dashed rgba(140,109,255,0.40);
359 border: 1px dashed rgba(91,110,232,0.40);
360360 border-radius: 16px;
361361 overflow: hidden;
362362 }
364364 position: absolute;
365365 inset: -40% -20% auto auto;
366366 width: 320px; height: 320px;
367 background: radial-gradient(circle, rgba(140,109,255,0.20), rgba(54,197,214,0.10) 45%, transparent 70%);
367 background: radial-gradient(circle, rgba(91,110,232,0.20), rgba(95,143,160,0.10) 45%, transparent 70%);
368368 filter: blur(60px);
369369 opacity: 0.7;
370370 pointer-events: none;
377377 justify-content: center;
378378 width: 56px; height: 56px;
379379 border-radius: 9999px;
380 background: linear-gradient(135deg, rgba(140,109,255,0.18), rgba(54,197,214,0.12));
380 background: linear-gradient(135deg, rgba(91,110,232,0.18), rgba(95,143,160,0.12));
381381 color: #c5b3ff;
382 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.35);
382 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.35);
383383 margin-bottom: 14px;
384384 }
385385 .mkt-empty-title {
454454 line-height: 1;
455455 }
456456 .mkt-btn-primary {
457 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
457 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
458458 color: #ffffff;
459 box-shadow: 0 6px 18px -6px rgba(140,109,255,0.50), inset 0 1px 0 rgba(255,255,255,0.16);
459 box-shadow: 0 6px 18px -6px rgba(91,110,232,0.50), inset 0 1px 0 rgba(255,255,255,0.16);
460460 }
461461 .mkt-btn-primary:hover {
462462 transform: translateY(-1px);
463 box-shadow: 0 10px 24px -8px rgba(140,109,255,0.60), inset 0 1px 0 rgba(255,255,255,0.20);
463 box-shadow: 0 10px 24px -8px rgba(91,110,232,0.60), inset 0 1px 0 rgba(255,255,255,0.20);
464464 color: #ffffff;
465465 text-decoration: none;
466466 }
470470 border-color: var(--border-strong, var(--border));
471471 }
472472 .mkt-btn-ghost:hover {
473 background: rgba(140,109,255,0.06);
474 border-color: rgba(140,109,255,0.45);
473 background: rgba(91,110,232,0.06);
474 border-color: rgba(91,110,232,0.45);
475475 color: var(--text-strong);
476476 text-decoration: none;
477477 }
591591 .mkt-form-group input[type="url"]:focus,
592592 .mkt-form-group textarea:focus {
593593 outline: none;
594 border-color: rgba(140,109,255,0.45);
595 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
594 border-color: rgba(91,110,232,0.45);
595 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
596596 }
597597 .mkt-checkbox-grid {
598598 display: grid;
685685 * The same input always renders the same gradient — keeps it consistent
686686 * across views and avoids the "rebuild → palette shuffled" effect. */
687687const LOGO_GRADIENTS = [
688 "linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%)",
688 "linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%)",
689689 "linear-gradient(135deg, #ec4899 0%, #f43f5e 100%)",
690690 "linear-gradient(135deg, #f59e0b 0%, #ef4444 100%)",
691691 "linear-gradient(135deg, #10b981 0%, #14b8a6 100%)",
Modifiedsrc/routes/merge-queue.tsx+24−24View fileUnifiedSplit
6868 position: absolute;
6969 top: 0; left: 0; right: 0;
7070 height: 2px;
71 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
71 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
7272 opacity: 0.7;
7373 pointer-events: none;
7474 }
7676 position: absolute;
7777 inset: -20% -10% auto auto;
7878 width: 380px; height: 380px;
79 background: radial-gradient(circle, rgba(140,109,255,0.20), rgba(54,197,214,0.10) 45%, transparent 70%);
79 background: radial-gradient(circle, rgba(91,110,232,0.20), rgba(95,143,160,0.10) 45%, transparent 70%);
8080 filter: blur(80px);
8181 opacity: 0.7;
8282 pointer-events: none;
107107 .mq-eyebrow-dot {
108108 width: 8px; height: 8px;
109109 border-radius: 9999px;
110 background: linear-gradient(135deg, #8c6dff, #36c5d6);
111 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
110 background: linear-gradient(135deg, #5b6ee8, #5f8fa0);
111 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
112112 }
113113 .mq-title {
114114 font-family: var(--font-display);
120120 color: var(--text-strong);
121121 }
122122 .mq-title-grad {
123 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
123 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
124124 -webkit-background-clip: text;
125125 background-clip: text;
126126 -webkit-text-fill-color: transparent;
148148 white-space: nowrap;
149149 text-decoration: none;
150150 color: #ffffff;
151 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
152 box-shadow: 0 6px 18px -6px rgba(140,109,255,0.50), inset 0 1px 0 rgba(255,255,255,0.16);
151 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
152 box-shadow: 0 6px 18px -6px rgba(91,110,232,0.50), inset 0 1px 0 rgba(255,255,255,0.16);
153153 transition: transform 120ms ease, box-shadow 120ms ease;
154154 }
155155 .mq-hero-cta:hover {
156156 transform: translateY(-1px);
157 box-shadow: 0 10px 24px -8px rgba(140,109,255,0.60), inset 0 1px 0 rgba(255,255,255,0.20);
157 box-shadow: 0 10px 24px -8px rgba(91,110,232,0.60), inset 0 1px 0 rgba(255,255,255,0.20);
158158 text-decoration: none;
159159 color: #ffffff;
160160 }
203203 position: absolute;
204204 top: 0; left: 0; right: 0;
205205 height: 2px;
206 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
206 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
207207 opacity: 0.45;
208208 pointer-events: none;
209209 }
235235 justify-content: center;
236236 width: 26px; height: 26px;
237237 border-radius: 8px;
238 background: rgba(140,109,255,0.12);
239 color: #b69dff;
240 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.28);
238 background: rgba(91,110,232,0.12);
239 color: #5b6ee8;
240 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.28);
241241 flex-shrink: 0;
242242 }
243243 .mq-base-chip {
345345 box-shadow: inset 0 0 0 1px rgba(148,163,184,0.30);
346346 }
347347 .mq-pill.is-running {
348 background: rgba(54,197,214,0.14);
348 background: rgba(95,143,160,0.14);
349349 color: #67e8f9;
350 box-shadow: inset 0 0 0 1px rgba(54,197,214,0.32);
350 box-shadow: inset 0 0 0 1px rgba(95,143,160,0.32);
351351 }
352352 .mq-pill.is-merged {
353 background: rgba(140,109,255,0.16);
353 background: rgba(91,110,232,0.16);
354354 color: #c4b5fd;
355 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.32);
355 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.32);
356356 }
357357 .mq-pill.is-failed {
358358 background: rgba(248,113,113,0.14);
384384 white-space: nowrap;
385385 }
386386 .mq-btn-primary {
387 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
387 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
388388 color: #ffffff;
389 box-shadow: 0 6px 18px -6px rgba(140,109,255,0.50), inset 0 1px 0 rgba(255,255,255,0.16);
389 box-shadow: 0 6px 18px -6px rgba(91,110,232,0.50), inset 0 1px 0 rgba(255,255,255,0.16);
390390 }
391391 .mq-btn-primary:hover {
392392 transform: translateY(-1px);
393 box-shadow: 0 10px 24px -8px rgba(140,109,255,0.60), inset 0 1px 0 rgba(255,255,255,0.20);
393 box-shadow: 0 10px 24px -8px rgba(91,110,232,0.60), inset 0 1px 0 rgba(255,255,255,0.20);
394394 color: #ffffff;
395395 text-decoration: none;
396396 }
400400 border-color: var(--border-strong);
401401 }
402402 .mq-btn-ghost:hover {
403 background: rgba(140,109,255,0.06);
404 border-color: rgba(140,109,255,0.45);
403 background: rgba(91,110,232,0.06);
404 border-color: rgba(91,110,232,0.45);
405405 color: var(--text-strong);
406406 text-decoration: none;
407407 }
449449 position: absolute;
450450 inset: -40% 30% auto 30%;
451451 height: 280px;
452 background: radial-gradient(circle, rgba(140,109,255,0.18), rgba(54,197,214,0.10) 45%, transparent 70%);
452 background: radial-gradient(circle, rgba(91,110,232,0.18), rgba(95,143,160,0.10) 45%, transparent 70%);
453453 filter: blur(70px);
454454 opacity: 0.7;
455455 pointer-events: none;
459459 .mq-empty-icon {
460460 width: 56px; height: 56px;
461461 border-radius: 9999px;
462 background: linear-gradient(135deg, rgba(140,109,255,0.25), rgba(54,197,214,0.20));
463 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.40);
462 background: linear-gradient(135deg, rgba(91,110,232,0.25), rgba(95,143,160,0.20));
463 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.40);
464464 display: inline-flex;
465465 align-items: center;
466466 justify-content: center;
Modifiedsrc/routes/migrate.tsx+6−6View fileUnifiedSplit
239239 position: absolute;
240240 top: 0; left: 0; right: 0;
241241 height: 2px;
242 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
242 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
243243 pointer-events: none;
244244 }
245245 .mig-wiz-hero-orb-wrap {
252252 .mig-wiz-hero-orb {
253253 position: absolute;
254254 inset: 0;
255 background: radial-gradient(circle, rgba(140,109,255,0.20), rgba(54,197,214,0.10) 45%, transparent 70%);
255 background: radial-gradient(circle, rgba(91,110,232,0.20), rgba(95,143,160,0.10) 45%, transparent 70%);
256256 filter: blur(80px);
257257 opacity: 0.7;
258258 animation: migWizOrb 14s ease-in-out infinite;
274274 width: 6px; height: 6px;
275275 border-radius: 50%;
276276 background: var(--accent);
277 box-shadow: 0 0 8px rgba(140,109,255,0.6);
277 box-shadow: 0 0 8px rgba(91,110,232,0.6);
278278 margin-right: 8px;
279279 vertical-align: 1px;
280280 }
288288 color: var(--text-strong);
289289 }
290290 .mig-wiz-title .gradient-text {
291 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
291 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
292292 -webkit-background-clip: text;
293293 background-clip: text;
294294 -webkit-text-fill-color: transparent;
370370 .mig-wiz-input.is-mono { font-family: var(--font-mono); font-size: 13px; }
371371 .mig-wiz-input:focus {
372372 border-color: var(--accent);
373 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
373 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
374374 }
375375 .mig-wiz-toggle {
376376 display: flex;
466466 .mig-prog-bar-fill {
467467 height: 100%;
468468 border-radius: 9999px;
469 background: linear-gradient(90deg, #8c6dff 0%, #36c5d6 100%);
469 background: linear-gradient(90deg, #5b6ee8 0%, #5f8fa0 100%);
470470 transition: width 0.8s ease;
471471 min-width: 4px;
472472 }
Modifiedsrc/routes/migration-assistant.tsx+11−11View fileUnifiedSplit
5151 position: absolute;
5252 top: 0; left: 0; right: 0;
5353 height: 2px;
54 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
54 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
5555 opacity: 0.7;
5656 pointer-events: none;
5757 }
5959 position: absolute;
6060 inset: -20% -10% auto auto;
6161 width: 380px; height: 380px;
62 background: radial-gradient(circle, rgba(140,109,255,0.20), rgba(54,197,214,0.10) 45%, transparent 70%);
62 background: radial-gradient(circle, rgba(91,110,232,0.20), rgba(95,143,160,0.10) 45%, transparent 70%);
6363 filter: blur(80px);
6464 opacity: 0.7;
6565 pointer-events: none;
8181 .migprop-eyebrow-dot {
8282 width: 8px; height: 8px;
8383 border-radius: 9999px;
84 background: linear-gradient(135deg, #8c6dff, #36c5d6);
85 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
84 background: linear-gradient(135deg, #5b6ee8, #5f8fa0);
85 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
8686 }
8787 .migprop-title {
8888 font-family: var(--font-display);
9494 color: var(--text-strong);
9595 }
9696 .migprop-title-grad {
97 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
97 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
9898 -webkit-background-clip: text;
9999 background-clip: text;
100100 -webkit-text-fill-color: transparent;
129129 position: absolute;
130130 top: 0; left: 0; right: 0;
131131 height: 2px;
132 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
132 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
133133 opacity: 0.45;
134134 pointer-events: none;
135135 }
184184 transition: border-color 100ms ease, background 100ms ease;
185185 }
186186 .migprop-input:focus {
187 border-color: rgba(140,109,255,0.55);
187 border-color: rgba(91,110,232,0.55);
188188 background: var(--bg-secondary);
189189 }
190190
210210 white-space: nowrap;
211211 text-decoration: none;
212212 color: #ffffff;
213 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
214 box-shadow: 0 6px 18px -6px rgba(140,109,255,0.50), inset 0 1px 0 rgba(255,255,255,0.16);
213 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
214 box-shadow: 0 6px 18px -6px rgba(91,110,232,0.50), inset 0 1px 0 rgba(255,255,255,0.16);
215215 transition: transform 120ms ease, box-shadow 120ms ease;
216216 }
217217 .migprop-cta:hover {
218218 transform: translateY(-1px);
219 box-shadow: 0 10px 24px -8px rgba(140,109,255,0.60), inset 0 1px 0 rgba(255,255,255,0.20);
219 box-shadow: 0 10px 24px -8px rgba(91,110,232,0.60), inset 0 1px 0 rgba(255,255,255,0.20);
220220 color: #ffffff;
221221 text-decoration: none;
222222 }
241241 position: absolute;
242242 top: 0; left: 0; right: 0;
243243 height: 2px;
244 background: linear-gradient(90deg, transparent 0%, #6ee7b7 30%, #36c5d6 70%, transparent 100%);
244 background: linear-gradient(90deg, transparent 0%, #6ee7b7 30%, #5f8fa0 70%, transparent 100%);
245245 opacity: 0.55;
246246 }
247247 .migprop-result-title {
Modifiedsrc/routes/migrations.tsx+12−12View fileUnifiedSplit
6565 .mig-eyebrow-dot {
6666 width: 8px; height: 8px;
6767 border-radius: 9999px;
68 background: linear-gradient(135deg, #8c6dff, #36c5d6);
69 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
68 background: linear-gradient(135deg, #5b6ee8, #5f8fa0);
69 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
7070 }
7171 .mig-title {
7272 font-family: var(--font-display);
7878 color: var(--text-strong);
7979 }
8080 .mig-title-grad {
81 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
81 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
8282 -webkit-background-clip: text;
8383 background-clip: text;
8484 -webkit-text-fill-color: transparent;
111111 white-space: nowrap;
112112 }
113113 .mig-btn-primary {
114 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
114 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
115115 color: #ffffff;
116 box-shadow: 0 6px 18px -6px rgba(140,109,255,0.50), inset 0 1px 0 rgba(255,255,255,0.16);
116 box-shadow: 0 6px 18px -6px rgba(91,110,232,0.50), inset 0 1px 0 rgba(255,255,255,0.16);
117117 }
118118 .mig-btn-primary:hover {
119119 transform: translateY(-1px);
120 box-shadow: 0 10px 24px -8px rgba(140,109,255,0.60), inset 0 1px 0 rgba(255,255,255,0.20);
120 box-shadow: 0 10px 24px -8px rgba(91,110,232,0.60), inset 0 1px 0 rgba(255,255,255,0.20);
121121 text-decoration: none;
122122 color: #ffffff;
123123 }
127127 border-color: var(--border-strong);
128128 }
129129 .mig-btn-ghost:hover {
130 background: rgba(140,109,255,0.06);
131 border-color: rgba(140,109,255,0.45);
130 background: rgba(91,110,232,0.06);
131 border-color: rgba(91,110,232,0.45);
132132 color: var(--text-strong);
133133 text-decoration: none;
134134 }
156156 position: absolute;
157157 top: 0; left: 0; right: 0;
158158 height: 1.5px;
159 background: linear-gradient(90deg, transparent 0%, #8c6dff 50%, #36c5d6 100%);
159 background: linear-gradient(90deg, transparent 0%, #5b6ee8 50%, #5f8fa0 100%);
160160 opacity: 0.35;
161161 pointer-events: none;
162162 }
308308 position: absolute;
309309 inset: -40% 25% auto 25%;
310310 height: 300px;
311 background: radial-gradient(circle, rgba(140,109,255,0.18), rgba(54,197,214,0.10) 45%, transparent 70%);
311 background: radial-gradient(circle, rgba(91,110,232,0.18), rgba(95,143,160,0.10) 45%, transparent 70%);
312312 filter: blur(72px);
313313 opacity: 0.7;
314314 pointer-events: none;
319319 width: 56px; height: 56px;
320320 margin: 0 auto 14px;
321321 border-radius: 9999px;
322 background: linear-gradient(135deg, rgba(140,109,255,0.25), rgba(54,197,214,0.20));
323 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.40);
322 background: linear-gradient(135deg, rgba(91,110,232,0.25), rgba(95,143,160,0.20));
323 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.40);
324324 display: inline-flex;
325325 align-items: center;
326326 justify-content: center;
Modifiedsrc/routes/milestones.tsx+11−11View fileUnifiedSplit
4343 position: absolute;
4444 top: 0; left: 0; right: 0;
4545 height: 2px;
46 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
46 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
4747 opacity: 0.7;
4848 pointer-events: none;
4949 }
113113 }
114114 .ms-filter-tab:hover { color: var(--text-strong); text-decoration: none; }
115115 .ms-filter-tab.is-active {
116 background: rgba(140,109,255,0.14);
116 background: rgba(91,110,232,0.14);
117117 color: var(--text-strong);
118118 }
119119 .ms-filter-tab-count {
141141 transition: border-color 120ms, box-shadow 120ms;
142142 }
143143 .ms-card:hover {
144 border-color: rgba(140,109,255,0.4);
145 box-shadow: 0 4px 16px -8px rgba(140,109,255,0.2);
144 border-color: rgba(91,110,232,0.4);
145 box-shadow: 0 4px 16px -8px rgba(91,110,232,0.2);
146146 }
147147 .ms-card-header {
148148 display: flex;
188188 font-weight: 600;
189189 }
190190 .ms-card-state.is-open { background: rgba(52,211,153,0.10); color: #34d399; border: 1px solid rgba(52,211,153,0.3); }
191 .ms-card-state.is-closed { background: rgba(182,157,255,0.10); color: #b69dff; border: 1px solid rgba(182,157,255,0.3); }
191 .ms-card-state.is-closed { background: rgba(182,157,255,0.10); color: #5b6ee8; border: 1px solid rgba(182,157,255,0.3); }
192192
193193 /* Progress bar */
194194 .ms-progress-wrap {
203203 }
204204 .ms-progress-bar-fill {
205205 height: 100%;
206 background: linear-gradient(90deg, #8c6dff, #36c5d6);
206 background: linear-gradient(90deg, #5b6ee8, #5f8fa0);
207207 border-radius: 9999px;
208208 transition: width 400ms ease;
209209 }
301301 box-sizing: border-box;
302302 }
303303 .ms-form-input:focus {
304 border-color: rgba(140,109,255,0.6);
305 box-shadow: 0 0 0 3px rgba(140,109,255,0.15);
304 border-color: rgba(91,110,232,0.6);
305 box-shadow: 0 0 0 3px rgba(91,110,232,0.15);
306306 }
307307 .ms-form-textarea {
308308 min-height: 100px;
339339 position: absolute;
340340 top: 0; left: 0; right: 0;
341341 height: 2px;
342 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
342 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
343343 opacity: 0.7;
344344 pointer-events: none;
345345 }
402402 transition: background 120ms;
403403 }
404404 .ms-item-row:last-child { border-bottom: none; }
405 .ms-item-row:hover { background: rgba(140,109,255,0.04); }
405 .ms-item-row:hover { background: rgba(91,110,232,0.04); }
406406 .ms-item-icon {
407407 width: 16px;
408408 height: 16px;
411411 font-size: 14px;
412412 }
413413 .ms-item-icon.is-open { color: #34d399; }
414 .ms-item-icon.is-closed { color: #b69dff; }
414 .ms-item-icon.is-closed { color: #5b6ee8; }
415415 .ms-item-icon.is-merged { color: #a78bfa; }
416416 .ms-item-main { flex: 1; min-width: 0; }
417417 .ms-item-title {
Modifiedsrc/routes/mirrors.tsx+23−23View fileUnifiedSplit
6262 position: absolute;
6363 top: 0; left: 0; right: 0;
6464 height: 2px;
65 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
65 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
6666 opacity: 0.7;
6767 pointer-events: none;
6868 }
7070 position: absolute;
7171 inset: -20% -10% auto auto;
7272 width: 380px; height: 380px;
73 background: radial-gradient(circle, rgba(140,109,255,0.20), rgba(54,197,214,0.10) 45%, transparent 70%);
73 background: radial-gradient(circle, rgba(91,110,232,0.20), rgba(95,143,160,0.10) 45%, transparent 70%);
7474 filter: blur(80px);
7575 opacity: 0.7;
7676 pointer-events: none;
101101 .mirror-eyebrow-dot {
102102 width: 8px; height: 8px;
103103 border-radius: 9999px;
104 background: linear-gradient(135deg, #8c6dff, #36c5d6);
105 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
104 background: linear-gradient(135deg, #5b6ee8, #5f8fa0);
105 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
106106 }
107107 .mirror-title {
108108 font-family: var(--font-display);
114114 color: var(--text-strong);
115115 }
116116 .mirror-title-grad {
117 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
117 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
118118 -webkit-background-clip: text;
119119 background-clip: text;
120120 -webkit-text-fill-color: transparent;
149149 white-space: nowrap;
150150 text-decoration: none;
151151 color: #ffffff;
152 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
153 box-shadow: 0 6px 18px -6px rgba(140,109,255,0.50), inset 0 1px 0 rgba(255,255,255,0.16);
152 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
153 box-shadow: 0 6px 18px -6px rgba(91,110,232,0.50), inset 0 1px 0 rgba(255,255,255,0.16);
154154 transition: transform 120ms ease, box-shadow 120ms ease;
155155 }
156156 .mirror-hero-cta:hover {
157157 transform: translateY(-1px);
158 box-shadow: 0 10px 24px -8px rgba(140,109,255,0.60), inset 0 1px 0 rgba(255,255,255,0.20);
158 box-shadow: 0 10px 24px -8px rgba(91,110,232,0.60), inset 0 1px 0 rgba(255,255,255,0.20);
159159 text-decoration: none;
160160 color: #ffffff;
161161 }
204204 position: absolute;
205205 top: 0; left: 0; right: 0;
206206 height: 2px;
207 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
207 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
208208 opacity: 0.45;
209209 pointer-events: none;
210210 }
234234 justify-content: center;
235235 width: 26px; height: 26px;
236236 border-radius: 8px;
237 background: rgba(140,109,255,0.12);
238 color: #b69dff;
239 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.28);
237 background: rgba(91,110,232,0.12);
238 color: #5b6ee8;
239 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.28);
240240 flex-shrink: 0;
241241 }
242242 .mirror-section-sub {
274274 }
275275 .mirror-input:focus {
276276 outline: none;
277 border-color: rgba(140,109,255,0.55);
277 border-color: rgba(91,110,232,0.55);
278278 background: rgba(255,255,255,0.05);
279 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
279 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
280280 }
281281 .mirror-input.is-num { max-width: 180px; font-family: var(--font-mono); font-variant-numeric: tabular-nums; }
282282 .mirror-checkbox-row {
291291 color: var(--text);
292292 cursor: pointer;
293293 }
294 .mirror-checkbox-row input { accent-color: #8c6dff; }
294 .mirror-checkbox-row input { accent-color: #5b6ee8; }
295295
296296 /* ─── Buttons ─── */
297297 .mirror-btn {
312312 white-space: nowrap;
313313 }
314314 .mirror-btn-primary {
315 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
315 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
316316 color: #ffffff;
317 box-shadow: 0 6px 18px -6px rgba(140,109,255,0.50), inset 0 1px 0 rgba(255,255,255,0.16);
317 box-shadow: 0 6px 18px -6px rgba(91,110,232,0.50), inset 0 1px 0 rgba(255,255,255,0.16);
318318 }
319319 .mirror-btn-primary:hover {
320320 transform: translateY(-1px);
321 box-shadow: 0 10px 24px -8px rgba(140,109,255,0.60), inset 0 1px 0 rgba(255,255,255,0.20);
321 box-shadow: 0 10px 24px -8px rgba(91,110,232,0.60), inset 0 1px 0 rgba(255,255,255,0.20);
322322 color: #ffffff;
323323 text-decoration: none;
324324 }
328328 border-color: var(--border-strong);
329329 }
330330 .mirror-btn-ghost:hover {
331 background: rgba(140,109,255,0.06);
332 border-color: rgba(140,109,255,0.45);
331 background: rgba(91,110,232,0.06);
332 border-color: rgba(91,110,232,0.45);
333333 color: var(--text-strong);
334334 text-decoration: none;
335335 }
482482 position: absolute;
483483 inset: -40% 30% auto 30%;
484484 height: 280px;
485 background: radial-gradient(circle, rgba(140,109,255,0.18), rgba(54,197,214,0.10) 45%, transparent 70%);
485 background: radial-gradient(circle, rgba(91,110,232,0.18), rgba(95,143,160,0.10) 45%, transparent 70%);
486486 filter: blur(70px);
487487 opacity: 0.7;
488488 pointer-events: none;
492492 .mirror-empty-icon {
493493 width: 56px; height: 56px;
494494 border-radius: 9999px;
495 background: linear-gradient(135deg, rgba(140,109,255,0.25), rgba(54,197,214,0.20));
496 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.40);
495 background: linear-gradient(135deg, rgba(91,110,232,0.25), rgba(95,143,160,0.20));
496 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.40);
497497 display: inline-flex;
498498 align-items: center;
499499 justify-content: center;
Modifiedsrc/routes/notifications.tsx+27−27View fileUnifiedSplit
4141 position: absolute;
4242 top: 0; left: 0; right: 0;
4343 height: 2px;
44 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
44 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
4545 opacity: 0.7;
4646 pointer-events: none;
4747 }
5656 .notif-hero-orb {
5757 position: absolute;
5858 inset: 0;
59 background: radial-gradient(circle, rgba(140,109,255,0.18), rgba(54,197,214,0.09) 45%, transparent 70%);
59 background: radial-gradient(circle, rgba(91,110,232,0.18), rgba(95,143,160,0.09) 45%, transparent 70%);
6060 filter: blur(80px);
6161 opacity: 0.7;
6262 animation: notifHeroOrb 14s ease-in-out infinite;
102102 color: var(--text-strong);
103103 }
104104 .notif-hero-title .gradient-text {
105 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
105 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
106106 -webkit-background-clip: text;
107107 background-clip: text;
108108 -webkit-text-fill-color: transparent;
169169 }
170170 .notif-filter:hover { color: var(--text-strong); text-decoration: none; }
171171 .notif-filter.is-active {
172 background: rgba(140,109,255,0.14);
172 background: rgba(91,110,232,0.14);
173173 color: var(--text-strong);
174 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.30);
174 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.30);
175175 }
176176 .notif-filter-count {
177177 font-variant-numeric: tabular-nums;
182182 border-radius: 9999px;
183183 }
184184 .notif-filter.is-active .notif-filter-count {
185 background: rgba(140,109,255,0.22);
185 background: rgba(91,110,232,0.22);
186186 color: var(--text);
187187 }
188188 .notif-mark-all {
201201 font-family: inherit;
202202 }
203203 .notif-mark-all:hover {
204 border-color: rgba(140,109,255,0.45);
204 border-color: rgba(91,110,232,0.45);
205205 color: var(--text-strong);
206 background: rgba(140,109,255,0.06);
206 background: rgba(91,110,232,0.06);
207207 }
208208 .notif-mark-all-form { margin: 0; padding: 0; }
209209
228228 }
229229 .notif-row:last-child { border-bottom: none; }
230230 .notif-row:hover {
231 background: rgba(140,109,255,0.04);
231 background: rgba(91,110,232,0.04);
232232 transform: translateY(-1px);
233233 box-shadow: 0 8px 24px -16px rgba(0,0,0,0.45);
234234 }
239239 left: 0; top: 12px; bottom: 12px;
240240 width: 3px;
241241 border-radius: 0 3px 3px 0;
242 background: linear-gradient(180deg, #a48bff 0%, #8c6dff 60%, #36c5d6 100%);
243 box-shadow: 0 0 10px rgba(140,109,255,0.45);
242 background: linear-gradient(180deg, #5b6ee8 0%, #5b6ee8 60%, #5f8fa0 100%);
243 box-shadow: 0 0 10px rgba(91,110,232,0.45);
244244 }
245245 .notif-row-icon {
246246 flex-shrink: 0;
262262 .notif-row-icon.is-ci { color: #34d399; background: rgba(52,211,153,0.10); border-color: rgba(52,211,153,0.25); }
263263 .notif-row-icon.is-ai {
264264 color: #fff;
265 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
266 border-color: rgba(140,109,255,0.55);
267 box-shadow: 0 0 14px rgba(140,109,255,0.40);
265 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
266 border-color: rgba(91,110,232,0.55);
267 box-shadow: 0 0 14px rgba(91,110,232,0.40);
268268 }
269269 .notif-row-main { flex: 1; min-width: 0; }
270270 .notif-row-title {
334334 }
335335 .notif-row-action:hover {
336336 color: var(--text-strong);
337 background: rgba(140,109,255,0.10);
338 border-color: rgba(140,109,255,0.30);
337 background: rgba(91,110,232,0.10);
338 border-color: rgba(91,110,232,0.30);
339339 }
340340 .notif-row-action.is-open {
341341 width: auto;
349349 /* AI-specific row treatment — purple-tinted */
350350 .notif-row.notif-row-ai {
351351 background:
352 linear-gradient(90deg, rgba(140,109,255,0.06) 0%, rgba(140,109,255,0.015) 60%, transparent 100%),
352 linear-gradient(90deg, rgba(91,110,232,0.06) 0%, rgba(91,110,232,0.015) 60%, transparent 100%),
353353 var(--bg-elevated);
354354 }
355355 .notif-row.notif-row-ai:hover {
356356 background:
357 linear-gradient(90deg, rgba(140,109,255,0.10) 0%, rgba(140,109,255,0.03) 60%, transparent 100%),
357 linear-gradient(90deg, rgba(91,110,232,0.10) 0%, rgba(91,110,232,0.03) 60%, transparent 100%),
358358 var(--bg-elevated);
359359 }
360360 .notif-row-ai .notif-row-title strong { color: var(--text-strong); }
364364 gap: 4px;
365365 padding: 1px 8px;
366366 border-radius: 9999px;
367 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
367 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
368368 color: #fff;
369369 font-size: 10.5px;
370370 font-weight: 700;
371371 letter-spacing: 0.04em;
372372 text-transform: uppercase;
373373 line-height: 1.4;
374 box-shadow: 0 0 10px rgba(140,109,255,0.30);
374 box-shadow: 0 0 10px rgba(91,110,232,0.30);
375375 }
376376
377377 /* ─── Empty state ─── */
389389 position: absolute;
390390 top: 0; left: 0; right: 0;
391391 height: 2px;
392 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
392 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
393393 opacity: 0.55;
394394 pointer-events: none;
395395 }
467467 >
468468 <defs>
469469 <linearGradient id="notifEmptyGrad" x1="0" y1="0" x2="1" y2="1">
470 <stop offset="0%" stop-color="#a48bff" />
471 <stop offset="55%" stop-color="#8c6dff" />
472 <stop offset="100%" stop-color="#36c5d6" />
470 <stop offset="0%" stop-color="#5b6ee8" />
471 <stop offset="55%" stop-color="#5b6ee8" />
472 <stop offset="100%" stop-color="#5f8fa0" />
473473 </linearGradient>
474474 <radialGradient id="notifEmptyGlow" cx="0.5" cy="0.55" r="0.6">
475 <stop offset="0%" stop-color="rgba(140,109,255,0.40)" />
476 <stop offset="100%" stop-color="rgba(140,109,255,0)" />
475 <stop offset="0%" stop-color="rgba(91,110,232,0.40)" />
476 <stop offset="100%" stop-color="rgba(91,110,232,0)" />
477477 </radialGradient>
478478 </defs>
479479 <circle cx="48" cy="50" r="36" fill="url(#notifEmptyGlow)" />
482482 stroke="url(#notifEmptyGrad)"
483483 stroke-width="2"
484484 stroke-linejoin="round"
485 fill="rgba(140,109,255,0.06)"
485 fill="rgba(91,110,232,0.06)"
486486 />
487487 <path
488488 d="M42 64c1.5 3 3.5 4.5 6 4.5s4.5-1.5 6-4.5"
Modifiedsrc/routes/oauth.tsx+16−16View fileUnifiedSplit
128128 position: absolute;
129129 top: 0; left: 0; right: 0;
130130 height: 2px;
131 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
131 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
132132 opacity: 0.7;
133133 pointer-events: none;
134134 }
136136 position: absolute;
137137 inset: -20% -10% auto auto;
138138 width: 380px; height: 380px;
139 background: radial-gradient(circle, rgba(140,109,255,0.20), rgba(54,197,214,0.10) 45%, transparent 70%);
139 background: radial-gradient(circle, rgba(91,110,232,0.20), rgba(95,143,160,0.10) 45%, transparent 70%);
140140 filter: blur(80px);
141141 opacity: 0.7;
142142 pointer-events: none;
158158 .oauth-eyebrow-dot {
159159 width: 8px; height: 8px;
160160 border-radius: 9999px;
161 background: linear-gradient(135deg, #8c6dff, #36c5d6);
162 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
161 background: linear-gradient(135deg, #5b6ee8, #5f8fa0);
162 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
163163 }
164164 .oauth-title {
165165 font-size: clamp(26px, 3.5vw, 36px);
171171 color: var(--text-strong);
172172 }
173173 .oauth-title-grad {
174 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
174 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
175175 -webkit-background-clip: text;
176176 background-clip: text;
177177 -webkit-text-fill-color: transparent;
229229 width: 56px;
230230 height: 56px;
231231 border-radius: 12px;
232 background: linear-gradient(135deg, rgba(140,109,255,0.22), rgba(54,197,214,0.16));
233 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.32);
232 background: linear-gradient(135deg, rgba(91,110,232,0.22), rgba(95,143,160,0.16));
233 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.32);
234234 display: flex;
235235 align-items: center;
236236 justify-content: center;
255255 font-family: var(--font-mono);
256256 font-size: 12.5px;
257257 color: var(--accent);
258 background: rgba(140,109,255,0.08);
258 background: rgba(91,110,232,0.08);
259259 padding: 1px 6px;
260260 border-radius: 4px;
261261 margin-left: 6px;
329329 font-size: 11.5px;
330330 font-weight: 600;
331331 color: #e9d5ff;
332 background: linear-gradient(135deg, rgba(140,109,255,0.18), rgba(54,197,214,0.10));
333 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.32);
332 background: linear-gradient(135deg, rgba(91,110,232,0.18), rgba(95,143,160,0.10));
333 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.32);
334334 flex-shrink: 0;
335335 margin-top: 2px;
336336 white-space: nowrap;
386386 transition: transform 120ms ease, box-shadow 120ms ease, background 120ms ease, border-color 120ms ease, color 120ms ease;
387387 }
388388 .oauth-btn-primary {
389 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
389 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
390390 color: #ffffff;
391 box-shadow: 0 8px 22px -6px rgba(140,109,255,0.55), inset 0 1px 0 rgba(255,255,255,0.18);
391 box-shadow: 0 8px 22px -6px rgba(91,110,232,0.55), inset 0 1px 0 rgba(255,255,255,0.18);
392392 min-width: 180px;
393393 }
394394 .oauth-btn-primary:hover {
395395 transform: translateY(-1px);
396 box-shadow: 0 12px 28px -8px rgba(140,109,255,0.65), inset 0 1px 0 rgba(255,255,255,0.22);
396 box-shadow: 0 12px 28px -8px rgba(91,110,232,0.65), inset 0 1px 0 rgba(255,255,255,0.22);
397397 color: #ffffff;
398398 text-decoration: none;
399399 }
405405 }
406406 .oauth-btn-ghost:hover {
407407 background: rgba(255,255,255,0.04);
408 border-color: rgba(140,109,255,0.45);
408 border-color: rgba(91,110,232,0.45);
409409 color: var(--text-strong);
410410 text-decoration: none;
411411 }
435435 .oauth-explainer {
436436 margin-top: var(--space-4);
437437 padding: var(--space-3) var(--space-4);
438 background: rgba(140,109,255,0.04);
439 border: 1px dashed rgba(140,109,255,0.22);
438 background: rgba(91,110,232,0.04);
439 border: 1px dashed rgba(91,110,232,0.22);
440440 border-radius: 12px;
441441 font-size: 12.5px;
442442 color: var(--text-muted);
Modifiedsrc/routes/onboarding.tsx+25−25View fileUnifiedSplit
4242 position: absolute;
4343 top: 0; left: 0; right: 0;
4444 height: 2px;
45 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
45 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
4646 opacity: 0.75;
4747 pointer-events: none;
4848 }
5050 position: absolute;
5151 inset: -30% -10% auto auto;
5252 width: 460px; height: 460px;
53 background: radial-gradient(circle, rgba(140,109,255,0.22), rgba(54,197,214,0.10) 45%, transparent 70%);
53 background: radial-gradient(circle, rgba(91,110,232,0.22), rgba(95,143,160,0.10) 45%, transparent 70%);
5454 filter: blur(80px);
5555 opacity: 0.7;
5656 pointer-events: none;
7272 .onb-eyebrow-dot {
7373 width: 8px; height: 8px;
7474 border-radius: 9999px;
75 background: linear-gradient(135deg, #8c6dff, #36c5d6);
76 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
75 background: linear-gradient(135deg, #5b6ee8, #5f8fa0);
76 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
7777 }
7878 .onb-eyebrow strong { color: var(--accent); font-weight: 600; letter-spacing: 0.04em; }
7979 .onb-title {
8686 color: var(--text-strong);
8787 }
8888 .onb-title-grad {
89 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
89 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
9090 -webkit-background-clip: text;
9191 background-clip: text;
9292 -webkit-text-fill-color: transparent;
105105 margin-bottom: var(--space-5);
106106 padding: 14px 18px;
107107 border-radius: 12px;
108 background: linear-gradient(135deg, rgba(140,109,255,0.16), rgba(54,197,214,0.10));
109 border: 1px solid rgba(140,109,255,0.40);
108 background: linear-gradient(135deg, rgba(91,110,232,0.16), rgba(95,143,160,0.10));
109 border: 1px solid rgba(91,110,232,0.40);
110110 font-size: 14px;
111111 color: var(--text-strong);
112112 display: flex;
116116 .onb-welcome-spark {
117117 width: 10px; height: 10px;
118118 border-radius: 9999px;
119 background: linear-gradient(135deg, #8c6dff, #36c5d6);
120 box-shadow: 0 0 0 4px rgba(140,109,255,0.18);
119 background: linear-gradient(135deg, #5b6ee8, #5f8fa0);
120 box-shadow: 0 0 0 4px rgba(91,110,232,0.18);
121121 flex-shrink: 0;
122122 }
123123
140140 transition: border-color 150ms ease, transform 150ms ease, box-shadow 150ms ease;
141141 }
142142 .onb-step:hover {
143 border-color: rgba(140,109,255,0.45);
143 border-color: rgba(91,110,232,0.45);
144144 transform: translateY(-2px);
145 box-shadow: 0 10px 28px -10px rgba(140,109,255,0.30);
145 box-shadow: 0 10px 28px -10px rgba(91,110,232,0.30);
146146 }
147147 .onb-step.is-done {
148148 border-color: rgba(52,211,153,0.40);
159159 justify-content: center;
160160 width: 30px; height: 30px;
161161 border-radius: 9999px;
162 background: linear-gradient(135deg, rgba(140,109,255,0.20), rgba(54,197,214,0.14));
162 background: linear-gradient(135deg, rgba(91,110,232,0.20), rgba(95,143,160,0.14));
163163 color: #c5b3ff;
164 border: 1px solid rgba(140,109,255,0.40);
164 border: 1px solid rgba(91,110,232,0.40);
165165 font-family: var(--font-display);
166166 font-weight: 700;
167167 font-size: 14px;
178178 justify-content: center;
179179 width: 30px; height: 30px;
180180 border-radius: 9px;
181 background: rgba(140,109,255,0.12);
182 color: #b69dff;
183 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.32);
181 background: rgba(91,110,232,0.12);
182 color: #5b6ee8;
183 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.32);
184184 margin-left: auto;
185185 flex-shrink: 0;
186186 }
222222 line-height: 1;
223223 }
224224 .onb-btn-primary {
225 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
225 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
226226 color: #ffffff;
227 box-shadow: 0 6px 16px -6px rgba(140,109,255,0.50), inset 0 1px 0 rgba(255,255,255,0.16);
227 box-shadow: 0 6px 16px -6px rgba(91,110,232,0.50), inset 0 1px 0 rgba(255,255,255,0.16);
228228 }
229229 .onb-btn-primary:hover {
230230 transform: translateY(-1px);
231 box-shadow: 0 10px 22px -8px rgba(140,109,255,0.60), inset 0 1px 0 rgba(255,255,255,0.20);
231 box-shadow: 0 10px 22px -8px rgba(91,110,232,0.60), inset 0 1px 0 rgba(255,255,255,0.20);
232232 color: #ffffff;
233233 text-decoration: none;
234234 }
238238 border-color: var(--border-strong, var(--border));
239239 }
240240 .onb-btn-ghost:hover {
241 background: rgba(140,109,255,0.06);
242 border-color: rgba(140,109,255,0.45);
241 background: rgba(91,110,232,0.06);
242 border-color: rgba(91,110,232,0.45);
243243 color: var(--text-strong);
244244 text-decoration: none;
245245 }
317317 padding: clamp(28px, 4vw, 44px) clamp(20px, 4vw, 40px);
318318 text-align: center;
319319 background: var(--bg-elevated);
320 border: 1px dashed rgba(140,109,255,0.40);
320 border: 1px dashed rgba(91,110,232,0.40);
321321 border-radius: 16px;
322322 overflow: hidden;
323323 }
325325 position: absolute;
326326 inset: -40% -20% auto auto;
327327 width: 320px; height: 320px;
328 background: radial-gradient(circle, rgba(52,211,153,0.20), rgba(54,197,214,0.10) 45%, transparent 70%);
328 background: radial-gradient(circle, rgba(52,211,153,0.20), rgba(95,143,160,0.10) 45%, transparent 70%);
329329 filter: blur(60px);
330330 opacity: 0.7;
331331 pointer-events: none;
338338 justify-content: center;
339339 width: 56px; height: 56px;
340340 border-radius: 9999px;
341 background: linear-gradient(135deg, rgba(140,109,255,0.18), rgba(54,197,214,0.12));
341 background: linear-gradient(135deg, rgba(91,110,232,0.18), rgba(95,143,160,0.12));
342342 color: #c5b3ff;
343 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.35);
343 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.35);
344344 margin-bottom: 14px;
345345 }
346346 .onb-empty-title {
Modifiedsrc/routes/org-insights.tsx+16−16View fileUnifiedSplit
297297 position: absolute;
298298 top: 0; left: 0; right: 0;
299299 height: 2px;
300 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
300 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
301301 opacity: 0.75;
302302 pointer-events: none;
303303 }
305305 position: absolute;
306306 inset: -30% -15% auto auto;
307307 width: 460px; height: 460px;
308 background: radial-gradient(circle, rgba(140,109,255,0.22), rgba(54,197,214,0.10) 45%, transparent 70%);
308 background: radial-gradient(circle, rgba(91,110,232,0.22), rgba(95,143,160,0.10) 45%, transparent 70%);
309309 filter: blur(80px);
310310 opacity: 0.75;
311311 pointer-events: none;
336336 .org-ins-eyebrow-dot {
337337 width: 8px; height: 8px;
338338 border-radius: 9999px;
339 background: linear-gradient(135deg, #8c6dff, #36c5d6);
340 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
339 background: linear-gradient(135deg, #5b6ee8, #5f8fa0);
340 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
341341 }
342342 .org-ins-title {
343343 font-family: var(--font-display);
349349 color: var(--text-strong);
350350 }
351351 .org-ins-title-grad {
352 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
352 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
353353 -webkit-background-clip: text;
354354 background-clip: text;
355355 -webkit-text-fill-color: transparent;
377377 white-space: nowrap;
378378 }
379379 .org-ins-back:hover {
380 background: rgba(140,109,255,0.06);
381 border-color: rgba(140,109,255,0.45);
380 background: rgba(91,110,232,0.06);
381 border-color: rgba(91,110,232,0.45);
382382 text-decoration: none;
383383 }
384384
419419 .org-ins-stat-value.is-warn { color: #fca5a5; }
420420 .org-ins-stat-value.is-info { color: #93c5fd; }
421421 .org-ins-stat-value.is-accent {
422 background-image: linear-gradient(135deg, #a48bff 0%, #36c5d6 100%);
422 background-image: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
423423 -webkit-background-clip: text;
424424 background-clip: text;
425425 -webkit-text-fill-color: transparent;
517517 flex: none;
518518 width: 28px; height: 28px;
519519 border-radius: 8px;
520 background: rgba(140,109,255,0.10);
521 color: #b69dff;
520 background: rgba(91,110,232,0.10);
521 color: #5b6ee8;
522522 font-family: var(--font-mono);
523523 font-size: 12px;
524524 font-weight: 700;
525525 display: flex;
526526 align-items: center;
527527 justify-content: center;
528 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.28);
528 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.28);
529529 }
530530 .org-ins-rank.is-1 {
531 background: linear-gradient(135deg, rgba(140,109,255,0.30), rgba(54,197,214,0.30));
531 background: linear-gradient(135deg, rgba(91,110,232,0.30), rgba(95,143,160,0.30));
532532 color: #fff;
533533 }
534534 .org-ins-card-main { flex: 1; min-width: 0; }
567567 flex: none;
568568 width: 32px; height: 32px;
569569 border-radius: 9999px;
570 background: linear-gradient(135deg, #8c6dff, #36c5d6);
570 background: linear-gradient(135deg, #5b6ee8, #5f8fa0);
571571 color: #fff;
572572 display: flex;
573573 align-items: center;
595595 position: absolute;
596596 inset: -40% -20% auto auto;
597597 width: 320px; height: 320px;
598 background: radial-gradient(circle, rgba(140,109,255,0.14), rgba(54,197,214,0.06) 45%, transparent 70%);
598 background: radial-gradient(circle, rgba(91,110,232,0.14), rgba(95,143,160,0.06) 45%, transparent 70%);
599599 filter: blur(60px);
600600 pointer-events: none;
601601 }
613613 align-items: center;
614614 padding: 9px 16px;
615615 border-radius: 10px;
616 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
616 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
617617 color: #fff;
618618 font-size: 13px;
619619 font-weight: 600;
620620 text-decoration: none;
621 box-shadow: 0 6px 18px -4px rgba(140,109,255,0.45), inset 0 1px 0 rgba(255,255,255,0.16);
621 box-shadow: 0 6px 18px -4px rgba(91,110,232,0.45), inset 0 1px 0 rgba(255,255,255,0.16);
622622 }
623623 .org-ins-empty .cta:hover { text-decoration: none; transform: translateY(-1px); }
624624`;
Modifiedsrc/routes/org-secrets.tsx+12−12View fileUnifiedSplit
5252 position: absolute;
5353 top: 0; left: 0; right: 0;
5454 height: 2px;
55 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
55 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
5656 opacity: 0.7;
5757 pointer-events: none;
5858 }
6060 position: absolute;
6161 inset: -20% -10% auto auto;
6262 width: 360px; height: 360px;
63 background: radial-gradient(circle, rgba(140,109,255,0.20), rgba(54,197,214,0.10) 45%, transparent 70%);
63 background: radial-gradient(circle, rgba(91,110,232,0.20), rgba(95,143,160,0.10) 45%, transparent 70%);
6464 filter: blur(80px);
6565 opacity: 0.7;
6666 pointer-events: none;
9393 color: var(--text-strong);
9494 }
9595 .osec-title-grad {
96 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
96 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
9797 -webkit-background-clip: text;
9898 background-clip: text;
9999 -webkit-text-fill-color: transparent;
111111 display: flex;
112112 gap: 12px;
113113 padding: 14px 18px;
114 background: rgba(140,109,255,0.08);
115 border: 1px solid rgba(140,109,255,0.22);
114 background: rgba(91,110,232,0.08);
115 border: 1px solid rgba(91,110,232,0.22);
116116 border-radius: 12px;
117117 margin-bottom: var(--space-5);
118118 font-size: 13.5px;
196196 }
197197 .osec-input:focus {
198198 outline: none;
199 border-color: rgba(140,109,255,0.6);
200 box-shadow: 0 0 0 3px rgba(140,109,255,0.14);
199 border-color: rgba(91,110,232,0.6);
200 box-shadow: 0 0 0 3px rgba(91,110,232,0.14);
201201 }
202202 .osec-input.is-invalid {
203203 border-color: rgba(239,68,68,0.6);
224224 white-space: nowrap;
225225 }
226226 .osec-btn-primary {
227 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
227 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
228228 color: #fff;
229 box-shadow: 0 5px 16px -4px rgba(140,109,255,0.45);
229 box-shadow: 0 5px 16px -4px rgba(91,110,232,0.45);
230230 }
231231 .osec-btn-primary:hover {
232232 transform: translateY(-1px);
233 box-shadow: 0 9px 22px -6px rgba(140,109,255,0.55);
233 box-shadow: 0 9px 22px -6px rgba(91,110,232,0.55);
234234 }
235235 .osec-btn-danger {
236236 background: transparent;
279279 transition: background 80ms ease;
280280 }
281281 .osec-table tbody tr:last-child { border-bottom: none; }
282 .osec-table tbody tr:hover { background: rgba(140,109,255,0.035); }
282 .osec-table tbody tr:hover { background: rgba(91,110,232,0.035); }
283283 .osec-table td {
284284 padding: 11px 16px;
285285 color: var(--text);
316316 align-items: center;
317317 justify-content: center;
318318 border-radius: 12px;
319 background: rgba(140,109,255,0.12);
319 background: rgba(91,110,232,0.12);
320320 color: #a78bfa;
321321 }
322322 .osec-empty-title {
Modifiedsrc/routes/org-sso-settings.tsx+8−8View fileUnifiedSplit
4343 content: '';
4444 position: absolute;
4545 top: 0; left: 0; right: 0; height: 2px;
46 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
46 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
4747 opacity: 0.7;
4848 pointer-events: none;
4949 }
101101 }
102102 .org-sso-input:focus {
103103 border-color: var(--border-focus);
104 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
104 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
105105 }
106106 .org-sso-textarea {
107107 min-height: 120px;
146146 text-decoration: none;
147147 }
148148 .org-sso-btn-primary {
149 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
149 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
150150 color: #fff;
151151 }
152152 .org-sso-btn-primary:hover { opacity: 0.9; text-decoration: none; color: #fff; }
155155 border-color: var(--border-strong);
156156 color: var(--text);
157157 }
158 .org-sso-btn-ghost:hover { background: rgba(140,109,255,0.07); border-color: rgba(140,109,255,0.45); color: var(--text-strong); text-decoration: none; }
158 .org-sso-btn-ghost:hover { background: rgba(91,110,232,0.07); border-color: rgba(91,110,232,0.45); color: var(--text-strong); text-decoration: none; }
159159
160160 .org-sso-banner {
161161 margin-bottom: var(--space-4);
172172 align-items: center;
173173 gap: var(--space-3);
174174 padding: 12px 14px;
175 background: rgba(140,109,255,0.05);
176 border: 1px dashed rgba(140,109,255,0.30);
175 background: rgba(91,110,232,0.05);
176 border: 1px dashed rgba(91,110,232,0.30);
177177 border-radius: 12px;
178178 flex-wrap: wrap;
179179 margin-bottom: var(--space-4);
225225 font: inherit;
226226 }
227227 .org-sso-tab.is-active {
228 background: rgba(140,109,255,0.14);
229 border-color: rgba(140,109,255,0.45);
228 background: rgba(91,110,232,0.14);
229 border-color: rgba(91,110,232,0.45);
230230 color: var(--text-strong);
231231 }
232232
Modifiedsrc/routes/orgs.tsx+30−30View fileUnifiedSplit
5050 position: absolute;
5151 top: 0; left: 0; right: 0;
5252 height: 2px;
53 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
53 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
5454 opacity: 0.7;
5555 pointer-events: none;
5656 }
5858 position: absolute;
5959 inset: -20% -10% auto auto;
6060 width: 380px; height: 380px;
61 background: radial-gradient(circle, rgba(140,109,255,0.20), rgba(54,197,214,0.10) 45%, transparent 70%);
61 background: radial-gradient(circle, rgba(91,110,232,0.20), rgba(95,143,160,0.10) 45%, transparent 70%);
6262 filter: blur(80px);
6363 opacity: 0.7;
6464 pointer-events: none;
9292 justify-content: center;
9393 width: 18px; height: 18px;
9494 border-radius: 6px;
95 background: rgba(140,109,255,0.14);
96 color: #b69dff;
97 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.35);
95 background: rgba(91,110,232,0.14);
96 color: #5b6ee8;
97 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.35);
9898 }
9999 .orgs-crumb { color: var(--text-muted); text-decoration: none; }
100100 .orgs-crumb:hover { color: var(--text); }
108108 color: var(--text-strong);
109109 }
110110 .orgs-title-grad {
111 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
111 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
112112 -webkit-background-clip: text;
113113 background-clip: text;
114114 -webkit-text-fill-color: transparent;
140140 transition: transform 120ms ease, box-shadow 120ms ease, background 120ms ease, border-color 120ms ease, color 120ms ease;
141141 }
142142 .orgs-btn-primary {
143 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
143 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
144144 color: #fff;
145 box-shadow: 0 6px 18px -4px rgba(140,109,255,0.45), inset 0 1px 0 rgba(255,255,255,0.16);
145 box-shadow: 0 6px 18px -4px rgba(91,110,232,0.45), inset 0 1px 0 rgba(255,255,255,0.16);
146146 }
147147 .orgs-btn-primary:hover {
148148 transform: translateY(-1px);
149 box-shadow: 0 10px 24px -6px rgba(140,109,255,0.55), inset 0 1px 0 rgba(255,255,255,0.20);
149 box-shadow: 0 10px 24px -6px rgba(91,110,232,0.55), inset 0 1px 0 rgba(255,255,255,0.20);
150150 color: #fff;
151151 text-decoration: none;
152152 }
156156 border-color: var(--border-strong);
157157 }
158158 .orgs-btn-ghost:hover {
159 background: rgba(140,109,255,0.06);
160 border-color: rgba(140,109,255,0.45);
159 background: rgba(91,110,232,0.06);
160 border-color: rgba(91,110,232,0.45);
161161 color: var(--text-strong);
162162 text-decoration: none;
163163 }
183183 transition: transform 120ms ease, border-color 120ms ease, box-shadow 120ms ease;
184184 }
185185 .orgs-card:hover {
186 border-color: rgba(140,109,255,0.32);
186 border-color: rgba(91,110,232,0.32);
187187 box-shadow: 0 8px 24px -10px rgba(0,0,0,0.32);
188188 transform: translateY(-1px);
189189 color: inherit;
194194 width: 48px;
195195 height: 48px;
196196 border-radius: 12px;
197 background: linear-gradient(135deg, rgba(140,109,255,0.22), rgba(54,197,214,0.16));
198 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.32);
197 background: linear-gradient(135deg, rgba(91,110,232,0.22), rgba(95,143,160,0.16));
198 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.32);
199199 display: flex;
200200 align-items: center;
201201 justify-content: center;
237237 font-weight: 700;
238238 letter-spacing: 0.05em;
239239 text-transform: uppercase;
240 background: rgba(140,109,255,0.14);
240 background: rgba(91,110,232,0.14);
241241 color: #c4b5fd;
242 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.32);
242 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.32);
243243 }
244 .orgs-pill.is-role { background: rgba(54,197,214,0.14); color: #67e8f9; box-shadow: inset 0 0 0 1px rgba(54,197,214,0.32); }
244 .orgs-pill.is-role { background: rgba(95,143,160,0.14); color: #67e8f9; box-shadow: inset 0 0 0 1px rgba(95,143,160,0.32); }
245245 .orgs-pill .dot { width: 5px; height: 5px; border-radius: 9999px; background: currentColor; }
246246 .orgs-stat {
247247 display: inline-flex;
267267 position: absolute;
268268 top: 0; left: 0; right: 0;
269269 height: 2px;
270 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
270 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
271271 opacity: 0.7;
272272 pointer-events: none;
273273 }
275275 position: absolute;
276276 inset: -20% -10% auto auto;
277277 width: 380px; height: 380px;
278 background: radial-gradient(circle, rgba(140,109,255,0.20), rgba(54,197,214,0.10) 45%, transparent 70%);
278 background: radial-gradient(circle, rgba(91,110,232,0.20), rgba(95,143,160,0.10) 45%, transparent 70%);
279279 filter: blur(80px);
280280 opacity: 0.7;
281281 pointer-events: none;
294294 width: 86px;
295295 height: 86px;
296296 border-radius: 18px;
297 background: linear-gradient(135deg, rgba(140,109,255,0.22), rgba(54,197,214,0.16));
298 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.32);
297 background: linear-gradient(135deg, rgba(91,110,232,0.22), rgba(95,143,160,0.16));
298 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.32);
299299 display: flex;
300300 align-items: center;
301301 justify-content: center;
370370 justify-content: center;
371371 width: 26px; height: 26px;
372372 border-radius: 8px;
373 background: rgba(140,109,255,0.12);
374 color: #b69dff;
375 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.28);
373 background: rgba(91,110,232,0.12);
374 color: #5b6ee8;
375 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.28);
376376 flex-shrink: 0;
377377 }
378378 .orgs-section-body { padding: var(--space-4) var(--space-5); }
391391 flex-shrink: 0;
392392 width: 30px; height: 30px;
393393 border-radius: 8px;
394 background: linear-gradient(135deg, rgba(140,109,255,0.22), rgba(54,197,214,0.16));
395 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.32);
394 background: linear-gradient(135deg, rgba(91,110,232,0.22), rgba(95,143,160,0.16));
395 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.32);
396396 display: flex;
397397 align-items: center;
398398 justify-content: center;
427427 position: absolute;
428428 top: 0; left: 0; right: 0;
429429 height: 2px;
430 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
430 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
431431 opacity: 0.55;
432432 pointer-events: none;
433433 }
436436 margin: 0 auto 18px;
437437 border-radius: 9999px;
438438 background:
439 radial-gradient(circle at 35% 35%, rgba(140,109,255,0.55), rgba(54,197,214,0.25) 55%, transparent 75%);
439 radial-gradient(circle at 35% 35%, rgba(91,110,232,0.55), rgba(95,143,160,0.25) 55%, transparent 75%);
440440 box-shadow:
441 0 0 32px rgba(140,109,255,0.35),
442 inset 0 0 0 1px rgba(140,109,255,0.35);
441 0 0 32px rgba(91,110,232,0.35),
442 inset 0 0 0 1px rgba(91,110,232,0.35);
443443 display: flex;
444444 align-items: center;
445445 justify-content: center;
Modifiedsrc/routes/packages.tsx+14−14View fileUnifiedSplit
103103 .pkg-eyebrow-dot {
104104 width: 8px; height: 8px;
105105 border-radius: 9999px;
106 background: linear-gradient(135deg, #8c6dff, #36c5d6);
107 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
106 background: linear-gradient(135deg, #5b6ee8, #5f8fa0);
107 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
108108 }
109109 .pkg-title {
110110 font-family: var(--font-display);
116116 color: var(--text-strong);
117117 }
118118 .pkg-title-grad {
119 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
119 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
120120 -webkit-background-clip: text;
121121 background-clip: text;
122122 -webkit-text-fill-color: transparent;
149149 transition: transform 120ms ease, box-shadow 120ms ease, background 120ms ease, border-color 120ms ease, color 120ms ease;
150150 }
151151 .pkg-btn-primary {
152 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
152 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
153153 color: #ffffff;
154 box-shadow: 0 6px 18px -6px rgba(140,109,255,0.50), inset 0 1px 0 rgba(255,255,255,0.16);
154 box-shadow: 0 6px 18px -6px rgba(91,110,232,0.50), inset 0 1px 0 rgba(255,255,255,0.16);
155155 }
156156 .pkg-btn-primary:hover {
157157 transform: translateY(-1px);
158 box-shadow: 0 10px 24px -8px rgba(140,109,255,0.60), inset 0 1px 0 rgba(255,255,255,0.20);
158 box-shadow: 0 10px 24px -8px rgba(91,110,232,0.60), inset 0 1px 0 rgba(255,255,255,0.20);
159159 text-decoration: none;
160160 color: #ffffff;
161161 }
167167 font-size: 12px;
168168 }
169169 .pkg-btn-ghost:hover {
170 background: rgba(140,109,255,0.06);
171 border-color: rgba(140,109,255,0.45);
170 background: rgba(91,110,232,0.06);
171 border-color: rgba(91,110,232,0.45);
172172 color: var(--text-strong);
173173 text-decoration: none;
174174 }
277277 font-family: var(--font-mono);
278278 font-size: 11.5px;
279279 font-weight: 600;
280 background: rgba(140,109,255,0.12);
280 background: rgba(91,110,232,0.12);
281281 color: #c4b5fd;
282 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.30);
282 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.30);
283283 font-variant-numeric: tabular-nums;
284284 }
285285 .pkg-version.is-empty {
409409 position: absolute;
410410 top: 0; left: 0; right: 0;
411411 height: 2px;
412 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
412 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
413413 opacity: 0.55;
414414 }
415415 .pkg-side-label {
447447 position: absolute;
448448 inset: -40% 30% auto 30%;
449449 height: 280px;
450 background: radial-gradient(circle, rgba(140,109,255,0.18), rgba(54,197,214,0.10) 45%, transparent 70%);
450 background: radial-gradient(circle, rgba(91,110,232,0.18), rgba(95,143,160,0.10) 45%, transparent 70%);
451451 filter: blur(70px);
452452 opacity: 0.7;
453453 pointer-events: none;
457457 .pkg-empty-icon {
458458 width: 56px; height: 56px;
459459 border-radius: 9999px;
460 background: linear-gradient(135deg, rgba(140,109,255,0.25), rgba(54,197,214,0.20));
461 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.40);
460 background: linear-gradient(135deg, rgba(91,110,232,0.25), rgba(95,143,160,0.20));
461 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.40);
462462 display: inline-flex;
463463 align-items: center;
464464 justify-content: center;
Modifiedsrc/routes/pages.tsx+20−20View fileUnifiedSplit
123123 .pages-eyebrow-dot {
124124 width: 8px; height: 8px;
125125 border-radius: 9999px;
126 background: linear-gradient(135deg, #8c6dff, #36c5d6);
127 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
126 background: linear-gradient(135deg, #5b6ee8, #5f8fa0);
127 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
128128 }
129129 .pages-title {
130130 font-family: var(--font-display);
136136 color: var(--text-strong);
137137 }
138138 .pages-title-grad {
139 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
139 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
140140 -webkit-background-clip: text;
141141 background-clip: text;
142142 -webkit-text-fill-color: transparent;
168168 color: #bbf7d0;
169169 }
170170 .pages-banner.is-info {
171 border-color: rgba(54,197,214,0.40);
172 background: rgba(54,197,214,0.08);
171 border-color: rgba(95,143,160,0.40);
172 background: rgba(95,143,160,0.08);
173173 color: #a5f3fc;
174174 }
175175 .pages-banner.is-error {
193193 position: absolute;
194194 top: 0; left: 0; right: 0;
195195 height: 2px;
196 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
196 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
197197 opacity: 0.55;
198198 pointer-events: none;
199199 }
224224 justify-content: center;
225225 width: 26px; height: 26px;
226226 border-radius: 8px;
227 background: rgba(140,109,255,0.12);
228 color: #b69dff;
229 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.28);
227 background: rgba(91,110,232,0.12);
228 color: #5b6ee8;
229 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.28);
230230 flex-shrink: 0;
231231 }
232232 .pages-section-sub {
267267 color: #c4b5fd;
268268 text-decoration: none;
269269 }
270 .pages-url-value a:hover { color: #a48bff; text-decoration: underline; }
270 .pages-url-value a:hover { color: #5b6ee8; text-decoration: underline; }
271271
272272 /* Fields */
273273 .pages-field { margin-bottom: 16px; }
294294 }
295295 .pages-input:focus {
296296 outline: none;
297 border-color: rgba(140,109,255,0.55);
297 border-color: rgba(91,110,232,0.55);
298298 background: rgba(255,255,255,0.05);
299 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
299 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
300300 }
301301 .pages-help {
302302 font-size: 12px;
325325 transition: transform 120ms ease, box-shadow 120ms ease, background 120ms ease, border-color 120ms ease, color 120ms ease;
326326 }
327327 .pages-btn-primary {
328 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
328 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
329329 color: #ffffff;
330 box-shadow: 0 6px 18px -6px rgba(140,109,255,0.50), inset 0 1px 0 rgba(255,255,255,0.16);
330 box-shadow: 0 6px 18px -6px rgba(91,110,232,0.50), inset 0 1px 0 rgba(255,255,255,0.16);
331331 }
332332 .pages-btn-primary:hover {
333333 transform: translateY(-1px);
334 box-shadow: 0 10px 24px -8px rgba(140,109,255,0.60), inset 0 1px 0 rgba(255,255,255,0.20);
334 box-shadow: 0 10px 24px -8px rgba(91,110,232,0.60), inset 0 1px 0 rgba(255,255,255,0.20);
335335 text-decoration: none;
336336 color: #ffffff;
337337 }
341341 border-color: var(--border-strong);
342342 }
343343 .pages-btn-ghost:hover {
344 background: rgba(140,109,255,0.06);
345 border-color: rgba(140,109,255,0.45);
344 background: rgba(91,110,232,0.06);
345 border-color: rgba(91,110,232,0.45);
346346 color: var(--text-strong);
347347 text-decoration: none;
348348 }
426426 position: absolute;
427427 inset: -40% 30% auto 30%;
428428 height: 280px;
429 background: radial-gradient(circle, rgba(140,109,255,0.18), rgba(54,197,214,0.10) 45%, transparent 70%);
429 background: radial-gradient(circle, rgba(91,110,232,0.18), rgba(95,143,160,0.10) 45%, transparent 70%);
430430 filter: blur(70px);
431431 opacity: 0.7;
432432 pointer-events: none;
436436 .pages-empty-icon {
437437 width: 56px; height: 56px;
438438 border-radius: 9999px;
439 background: linear-gradient(135deg, rgba(140,109,255,0.25), rgba(54,197,214,0.20));
440 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.40);
439 background: linear-gradient(135deg, rgba(91,110,232,0.25), rgba(95,143,160,0.20));
440 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.40);
441441 display: inline-flex;
442442 align-items: center;
443443 justify-content: center;
Modifiedsrc/routes/passkeys.tsx+30−30View fileUnifiedSplit
7575 position: absolute;
7676 top: 0; left: 0; right: 0;
7777 height: 2px;
78 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
78 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
7979 opacity: 0.7;
8080 pointer-events: none;
8181 }
8383 position: absolute;
8484 inset: -20% -10% auto auto;
8585 width: 380px; height: 380px;
86 background: radial-gradient(circle, rgba(140,109,255,0.20), rgba(54,197,214,0.10) 45%, transparent 70%);
86 background: radial-gradient(circle, rgba(91,110,232,0.20), rgba(95,143,160,0.10) 45%, transparent 70%);
8787 filter: blur(80px);
8888 opacity: 0.7;
8989 pointer-events: none;
108108 justify-content: center;
109109 width: 18px; height: 18px;
110110 border-radius: 6px;
111 background: rgba(140,109,255,0.14);
112 color: #b69dff;
113 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.35);
111 background: rgba(91,110,232,0.14);
112 color: #5b6ee8;
113 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.35);
114114 }
115115 .pk-crumb { color: var(--text-muted); text-decoration: none; }
116116 .pk-crumb:hover { color: var(--text); text-decoration: none; }
124124 color: var(--text-strong);
125125 }
126126 .pk-title-grad {
127 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
127 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
128128 -webkit-background-clip: text;
129129 background-clip: text;
130130 -webkit-text-fill-color: transparent;
184184 }
185185 .pk-status.is-on {
186186 border-color: rgba(52,211,153,0.32);
187 background: linear-gradient(135deg, rgba(52,211,153,0.08) 0%, rgba(15,17,26,0) 60%), var(--bg-elevated);
187 background: linear-gradient(135deg, rgba(52,211,153,0.08) 0%, rgba(22,27,34,0) 60%), var(--bg-elevated);
188188 }
189189 .pk-status.is-off {
190190 border-color: rgba(251,191,36,0.32);
191 background: linear-gradient(135deg, rgba(251,191,36,0.06) 0%, rgba(15,17,26,0) 60%), var(--bg-elevated);
191 background: linear-gradient(135deg, rgba(251,191,36,0.06) 0%, rgba(22,27,34,0) 60%), var(--bg-elevated);
192192 }
193193 .pk-status-mark {
194194 flex-shrink: 0;
265265 justify-content: center;
266266 width: 26px; height: 26px;
267267 border-radius: 8px;
268 background: rgba(140,109,255,0.12);
269 color: #b69dff;
270 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.28);
268 background: rgba(91,110,232,0.12);
269 color: #5b6ee8;
270 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.28);
271271 flex-shrink: 0;
272272 }
273273 .pk-section-sub {
291291 min-height: 18px;
292292 }
293293 .pk-cta-status.is-error { color: #fecaca; }
294 .pk-cta-status.is-progress { color: #b69dff; }
294 .pk-cta-status.is-progress { color: #5b6ee8; }
295295
296296 /* ─── Passkey list ─── */
297297 .pk-list {
321321 flex-shrink: 0;
322322 width: 40px; height: 40px;
323323 border-radius: 10px;
324 background: rgba(140,109,255,0.10);
325 color: #b69dff;
324 background: rgba(91,110,232,0.10);
325 color: #5b6ee8;
326326 display: flex;
327327 align-items: center;
328328 justify-content: center;
329 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.22);
329 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.22);
330330 }
331331 .pk-card-body { flex: 1; min-width: 200px; }
332332 .pk-card-name-row {
348348 gap: 4px;
349349 padding: 2px 8px;
350350 border-radius: 9999px;
351 background: rgba(140,109,255,0.10);
352 color: #b69dff;
351 background: rgba(91,110,232,0.10);
352 color: #5b6ee8;
353353 font-size: 10.5px;
354354 font-weight: 600;
355355 letter-spacing: 0.04em;
356356 text-transform: uppercase;
357 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.25);
357 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.25);
358358 }
359359 .pk-card-meta {
360360 margin-top: 4px;
398398 transition: border-color 120ms ease, box-shadow 120ms ease;
399399 }
400400 .pk-rename-input:focus {
401 border-color: var(--border-focus, rgba(140,109,255,0.55));
402 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
401 border-color: var(--border-focus, rgba(91,110,232,0.55));
402 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
403403 }
404404
405405 /* ─── Empty state ─── */
415415 margin: 0 auto 12px;
416416 width: 48px; height: 48px;
417417 border-radius: 12px;
418 background: rgba(140,109,255,0.10);
419 color: #b69dff;
418 background: rgba(91,110,232,0.10);
419 color: #5b6ee8;
420420 display: flex;
421421 align-items: center;
422422 justify-content: center;
423 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.22);
423 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.22);
424424 }
425425 .pk-empty-title {
426426 margin: 0 0 4px;
454454 }
455455 .pk-btn-sm { padding: 7px 12px; font-size: 12.5px; border-radius: 8px; }
456456 .pk-btn-primary {
457 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
457 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
458458 color: #fff;
459 box-shadow: 0 6px 18px -4px rgba(140,109,255,0.45), inset 0 1px 0 rgba(255,255,255,0.16);
459 box-shadow: 0 6px 18px -4px rgba(91,110,232,0.45), inset 0 1px 0 rgba(255,255,255,0.16);
460460 }
461461 .pk-btn-primary:hover {
462462 transform: translateY(-1px);
463 box-shadow: 0 10px 24px -6px rgba(140,109,255,0.55), inset 0 1px 0 rgba(255,255,255,0.20);
463 box-shadow: 0 10px 24px -6px rgba(91,110,232,0.55), inset 0 1px 0 rgba(255,255,255,0.20);
464464 color: #fff;
465465 text-decoration: none;
466466 }
470470 border-color: var(--border-strong);
471471 }
472472 .pk-btn-ghost:hover {
473 background: rgba(140,109,255,0.06);
474 border-color: rgba(140,109,255,0.45);
473 background: rgba(91,110,232,0.06);
474 border-color: rgba(91,110,232,0.45);
475475 color: var(--text-strong);
476476 text-decoration: none;
477477 }
525525 .pk-explain-icon {
526526 width: 26px; height: 26px;
527527 border-radius: 8px;
528 background: rgba(54,197,214,0.10);
528 background: rgba(95,143,160,0.10);
529529 color: #67e8f9;
530530 display: flex;
531531 align-items: center;
532532 justify-content: center;
533 box-shadow: inset 0 0 0 1px rgba(54,197,214,0.25);
533 box-shadow: inset 0 0 0 1px rgba(95,143,160,0.25);
534534 margin-bottom: 8px;
535535 }
536536 .pk-explain-title {
Modifiedsrc/routes/personal-chat.tsx+41−41View fileUnifiedSplit
572572 position: absolute;
573573 top: 0; left: 0; right: 0;
574574 height: 2px;
575 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
575 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
576576 opacity: 0.78;
577577 pointer-events: none;
578578 z-index: 2;
581581 position: absolute;
582582 inset: -30% -10% auto auto;
583583 width: 460px; height: 460px;
584 background: radial-gradient(circle, rgba(140,109,255,0.22), rgba(54,197,214,0.10) 45%, transparent 70%);
584 background: radial-gradient(circle, rgba(91,110,232,0.22), rgba(95,143,160,0.10) 45%, transparent 70%);
585585 filter: blur(80px);
586586 opacity: 0.7;
587587 pointer-events: none;
604604 display: inline-flex; align-items: center; justify-content: center;
605605 width: 18px; height: 18px;
606606 border-radius: 6px;
607 background: rgba(140,109,255,0.14);
608 color: #b69dff;
609 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.35);
607 background: rgba(91,110,232,0.14);
608 color: #5b6ee8;
609 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.35);
610610 }
611611 .pchat-eyebrow-who {
612612 color: var(--accent);
639639 color: var(--text-strong);
640640 }
641641 .pchat-title-grad {
642 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
642 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
643643 -webkit-background-clip: text;
644644 background-clip: text;
645645 -webkit-text-fill-color: transparent;
658658 position: relative;
659659 margin-bottom: var(--space-5);
660660 padding: var(--space-4) var(--space-5);
661 background: linear-gradient(180deg, rgba(140,109,255,0.06), rgba(54,197,214,0.02));
662 border: 1px solid rgba(140,109,255,0.30);
661 background: linear-gradient(180deg, rgba(91,110,232,0.06), rgba(95,143,160,0.02));
662 border: 1px solid rgba(91,110,232,0.30);
663663 border-radius: 14px;
664664 }
665665 .pchat-optin-head {
669669 .pchat-optin-dot {
670670 width: 9px; height: 9px;
671671 border-radius: 9999px;
672 background: linear-gradient(135deg, #8c6dff, #36c5d6);
673 box-shadow: 0 0 0 4px rgba(140,109,255,0.20);
672 background: linear-gradient(135deg, #5b6ee8, #5f8fa0);
673 box-shadow: 0 0 0 4px rgba(91,110,232,0.20);
674674 }
675675 .pchat-optin-title {
676676 font-family: var(--font-display);
700700 border: 1px solid transparent;
701701 border-radius: 10px;
702702 cursor: pointer;
703 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
704 box-shadow: 0 6px 18px -4px rgba(140,109,255,0.45), inset 0 1px 0 rgba(255,255,255,0.16);
703 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
704 box-shadow: 0 6px 18px -4px rgba(91,110,232,0.45), inset 0 1px 0 rgba(255,255,255,0.16);
705705 font-family: inherit;
706706 line-height: 1;
707707 }
752752 color: #fff;
753753 border-radius: 10px;
754754 text-decoration: none;
755 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
756 box-shadow: 0 6px 18px -6px rgba(140,109,255,0.45), inset 0 1px 0 rgba(255,255,255,0.16);
755 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
756 box-shadow: 0 6px 18px -6px rgba(91,110,232,0.45), inset 0 1px 0 rgba(255,255,255,0.16);
757757 }
758758 .pchat-new:hover { text-decoration: none; transform: translateY(-1px); }
759759 .pchat-aside-head {
769769 .pchat-aside-dot {
770770 width: 7px; height: 7px;
771771 border-radius: 9999px;
772 background: linear-gradient(135deg, #8c6dff, #36c5d6);
773 box-shadow: 0 0 0 3px rgba(140,109,255,0.16);
772 background: linear-gradient(135deg, #5b6ee8, #5f8fa0);
773 box-shadow: 0 0 0 3px rgba(91,110,232,0.16);
774774 }
775775 .pchat-aside-list {
776776 list-style: none; padding: 0; margin: 0;
792792 transition: background 120ms ease;
793793 }
794794 .pchat-aside-link:hover {
795 background: rgba(140,109,255,0.06);
795 background: rgba(91,110,232,0.06);
796796 text-decoration: none;
797797 }
798798 .pchat-aside-link.is-active {
799 background: rgba(140,109,255,0.10);
800 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.22);
799 background: rgba(91,110,232,0.10);
800 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.22);
801801 }
802802 .pchat-aside-link-title {
803803 font-size: 13px;
847847 display: inline-flex; align-items: center; justify-content: center;
848848 width: 36px; height: 36px;
849849 border-radius: 10px;
850 background: linear-gradient(135deg, rgba(140,109,255,0.18), rgba(54,197,214,0.10));
851 color: #b69dff;
852 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.35);
850 background: linear-gradient(135deg, rgba(91,110,232,0.18), rgba(95,143,160,0.10));
851 color: #5b6ee8;
852 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.35);
853853 flex-shrink: 0;
854854 }
855855 .pchat-empty-title {
880880 font-weight: 700;
881881 }
882882 .pchat-msg-avatar-ai {
883 background: linear-gradient(135deg, #8c6dff, #36c5d6);
883 background: linear-gradient(135deg, #5b6ee8, #5f8fa0);
884884 color: #fff;
885 box-shadow: 0 0 0 1px rgba(140,109,255,0.18), 0 6px 18px -6px rgba(140,109,255,0.45);
885 box-shadow: 0 0 0 1px rgba(91,110,232,0.18), 0 6px 18px -6px rgba(91,110,232,0.45);
886886 }
887887 .pchat-msg-avatar-user {
888888 background: rgba(255,255,255,0.05);
919919 .pchat-msg-assistant .pchat-msg-bubble {
920920 border-top-left-radius: 4px;
921921 background:
922 linear-gradient(180deg, rgba(140,109,255,0.04), transparent 60%),
922 linear-gradient(180deg, rgba(91,110,232,0.04), transparent 60%),
923923 var(--bg-elevated);
924 border-color: rgba(140,109,255,0.22);
924 border-color: rgba(91,110,232,0.22);
925925 }
926926 .pchat-msg-user .pchat-msg-bubble {
927927 border-top-right-radius: 4px;
928 background: rgba(140,109,255,0.06);
929 border-color: rgba(140,109,255,0.20);
928 background: rgba(91,110,232,0.06);
929 border-color: rgba(91,110,232,0.20);
930930 color: var(--text-strong);
931931 }
932932 .pchat-msg-cost {
961961 font-weight: 700;
962962 padding: 4px 8px;
963963 border-radius: 8px;
964 background: rgba(140,109,255,0.05);
965 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.18);
964 background: rgba(91,110,232,0.05);
965 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.18);
966966 }
967967 .pchat-sources-head::-webkit-details-marker { display: none; }
968 .pchat-sources-head:hover { background: rgba(140,109,255,0.08); }
968 .pchat-sources-head:hover { background: rgba(91,110,232,0.08); }
969969 .pchat-sources-list {
970970 list-style: none; margin: 6px 0 0; padding: 0;
971971 display: flex; flex-direction: column; gap: 2px;
980980 text-decoration: none;
981981 }
982982 .pchat-sources-link:hover {
983 background: rgba(140,109,255,0.08);
983 background: rgba(91,110,232,0.08);
984984 text-decoration: none;
985985 }
986986 .pchat-sources-repo {
987 color: #b69dff;
987 color: #5b6ee8;
988988 font-weight: 700;
989989 }
990990 .pchat-sources-sep { color: var(--text-muted); }
999999 transition: border-color 140ms ease, box-shadow 140ms ease;
10001000 }
10011001 .pchat-composer-shell:focus-within {
1002 border-color: rgba(140,109,255,0.55);
1003 box-shadow: 0 0 0 4px rgba(140,109,255,0.16);
1002 border-color: rgba(91,110,232,0.55);
1003 box-shadow: 0 0 0 4px rgba(91,110,232,0.16);
10041004 }
10051005 .pchat-composer-shell::before {
10061006 content: '';
10071007 position: absolute;
10081008 top: 0; left: 0; right: 0;
10091009 height: 1px;
1010 background: linear-gradient(90deg, transparent 0%, rgba(140,109,255,0.45) 30%, rgba(54,197,214,0.45) 70%, transparent 100%);
1010 background: linear-gradient(90deg, transparent 0%, rgba(91,110,232,0.45) 30%, rgba(95,143,160,0.45) 70%, transparent 100%);
10111011 opacity: 0.6;
10121012 pointer-events: none;
10131013 }
10681068 border: 1px solid transparent;
10691069 border-radius: 10px;
10701070 cursor: pointer;
1071 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
1072 box-shadow: 0 6px 18px -4px rgba(140,109,255,0.45), inset 0 1px 0 rgba(255,255,255,0.16);
1071 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
1072 box-shadow: 0 6px 18px -4px rgba(91,110,232,0.45), inset 0 1px 0 rgba(255,255,255,0.16);
10731073 transition: transform 120ms ease, box-shadow 120ms ease;
10741074 font-family: inherit;
10751075 line-height: 1;
10761076 }
10771077 .pchat-submit:hover:not(:disabled) {
10781078 transform: translateY(-1px);
1079 box-shadow: 0 10px 24px -6px rgba(140,109,255,0.55), inset 0 1px 0 rgba(255,255,255,0.20);
1079 box-shadow: 0 10px 24px -6px rgba(91,110,232,0.55), inset 0 1px 0 rgba(255,255,255,0.20);
10801080 }
10811081 .pchat-submit:disabled { opacity: 0.55; cursor: not-allowed; }
10821082 .pchat-submit:active { transform: translateY(0); }
10971097 color: #fff;
10981098 border-radius: 9999px;
10991099 text-decoration: none;
1100 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
1101 box-shadow: 0 10px 28px -8px rgba(140,109,255,0.55), inset 0 1px 0 rgba(255,255,255,0.16);
1100 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
1101 box-shadow: 0 10px 28px -8px rgba(91,110,232,0.55), inset 0 1px 0 rgba(255,255,255,0.16);
11021102 z-index: 90;
11031103 }
11041104
Modifiedsrc/routes/playground.tsx+19−19View fileUnifiedSplit
5959 position: absolute;
6060 top: 0; left: 0; right: 0;
6161 height: 2px;
62 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
62 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
6363 opacity: 0.75;
6464 pointer-events: none;
6565 }
6767 position: absolute;
6868 inset: -30% -10% auto auto;
6969 width: 460px; height: 460px;
70 background: radial-gradient(circle, rgba(140,109,255,0.22), rgba(54,197,214,0.10) 45%, transparent 70%);
70 background: radial-gradient(circle, rgba(91,110,232,0.22), rgba(95,143,160,0.10) 45%, transparent 70%);
7171 filter: blur(80px);
7272 opacity: 0.7;
7373 pointer-events: none;
9797 .play-eyebrow-dot {
9898 width: 8px; height: 8px;
9999 border-radius: 9999px;
100 background: linear-gradient(135deg, #8c6dff, #36c5d6);
101 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
100 background: linear-gradient(135deg, #5b6ee8, #5f8fa0);
101 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
102102 }
103103 .play-eyebrow strong { color: var(--accent); font-weight: 600; letter-spacing: 0.04em; }
104104 .play-title {
111111 color: var(--text-strong);
112112 }
113113 .play-title-grad {
114 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
114 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
115115 -webkit-background-clip: text;
116116 background-clip: text;
117117 -webkit-text-fill-color: transparent;
165165 transition: border-color 150ms ease, transform 150ms ease, box-shadow 150ms ease;
166166 }
167167 .play-card:hover {
168 border-color: rgba(140,109,255,0.45);
168 border-color: rgba(91,110,232,0.45);
169169 transform: translateY(-2px);
170 box-shadow: 0 10px 28px -10px rgba(140,109,255,0.30);
170 box-shadow: 0 10px 28px -10px rgba(91,110,232,0.30);
171171 }
172172 .play-card-badge {
173173 display: inline-flex;
175175 justify-content: center;
176176 width: 28px; height: 28px;
177177 border-radius: 8px;
178 background: linear-gradient(135deg, rgba(140,109,255,0.20), rgba(54,197,214,0.14));
178 background: linear-gradient(135deg, rgba(91,110,232,0.20), rgba(95,143,160,0.14));
179179 color: #c5b3ff;
180 border: 1px solid rgba(140,109,255,0.40);
180 border: 1px solid rgba(91,110,232,0.40);
181181 font-family: var(--font-display);
182182 font-weight: 700;
183183 font-size: 13px;
199199 .play-card-body code {
200200 font-family: var(--font-mono);
201201 font-size: 12px;
202 background: rgba(140,109,255,0.10);
202 background: rgba(91,110,232,0.10);
203203 color: #c8b6ff;
204204 padding: 1px 6px;
205205 border-radius: 5px;
220220 position: absolute;
221221 top: 0; left: 0; right: 0;
222222 height: 2px;
223 background: linear-gradient(90deg, #8c6dff 0%, #36c5d6 50%, #8c6dff 100%);
223 background: linear-gradient(90deg, #5b6ee8 0%, #5f8fa0 50%, #5b6ee8 100%);
224224 opacity: 0.65;
225225 pointer-events: none;
226226 }
258258 .play-start-cta { flex-shrink: 0; }
259259 .play-submit {
260260 appearance: none;
261 border: 1px solid rgba(140,109,255,0.45);
262 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
261 border: 1px solid rgba(91,110,232,0.45);
262 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
263263 color: #fff;
264264 padding: 14px 24px;
265265 border-radius: 12px;
270270 cursor: pointer;
271271 text-decoration: none;
272272 display: inline-flex; align-items: center; gap: 8px;
273 box-shadow: 0 10px 24px -10px rgba(140,109,255,0.55);
273 box-shadow: 0 10px 24px -10px rgba(91,110,232,0.55);
274274 transition: transform 140ms ease, box-shadow 140ms ease, filter 140ms ease;
275275 }
276276 .play-submit:hover {
277277 transform: translateY(-1px);
278 box-shadow: 0 14px 28px -10px rgba(140,109,255,0.7);
278 box-shadow: 0 14px 28px -10px rgba(91,110,232,0.7);
279279 filter: brightness(1.06);
280280 }
281281 .play-submit:focus-visible {
282 outline: 3px solid rgba(140,109,255,0.45);
282 outline: 3px solid rgba(91,110,232,0.45);
283283 outline-offset: 2px;
284284 }
285285 .play-bullets {
294294 .play-bullets code {
295295 font-family: var(--font-mono);
296296 font-size: 12px;
297 background: rgba(140,109,255,0.10);
297 background: rgba(91,110,232,0.10);
298298 color: #c8b6ff;
299299 padding: 1px 6px;
300300 border-radius: 5px;
325325 position: absolute;
326326 top: 0; left: 0; right: 0;
327327 height: 2px;
328 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
328 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
329329 opacity: 0.75;
330330 pointer-events: none;
331331 }
383383 .play-field-input:focus {
384384 outline: none;
385385 border-color: var(--accent);
386 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
386 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
387387 }
388388 .play-claim-actions {
389389 display: flex;
Modifiedsrc/routes/previews.tsx+19−19View fileUnifiedSplit
108108 position: absolute;
109109 top: 0; left: 0; right: 0;
110110 height: 2px;
111 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
111 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
112112 opacity: 0.7;
113113 pointer-events: none;
114114 }
116116 position: absolute;
117117 inset: -30% -10% auto auto;
118118 width: 320px; height: 320px;
119 background: radial-gradient(circle, rgba(140,109,255,0.18), rgba(54,197,214,0.08) 45%, transparent 70%);
119 background: radial-gradient(circle, rgba(91,110,232,0.18), rgba(95,143,160,0.08) 45%, transparent 70%);
120120 filter: blur(70px);
121121 opacity: 0.7;
122122 pointer-events: none;
147147 .preview-eyebrow-dot {
148148 width: 8px; height: 8px;
149149 border-radius: 9999px;
150 background: linear-gradient(135deg, #8c6dff, #36c5d6);
151 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
150 background: linear-gradient(135deg, #5b6ee8, #5f8fa0);
151 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
152152 }
153153 .preview-title {
154154 margin: 0 0 6px;
160160 color: var(--text-strong);
161161 }
162162 .preview-title-grad {
163 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
163 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
164164 -webkit-background-clip: text;
165165 background-clip: text;
166166 -webkit-text-fill-color: transparent;
204204 position: absolute;
205205 top: 0; left: 14px; right: 14px;
206206 height: 1px;
207 background: linear-gradient(90deg, transparent 0%, rgba(140,109,255,0.45) 30%, rgba(54,197,214,0.45) 70%, transparent 100%);
207 background: linear-gradient(90deg, transparent 0%, rgba(91,110,232,0.45) 30%, rgba(95,143,160,0.45) 70%, transparent 100%);
208208 opacity: 0;
209209 transition: opacity 160ms ease;
210210 }
211211 .preview-card:hover {
212212 transform: translateY(-1px);
213 border-color: rgba(140,109,255,0.32);
213 border-color: rgba(91,110,232,0.32);
214214 box-shadow: 0 8px 22px -10px rgba(0,0,0,0.40);
215215 }
216216 .preview-card:hover::before { opacity: 1; }
240240 text-overflow: ellipsis;
241241 white-space: nowrap;
242242 }
243 .preview-card-url a { color: var(--accent, #8c6dff); text-decoration: none; }
244 .preview-card-url a:hover { color: var(--accent, #36c5d6); text-decoration: underline; }
243 .preview-card-url a { color: var(--accent, #5b6ee8); text-decoration: none; }
244 .preview-card-url a:hover { color: var(--accent, #5f8fa0); text-decoration: underline; }
245245 .preview-card-meta {
246246 margin-top: 6px;
247247 display: flex;
314314 font-size: 12px;
315315 font-weight: 600;
316316 font-family: var(--font-mono);
317 color: #a48bff;
318 background: rgba(140,109,255,0.08);
319 border: 1px solid rgba(140,109,255,0.22);
317 color: #5b6ee8;
318 background: rgba(91,110,232,0.08);
319 border: 1px solid rgba(91,110,232,0.22);
320320 cursor: pointer;
321321 text-decoration: none;
322322 transition: background 120ms ease, border-color 120ms ease;
323323 }
324324 .preview-rebuild-btn:hover {
325 background: rgba(140,109,255,0.15);
326 border-color: rgba(140,109,255,0.40);
325 background: rgba(91,110,232,0.15);
326 border-color: rgba(91,110,232,0.40);
327327 }
328328 .preview-pill-dot {
329329 width: 6px; height: 6px;
367367 inset: auto auto -40% 50%;
368368 transform: translateX(-50%);
369369 width: 320px; height: 320px;
370 background: radial-gradient(circle, rgba(140,109,255,0.18), rgba(54,197,214,0.08) 45%, transparent 70%);
370 background: radial-gradient(circle, rgba(91,110,232,0.18), rgba(95,143,160,0.08) 45%, transparent 70%);
371371 filter: blur(70px);
372372 opacity: 0.7;
373373 pointer-events: none;
377377 width: 44px; height: 44px;
378378 margin: 0 auto var(--space-3);
379379 border-radius: 14px;
380 background: linear-gradient(135deg, rgba(140,109,255,0.18), rgba(54,197,214,0.14));
381 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.32);
380 background: linear-gradient(135deg, rgba(91,110,232,0.18), rgba(95,143,160,0.14));
381 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.32);
382382 display: flex; align-items: center; justify-content: center;
383 color: #b69dff;
383 color: #5b6ee8;
384384 }
385385 .preview-empty-title {
386386 font-family: var(--font-display);
424424 }
425425 .preview-tabbar a.is-active {
426426 color: var(--text-strong);
427 border-bottom-color: #8c6dff;
427 border-bottom-color: #5b6ee8;
428428 }
429429 .preview-tabbar a:hover { color: var(--text); }
430430`;
Modifiedsrc/routes/pricing.tsx+17−17View fileUnifiedSplit
396396 top: 0; left: 50%;
397397 transform: translateX(-50%);
398398 width: 70%; height: 60%;
399 background: radial-gradient(ellipse at center, rgba(140,109,255,0.14), transparent 65%);
399 background: radial-gradient(ellipse at center, rgba(91,110,232,0.14), transparent 65%);
400400 z-index: -1;
401401 pointer-events: none;
402402 }
406406 position: absolute;
407407 top: 0; left: 8%; right: 8%;
408408 height: 2px;
409 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
409 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
410410 opacity: 0.65;
411411 pointer-events: none;
412412 z-index: 0;
418418 top: 8%; left: 50%;
419419 transform: translateX(-50%);
420420 width: 420px; height: 420px;
421 background: radial-gradient(circle, rgba(140,109,255,0.20), rgba(54,197,214,0.10) 45%, transparent 70%);
421 background: radial-gradient(circle, rgba(91,110,232,0.20), rgba(95,143,160,0.10) 45%, transparent 70%);
422422 filter: blur(80px);
423423 opacity: 0.7;
424424 pointer-events: none;
472472 border-radius: var(--r-full);
473473 transition: color var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease);
474474 }
475 .pl-jump:hover { color: var(--accent); border-color: rgba(140,109,255,0.35); }
475 .pl-jump:hover { color: var(--accent); border-color: rgba(91,110,232,0.35); }
476476
477477 /* Plan cards */
478478 .pl-plans {
495495 }
496496 .pl-card:hover { border-color: var(--border-strong); transform: translateY(-3px); }
497497 .pl-card-hl {
498 border-color: rgba(140,109,255,0.40);
499 box-shadow: var(--elev-2), 0 0 0 1px rgba(140,109,255,0.30);
498 border-color: rgba(91,110,232,0.40);
499 box-shadow: var(--elev-2), 0 0 0 1px rgba(91,110,232,0.30);
500500 background:
501 linear-gradient(180deg, rgba(140,109,255,0.05), transparent 50%),
501 linear-gradient(180deg, rgba(91,110,232,0.05), transparent 50%),
502502 var(--bg-elevated);
503503 }
504504 .pl-card-badge {
515515 text-transform: uppercase;
516516 font-weight: 600;
517517 border-radius: var(--r-full);
518 box-shadow: 0 4px 14px -2px rgba(140,109,255,0.45);
518 box-shadow: 0 4px 14px -2px rgba(91,110,232,0.45);
519519 white-space: nowrap;
520520 }
521521 .pl-card-name {
589589 line-height: 1.45;
590590 transition: border-color var(--t-fast) var(--ease);
591591 }
592 .pl-free-item:hover { border-color: rgba(140,109,255,0.35); }
592 .pl-free-item:hover { border-color: rgba(91,110,232,0.35); }
593593 .pl-free-check {
594594 color: var(--green);
595595 font-weight: 700;
614614 gap: var(--s-4);
615615 }
616616 .pl-host-cloud {
617 border-color: rgba(140,109,255,0.35);
618 box-shadow: 0 0 0 1px rgba(140,109,255,0.20);
617 border-color: rgba(91,110,232,0.35);
618 box-shadow: 0 0 0 1px rgba(91,110,232,0.20);
619619 background:
620 linear-gradient(180deg, rgba(140,109,255,0.04), transparent 60%),
620 linear-gradient(180deg, rgba(91,110,232,0.04), transparent 60%),
621621 var(--bg-elevated);
622622 }
623623 .pl-host-name {
695695 border: 1px solid transparent;
696696 background-image:
697697 linear-gradient(var(--bg-elevated), var(--bg-elevated)),
698 linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
698 linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
699699 background-origin: border-box;
700700 background-clip: padding-box, border-box;
701 box-shadow: 0 16px 56px -12px rgba(140, 109, 255, 0.20);
701 box-shadow: 0 16px 56px -12px rgba(91,110,232, 0.20);
702702 }
703703 .pl-compare-us::before {
704704 content: 'Better deal';
708708 transform: translateX(-50%);
709709 padding: 4px 12px;
710710 border-radius: 999px;
711 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
711 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
712712 color: #fff;
713713 font-size: 11px;
714714 font-weight: 600;
782782 }
783783 .pl-compare-footer strong {
784784 color: var(--text-strong);
785 background-image: linear-gradient(transparent 62%, rgba(140, 109, 255, 0.18) 62%);
785 background-image: linear-gradient(transparent 62%, rgba(91,110,232, 0.18) 62%);
786786 }
787787 @media (max-width: 720px) {
788788 .pl-compare-grid { grid-template-columns: 1fr; }
840840 border: 1px solid var(--border-strong);
841841 border-radius: var(--r-2xl);
842842 background:
843 radial-gradient(60% 100% at 50% 0%, rgba(140,109,255,0.14), transparent 65%),
843 radial-gradient(60% 100% at 50% 0%, rgba(91,110,232,0.14), transparent 65%),
844844 var(--bg-elevated);
845845 overflow: hidden;
846846 }
Modifiedsrc/routes/projects.tsx+20−20View fileUnifiedSplit
6161 .proj-eyebrow-dot {
6262 width: 8px; height: 8px;
6363 border-radius: 9999px;
64 background: linear-gradient(135deg, #8c6dff, #36c5d6);
65 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
64 background: linear-gradient(135deg, #5b6ee8, #5f8fa0);
65 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
6666 }
6767 .proj-title {
6868 font-family: var(--font-display);
7474 color: var(--text-strong);
7575 }
7676 .proj-title-grad {
77 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
77 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
7878 -webkit-background-clip: text;
7979 background-clip: text;
8080 -webkit-text-fill-color: transparent;
107107 transition: transform 120ms ease, box-shadow 120ms ease, background 120ms ease, border-color 120ms ease, color 120ms ease;
108108 }
109109 .proj-btn-primary {
110 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
110 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
111111 color: #ffffff;
112 box-shadow: 0 6px 18px -6px rgba(140,109,255,0.50), inset 0 1px 0 rgba(255,255,255,0.16);
112 box-shadow: 0 6px 18px -6px rgba(91,110,232,0.50), inset 0 1px 0 rgba(255,255,255,0.16);
113113 }
114114 .proj-btn-primary:hover {
115115 transform: translateY(-1px);
116 box-shadow: 0 10px 24px -8px rgba(140,109,255,0.60), inset 0 1px 0 rgba(255,255,255,0.20);
116 box-shadow: 0 10px 24px -8px rgba(91,110,232,0.60), inset 0 1px 0 rgba(255,255,255,0.20);
117117 text-decoration: none;
118118 color: #ffffff;
119119 }
123123 border-color: var(--border-strong);
124124 }
125125 .proj-btn-ghost:hover {
126 background: rgba(140,109,255,0.06);
127 border-color: rgba(140,109,255,0.45);
126 background: rgba(91,110,232,0.06);
127 border-color: rgba(91,110,232,0.45);
128128 color: var(--text-strong);
129129 text-decoration: none;
130130 }
244244 box-shadow: inset 0 0 0 1px rgba(148,163,184,0.30);
245245 }
246246 .proj-pill.is-count {
247 background: rgba(140,109,255,0.12);
247 background: rgba(91,110,232,0.12);
248248 color: #c4b5fd;
249 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.30);
249 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.30);
250250 font-family: var(--font-mono);
251251 font-variant-numeric: tabular-nums;
252252 }
266266 position: absolute;
267267 top: 0; left: 0; right: 0;
268268 height: 2px;
269 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
269 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
270270 opacity: 0.55;
271271 }
272272 .proj-field { margin-bottom: 14px; }
294294 .proj-textarea { font-family: inherit; resize: vertical; line-height: 1.5; }
295295 .proj-input:focus, .proj-textarea:focus {
296296 outline: none;
297 border-color: rgba(140,109,255,0.55);
297 border-color: rgba(91,110,232,0.55);
298298 background: rgba(255,255,255,0.05);
299 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
299 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
300300 }
301301
302302 /* Board view */
338338 position: absolute;
339339 top: 0; left: 0; right: 0;
340340 height: 2px;
341 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
341 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
342342 opacity: 0.5;
343343 pointer-events: none;
344344 }
434434 border-radius: 6px;
435435 cursor: pointer;
436436 }
437 .proj-kcard-select:focus { outline: none; border-color: rgba(140,109,255,0.55); }
437 .proj-kcard-select:focus { outline: none; border-color: rgba(91,110,232,0.55); }
438438
439439 .proj-kadd-details summary::-webkit-details-marker { display: none; }
440440 .proj-kadd-panel {
466466 }
467467 .proj-kadd input:focus {
468468 outline: none;
469 border-color: rgba(140,109,255,0.55);
470 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
469 border-color: rgba(91,110,232,0.55);
470 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
471471 }
472472
473473 /* Empty */
484484 position: absolute;
485485 inset: -40% 30% auto 30%;
486486 height: 280px;
487 background: radial-gradient(circle, rgba(140,109,255,0.18), rgba(54,197,214,0.10) 45%, transparent 70%);
487 background: radial-gradient(circle, rgba(91,110,232,0.18), rgba(95,143,160,0.10) 45%, transparent 70%);
488488 filter: blur(70px);
489489 opacity: 0.7;
490490 pointer-events: none;
494494 .proj-empty-icon {
495495 width: 56px; height: 56px;
496496 border-radius: 9999px;
497 background: linear-gradient(135deg, rgba(140,109,255,0.25), rgba(54,197,214,0.20));
498 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.40);
497 background: linear-gradient(135deg, rgba(91,110,232,0.25), rgba(95,143,160,0.20));
498 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.40);
499499 display: inline-flex;
500500 align-items: center;
501501 justify-content: center;
Modifiedsrc/routes/protected-tags.tsx+24−24View fileUnifiedSplit
6767 position: absolute;
6868 top: 0; left: 0; right: 0;
6969 height: 2px;
70 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
70 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
7171 opacity: 0.7;
7272 pointer-events: none;
7373 }
7575 position: absolute;
7676 inset: -20% -10% auto auto;
7777 width: 380px; height: 380px;
78 background: radial-gradient(circle, rgba(140,109,255,0.20), rgba(54,197,214,0.10) 45%, transparent 70%);
78 background: radial-gradient(circle, rgba(91,110,232,0.20), rgba(95,143,160,0.10) 45%, transparent 70%);
7979 filter: blur(80px);
8080 opacity: 0.7;
8181 pointer-events: none;
109109 justify-content: center;
110110 width: 18px; height: 18px;
111111 border-radius: 6px;
112 background: rgba(140,109,255,0.14);
113 color: #b69dff;
114 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.35);
112 background: rgba(91,110,232,0.14);
113 color: #5b6ee8;
114 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.35);
115115 }
116116 .pt-title {
117117 font-size: clamp(26px, 3.6vw, 36px);
123123 color: var(--text-strong);
124124 }
125125 .pt-title-grad {
126 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
126 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
127127 -webkit-background-clip: text;
128128 background-clip: text;
129129 -webkit-text-fill-color: transparent;
194194 }
195195 .pt-status.is-on {
196196 border-color: rgba(52,211,153,0.32);
197 background: linear-gradient(135deg, rgba(52,211,153,0.08) 0%, rgba(15,17,26,0) 60%), var(--bg-elevated);
197 background: linear-gradient(135deg, rgba(52,211,153,0.08) 0%, rgba(22,27,34,0) 60%), var(--bg-elevated);
198198 }
199199 .pt-status.is-empty {
200200 border-color: rgba(251,191,36,0.30);
201 background: linear-gradient(135deg, rgba(251,191,36,0.06) 0%, rgba(15,17,26,0) 60%), var(--bg-elevated);
201 background: linear-gradient(135deg, rgba(251,191,36,0.06) 0%, rgba(22,27,34,0) 60%), var(--bg-elevated);
202202 }
203203 .pt-status-row { display: flex; align-items: center; gap: var(--space-4); flex-wrap: wrap; }
204204 .pt-status-mark {
209209 align-items: center;
210210 justify-content: center;
211211 color: #fff;
212 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
213 box-shadow: 0 8px 20px -8px rgba(140,109,255,0.50), inset 0 1px 0 rgba(255,255,255,0.18);
212 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
213 box-shadow: 0 8px 20px -8px rgba(91,110,232,0.50), inset 0 1px 0 rgba(255,255,255,0.18);
214214 }
215215 .pt-status.is-on .pt-status-mark {
216216 background: linear-gradient(135deg, #34d399 0%, #10b981 100%);
261261 justify-content: center;
262262 width: 26px; height: 26px;
263263 border-radius: 8px;
264 background: rgba(140,109,255,0.12);
265 color: #b69dff;
266 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.28);
264 background: rgba(91,110,232,0.12);
265 color: #5b6ee8;
266 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.28);
267267 flex-shrink: 0;
268268 }
269269 .pt-section-sub {
287287 border-radius: 12px;
288288 transition: border-color 140ms ease, transform 140ms ease;
289289 }
290 .pt-tag:hover { border-color: rgba(140,109,255,0.30); transform: translateY(-1px); }
290 .pt-tag:hover { border-color: rgba(91,110,232,0.30); transform: translateY(-1px); }
291291 .pt-tag-body { flex: 1; min-width: 0; }
292292 .pt-tag-pattern {
293293 font-family: var(--font-mono);
294294 font-size: 13.5px;
295295 color: var(--text-strong);
296 background: rgba(140,109,255,0.10);
297 border: 1px solid rgba(140,109,255,0.30);
296 background: rgba(91,110,232,0.10);
297 border: 1px solid rgba(91,110,232,0.30);
298298 padding: 3px 10px;
299299 border-radius: 8px;
300300 font-weight: 600;
337337 position: absolute;
338338 inset: -30% auto auto -10%;
339339 width: 260px; height: 260px;
340 background: radial-gradient(circle, rgba(140,109,255,0.16), rgba(54,197,214,0.08) 45%, transparent 70%);
340 background: radial-gradient(circle, rgba(91,110,232,0.16), rgba(95,143,160,0.08) 45%, transparent 70%);
341341 filter: blur(60px);
342342 opacity: 0.8;
343343 pointer-events: none;
348348 margin: 0 auto var(--space-3);
349349 width: 52px; height: 52px;
350350 border-radius: 14px;
351 background: linear-gradient(135deg, rgba(140,109,255,0.18), rgba(54,197,214,0.12));
352 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.30);
351 background: linear-gradient(135deg, rgba(91,110,232,0.18), rgba(95,143,160,0.12));
352 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.30);
353353 display: flex;
354354 align-items: center;
355355 justify-content: center;
403403 box-sizing: border-box;
404404 }
405405 .pt-input:focus {
406 border-color: var(--border-focus, rgba(140,109,255,0.55));
407 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
406 border-color: var(--border-focus, rgba(91,110,232,0.55));
407 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
408408 }
409409 .pt-form-hint { margin-top: 6px; font-size: 12px; color: var(--text-muted); }
410410 .pt-form-hint code {
434434 transition: transform 120ms ease, box-shadow 120ms ease, background 120ms ease, border-color 120ms ease, color 120ms ease;
435435 }
436436 .pt-btn-primary {
437 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
437 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
438438 color: #fff;
439 box-shadow: 0 6px 18px -4px rgba(140,109,255,0.45), inset 0 1px 0 rgba(255,255,255,0.16);
439 box-shadow: 0 6px 18px -4px rgba(91,110,232,0.45), inset 0 1px 0 rgba(255,255,255,0.16);
440440 }
441441 .pt-btn-primary:hover {
442442 transform: translateY(-1px);
443 box-shadow: 0 10px 24px -6px rgba(140,109,255,0.55), inset 0 1px 0 rgba(255,255,255,0.20);
443 box-shadow: 0 10px 24px -6px rgba(91,110,232,0.55), inset 0 1px 0 rgba(255,255,255,0.20);
444444 color: #fff;
445445 text-decoration: none;
446446 }
Modifiedsrc/routes/pulls-dashboard.tsx+10−10View fileUnifiedSplit
5151 position: absolute;
5252 top: 0; left: 0; right: 0;
5353 height: 2px;
54 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
54 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
5555 opacity: 0.7;
5656 pointer-events: none;
5757 }
5959 position: absolute;
6060 inset: -30% -10% auto auto;
6161 width: 380px; height: 380px;
62 background: radial-gradient(circle, rgba(140,109,255,0.18), rgba(54,197,214,0.09) 45%, transparent 70%);
62 background: radial-gradient(circle, rgba(91,110,232,0.18), rgba(95,143,160,0.09) 45%, transparent 70%);
6363 filter: blur(80px);
6464 opacity: 0.7;
6565 pointer-events: none;
8383 color: var(--text-strong);
8484 }
8585 .pdash-title-grad {
86 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
86 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
8787 -webkit-background-clip: text;
8888 background-clip: text;
8989 -webkit-text-fill-color: transparent;
145145 }
146146 .pdash-tab:hover { color: var(--text-strong); text-decoration: none; }
147147 .pdash-tab.is-active {
148 background: rgba(140,109,255,0.14);
148 background: rgba(91,110,232,0.14);
149149 color: var(--text-strong);
150150 }
151151 .pdash-tab-count {
156156 border-radius: 9999px;
157157 }
158158 .pdash-tab.is-active .pdash-tab-count {
159 background: rgba(140,109,255,0.22);
159 background: rgba(91,110,232,0.22);
160160 color: var(--text);
161161 }
162162
178178 transition: background 120ms ease;
179179 }
180180 .pdash-row:last-child { border-bottom: none; }
181 .pdash-row:hover { background: rgba(140,109,255,0.04); }
181 .pdash-row:hover { background: rgba(91,110,232,0.04); }
182182 .pdash-row-icon {
183183 width: 18px; height: 18px;
184184 flex-shrink: 0;
188188 justify-content: center;
189189 }
190190 .pdash-row-icon.is-open { color: #34d399; }
191 .pdash-row-icon.is-merged { color: #b69dff; }
191 .pdash-row-icon.is-merged { color: #5b6ee8; }
192192 .pdash-row-icon.is-closed { color: #f87171; }
193193 .pdash-row-icon.is-draft { color: var(--text-muted); }
194194 .pdash-row-main { flex: 1; min-width: 0; }
254254 .pdash-badge.ai-pending { color: #fde68a; background: rgba(251,191,36,0.10); box-shadow: inset 0 0 0 1px rgba(251,191,36,0.30); }
255255 .pdash-badge.gt-pass { color: #6ee7b7; background: rgba(52,211,153,0.13); box-shadow: inset 0 0 0 1px rgba(52,211,153,0.30); }
256256 .pdash-badge.gt-fail { color: #fca5a5; background: rgba(248,113,113,0.13); box-shadow: inset 0 0 0 1px rgba(248,113,113,0.30); }
257 .pdash-badge.am-yes { color: #b69dff; background: rgba(140,109,255,0.18); box-shadow: inset 0 0 0 1px rgba(140,109,255,0.36); }
257 .pdash-badge.am-yes { color: #5b6ee8; background: rgba(91,110,232,0.18); box-shadow: inset 0 0 0 1px rgba(91,110,232,0.36); }
258258 .pdash-state-pill {
259259 display: inline-flex;
260260 align-items: center;
267267 text-transform: uppercase;
268268 }
269269 .pdash-state-pill.is-open { background: rgba(52,211,153,0.13); color: #6ee7b7; box-shadow: inset 0 0 0 1px rgba(52,211,153,0.30); }
270 .pdash-state-pill.is-merged { background: rgba(140,109,255,0.16); color: #b69dff; box-shadow: inset 0 0 0 1px rgba(140,109,255,0.32); }
270 .pdash-state-pill.is-merged { background: rgba(91,110,232,0.16); color: #5b6ee8; box-shadow: inset 0 0 0 1px rgba(91,110,232,0.32); }
271271 .pdash-state-pill.is-closed { background: rgba(248,113,113,0.13); color: #fca5a5; box-shadow: inset 0 0 0 1px rgba(248,113,113,0.30); }
272272 .pdash-state-pill.is-draft { background: rgba(255,255,255,0.06); color: var(--text-muted); box-shadow: inset 0 0 0 1px var(--border); }
273273
285285 position: absolute;
286286 inset: -20% -10% auto auto;
287287 width: 320px; height: 320px;
288 background: radial-gradient(circle, rgba(140,109,255,0.10), transparent 70%);
288 background: radial-gradient(circle, rgba(91,110,232,0.10), transparent 70%);
289289 filter: blur(60px);
290290 pointer-events: none;
291291 }
Modifiedsrc/routes/pulls.tsx+49−49View fileUnifiedSplit
171171 content: '';
172172 position: absolute; top: 0; left: 0; right: 0;
173173 height: 2px;
174 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
174 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
175175 opacity: 0.7;
176176 pointer-events: none;
177177 }
202202 color: var(--text-strong);
203203 }
204204 .prs-hero-title .gradient-text {
205 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
205 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
206206 -webkit-background-clip: text;
207207 background-clip: text;
208208 -webkit-text-fill-color: transparent;
223223 font-size: 13.5px;
224224 font-weight: 600;
225225 color: #fff;
226 background: linear-gradient(135deg, #8c6dff 0%, #6f5be8 60%, #36c5d6 140%);
227 border: 1px solid rgba(140,109,255,0.55);
228 box-shadow: 0 6px 18px -8px rgba(140,109,255,0.55);
226 background: linear-gradient(135deg, #5b6ee8 0%, #6f5be8 60%, #5f8fa0 140%);
227 border: 1px solid rgba(91,110,232,0.55);
228 box-shadow: 0 6px 18px -8px rgba(91,110,232,0.55);
229229 text-decoration: none;
230230 transition: transform 120ms ease, box-shadow 160ms ease;
231231 }
232232 .prs-cta:hover {
233233 transform: translateY(-1px);
234 box-shadow: 0 10px 22px -6px rgba(140,109,255,0.6);
234 box-shadow: 0 10px 22px -6px rgba(91,110,232,0.6);
235235 color: #fff;
236236 }
237237
269269 color: var(--text-muted);
270270 }
271271 .prs-tab.is-active .prs-tab-count {
272 background: rgba(140,109,255,0.18);
272 background: rgba(91,110,232,0.18);
273273 color: var(--text-link);
274274 }
275275
297297 margin-top: 2px;
298298 }
299299 .prs-row-icon.state-open { color: var(--green); background: rgba(52,211,153,0.12); }
300 .prs-row-icon.state-merged { color: #b69dff; background: rgba(140,109,255,0.16); }
300 .prs-row-icon.state-merged { color: #5b6ee8; background: rgba(91,110,232,0.16); }
301301 .prs-row-icon.state-closed { color: var(--red); background: rgba(248,113,113,0.12); }
302302 .prs-row-icon.state-draft { color: var(--text-muted); background: rgba(255,255,255,0.05); }
303303 .prs-row-body { flex: 1; min-width: 0; }
355355 }
356356 .prs-tag.is-merged {
357357 color: var(--text-link);
358 border-color: rgba(140,109,255,0.45);
359 background: rgba(140,109,255,0.10);
358 border-color: rgba(91,110,232,0.45);
359 background: rgba(91,110,232,0.10);
360360 }
361361 .prs-tag.is-approved {
362362 color: #34d399;
384384 position: absolute;
385385 inset: -40% -20% auto auto;
386386 width: 320px; height: 320px;
387 background: radial-gradient(circle, rgba(140,109,255,0.18), rgba(54,197,214,0.08) 50%, transparent 75%);
387 background: radial-gradient(circle, rgba(91,110,232,0.18), rgba(95,143,160,0.08) 50%, transparent 75%);
388388 filter: blur(70px);
389389 opacity: 0.55;
390390 pointer-events: none;
460460 color: var(--text);
461461 }
462462 .prs-sort-opt.is-active {
463 background: rgba(140,109,255,0.12);
463 background: rgba(91,110,232,0.12);
464464 color: var(--text-link);
465 border-color: rgba(140,109,255,0.35);
465 border-color: rgba(91,110,232,0.35);
466466 font-weight: 600;
467467 }
468468`;
484484 content: '';
485485 position: absolute; top: 0; left: 0; right: 0;
486486 height: 2px;
487 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
487 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
488488 opacity: 0.7;
489489 pointer-events: none;
490490 }
511511 border: 1px solid transparent;
512512 }
513513 .prs-state-pill.state-open { color: var(--green); background: rgba(52,211,153,0.12); border-color: rgba(52,211,153,0.35); }
514 .prs-state-pill.state-merged { color: #b69dff; background: rgba(140,109,255,0.16); border-color: rgba(140,109,255,0.45); }
514 .prs-state-pill.state-merged { color: #5b6ee8; background: rgba(91,110,232,0.16); border-color: rgba(91,110,232,0.45); }
515515 .prs-state-pill.state-closed { color: var(--red); background: rgba(248,113,113,0.12); border-color: rgba(248,113,113,0.35); }
516516 .prs-state-pill.state-draft { color: var(--text-muted); background: rgba(255,255,255,0.05); border-color: var(--border-strong); }
517517
706706 }
707707 .prs-comment-body { padding: 14px 18px; }
708708 .prs-comment.is-ai {
709 border-color: rgba(140,109,255,0.45);
710 box-shadow: 0 0 0 1px rgba(140,109,255,0.10), 0 6px 24px -10px rgba(140,109,255,0.30);
709 border-color: rgba(91,110,232,0.45);
710 box-shadow: 0 0 0 1px rgba(91,110,232,0.10), 0 6px 24px -10px rgba(91,110,232,0.30);
711711 }
712712 .prs-comment.is-ai .prs-comment-head {
713 background: linear-gradient(90deg, rgba(140,109,255,0.10), rgba(54,197,214,0.06));
714 border-bottom-color: rgba(140,109,255,0.30);
713 background: linear-gradient(90deg, rgba(91,110,232,0.10), rgba(95,143,160,0.06));
714 border-bottom-color: rgba(91,110,232,0.30);
715715 }
716716 .prs-ai-badge {
717717 display: inline-flex; align-items: center; gap: 4px;
721721 letter-spacing: 0.04em;
722722 text-transform: uppercase;
723723 color: #fff;
724 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 130%);
724 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 130%);
725725 border-radius: 9999px;
726726 }
727727 .prs-bot-badge {
748748 transition: border-color 120ms ease, transform 140ms ease;
749749 }
750750 .prs-files-card:hover {
751 border-color: rgba(140,109,255,0.45);
751 border-color: rgba(91,110,232,0.45);
752752 transform: translateY(-1px);
753753 }
754754 .prs-files-card-icon {
755755 width: 36px; height: 36px;
756756 display: inline-flex; align-items: center; justify-content: center;
757757 border-radius: 10px;
758 background: rgba(140,109,255,0.12);
758 background: rgba(91,110,232,0.12);
759759 color: var(--text-link);
760760 font-size: 18px;
761761 }
791791 position: absolute; inset: 0;
792792 padding: 1px;
793793 border-radius: 14px;
794 background: linear-gradient(135deg, rgba(140,109,255,0.55) 0%, rgba(54,197,214,0.40) 100%);
794 background: linear-gradient(135deg, rgba(91,110,232,0.55) 0%, rgba(95,143,160,0.40) 100%);
795795 -webkit-mask:
796796 linear-gradient(#000 0 0) content-box,
797797 linear-gradient(#000 0 0);
800800 pointer-events: none;
801801 }
802802 .prs-merge-card.is-closed::before { background: var(--border-strong); }
803 .prs-merge-card.is-merged::before { background: linear-gradient(135deg, rgba(140,109,255,0.45), rgba(54,197,214,0.30)); }
803 .prs-merge-card.is-merged::before { background: linear-gradient(135deg, rgba(91,110,232,0.45), rgba(95,143,160,0.30)); }
804804 .prs-merge-head {
805805 display: flex; align-items: center; gap: 12px;
806806 margin-bottom: 12px;
826826 font-size: 13.5px;
827827 font-weight: 600;
828828 color: #fff;
829 background: linear-gradient(135deg, #34d399 0%, #2bb886 60%, #36c5d6 140%);
829 background: linear-gradient(135deg, #34d399 0%, #2bb886 60%, #5f8fa0 140%);
830830 border: 1px solid rgba(52,211,153,0.55);
831831 box-shadow: 0 6px 18px -8px rgba(52,211,153,0.55);
832832 cursor: pointer;
850850 font-size: 13.5px;
851851 font-weight: 600;
852852 color: #fff;
853 background: linear-gradient(135deg, #8c6dff 0%, #6f5be8 60%, #36c5d6 140%);
854 border: 1px solid rgba(140,109,255,0.55);
855 box-shadow: 0 6px 18px -8px rgba(140,109,255,0.55);
853 background: linear-gradient(135deg, #5b6ee8 0%, #6f5be8 60%, #5f8fa0 140%);
854 border: 1px solid rgba(91,110,232,0.55);
855 box-shadow: 0 6px 18px -8px rgba(91,110,232,0.55);
856856 cursor: pointer;
857857 transition: transform 120ms ease, box-shadow 160ms ease;
858858 }
859859 .prs-merge-ready-btn:hover {
860860 transform: translateY(-1px);
861 box-shadow: 0 10px 24px -8px rgba(140,109,255,0.55);
861 box-shadow: 0 10px 24px -8px rgba(91,110,232,0.55);
862862 }
863863 .prs-merge-back-draft {
864864 background: none; border: 1px solid var(--border-strong);
892892 outline: none;
893893 appearance: auto;
894894 }
895 .prs-merge-strategy-select:focus { outline: 2px solid rgba(140,109,255,0.45); }
895 .prs-merge-strategy-select:focus { outline: 2px solid rgba(91,110,232,0.45); }
896896
897897 /* Review summary banner */
898898 .prs-review-summary {
11341134 .slash-pill.slash-cmd-rebase { border-left-color: #f0883e; }
11351135 .slash-pill.slash-cmd-needs-work { border-left-color: #f85149; }
11361136 .slash-pill.slash-cmd-lgtm { border-left-color: #56d364; }
1137 .slash-pill.slash-cmd-stage { border-left-color: #36c5d6; }
1137 .slash-pill.slash-cmd-stage { border-left-color: #5f8fa0; }
11381138
11391139 /* ─── Branch-preview pill (migration 0062). Scoped .preview-*. */
11401140 .preview-prpill {
11491149 text-decoration: none;
11501150 border: 1px solid var(--border);
11511151 }
1152 .preview-prpill:hover { color: var(--text-strong); border-color: rgba(140,109,255,0.45); }
1152 .preview-prpill:hover { color: var(--text-strong); border-color: rgba(91,110,232,0.45); }
11531153 .preview-prpill .preview-prpill-dot {
11541154 width: 7px; height: 7px;
11551155 border-radius: 9999px;
11851185 .trio-header-sub { color: var(--text-muted); font-size: 12.5px; }
11861186 .trio-header-dot {
11871187 width: 8px; height: 8px; border-radius: 9999px;
1188 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
1189 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
1188 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
1189 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
11901190 }
11911191 .trio-grid {
11921192 display: grid;
15311531 /* ─── PR Split Suggestion Panel ─── */
15321532 .split-suggestion {
15331533 margin-bottom: 16px;
1534 border: 1px solid rgba(140,109,255,0.35);
1534 border: 1px solid rgba(91,110,232,0.35);
15351535 border-radius: 12px;
15361536 overflow: hidden;
15371537 }
15401540 align-items: center;
15411541 gap: 10px;
15421542 padding: 12px 18px;
1543 background: rgba(140,109,255,0.06);
1543 background: rgba(91,110,232,0.06);
15441544 flex-wrap: wrap;
15451545 }
15461546 .split-icon { font-size: 18px; flex-shrink: 0; }
15481548 .split-stat { font-size: 12px; color: var(--text-muted); background: var(--bg-elevated); padding: 2px 9px; border-radius: 9999px; border: 1px solid var(--border); white-space: nowrap; }
15491549 .split-toggle {
15501550 background: none;
1551 border: 1px solid rgba(140,109,255,0.45);
1552 color: rgba(140,109,255,0.9);
1551 border: 1px solid rgba(91,110,232,0.45);
1552 color: rgba(91,110,232,0.9);
15531553 font-size: 12.5px;
15541554 font-weight: 600;
15551555 padding: 4px 12px;
15581558 white-space: nowrap;
15591559 transition: background 120ms ease;
15601560 }
1561 .split-toggle:hover { background: rgba(140,109,255,0.1); }
1561 .split-toggle:hover { background: rgba(91,110,232,0.1); }
15621562 .split-body {
15631563 padding: 16px 18px;
1564 border-top: 1px solid rgba(140,109,255,0.2);
1564 border-top: 1px solid rgba(91,110,232,0.2);
15651565 }
15661566 .split-intro { font-size: 13.5px; color: var(--text-muted); margin: 0 0 14px; }
15671567 .split-pr {
15751575 .split-pr-num {
15761576 width: 26px; height: 26px;
15771577 border-radius: 50%;
1578 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 130%);
1578 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 130%);
15791579 color: #fff;
15801580 font-size: 12px;
15811581 font-weight: 800;
19761976 var pill=document.createElement('span');
19771977 pill.className='presence-line-pill'+(typing?' is-typing':'');
19781978 pill.setAttribute('data-presence-sid',sessionId);
1979 pill.style.background=colour||'#8c6dff';
1979 pill.style.background=colour||'#5b6ee8';
19801980 pill.textContent=(username||'?').slice(0,12)+(typing?' typing':'');
19811981 row.appendChild(pill);
19821982}
30463046 content: '';
30473047 position: absolute; top: 0; left: 0; right: 0;
30483048 height: 2px;
3049 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
3049 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
30503050 opacity: 0.7;
30513051 pointer-events: none;
30523052 }
30683068 color: var(--text-strong);
30693069 }
30703070 .pri-hero-title .gradient-text {
3071 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
3071 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
30723072 -webkit-background-clip: text;
30733073 background-clip: text;
30743074 -webkit-text-fill-color: transparent;
31433143 width: 100%;
31443144 min-height: 4px;
31453145 border-radius: 4px 4px 0 0;
3146 background: linear-gradient(180deg, #a48bff 0%, #8c6dff 100%);
3146 background: linear-gradient(180deg, #5b6ee8 0%, #5b6ee8 100%);
31473147 transition: opacity 140ms;
31483148 }
31493149 .pri-bar:hover { opacity: 0.8; }
32093209 .pri-age-bar {
32103210 height: 100%;
32113211 border-radius: 9999px;
3212 background: linear-gradient(90deg, #8c6dff 0%, #36c5d6 100%);
3212 background: linear-gradient(90deg, #5b6ee8 0%, #5f8fa0 100%);
32133213 min-width: 4px;
32143214 }
32153215 .pri-age-count {
32293229 flex: 1;
32303230 min-height: 2px;
32313231 border-radius: 2px 2px 0 0;
3232 background: var(--accent, #8c6dff);
3232 background: var(--accent, #5b6ee8);
32333233 opacity: 0.7;
32343234 }
32353235 .pri-empty {
50555055 class="prs-gate-row"
50565056 style={
50575057 isAi
5058 ? "border-left: 3px solid rgba(140,109,255,0.55); padding-left: 15px"
5058 ? "border-left: 3px solid rgba(91,110,232,0.55); padding-left: 15px"
50595059 : ""
50605060 }
50615061 >
50665066 {check.name}
50675067 {isAi && (
50685068 <span
5069 style="margin-left:8px;display:inline-flex;align-items:center;gap:4px;padding:1px 7px;font-size:10px;font-weight:700;letter-spacing:0.04em;text-transform:uppercase;color:#fff;background:linear-gradient(135deg,#8c6dff 0%,#36c5d6 130%);border-radius:9999px;vertical-align:middle"
5069 style="margin-left:8px;display:inline-flex;align-items:center;gap:4px;padding:1px 7px;font-size:10px;font-weight:700;letter-spacing:0.04em;text-transform:uppercase;color:#fff;background:linear-gradient(135deg,#5b6ee8 0%,#5f8fa0 130%);border-radius:9999px;vertical-align:middle"
50705070 >
50715071 AI
50725072 </span>
Modifiedsrc/routes/pulse.tsx+2−2View fileUnifiedSplit
294294 label="PRs opened"
295295 value={Number(prsOpened)}
296296 sub={`${Number(prsMerged)} merged · ${Number(prsClosed)} closed`}
297 color="#8c6dff"
297 color="#5b6ee8"
298298 />
299299 <StatCard
300300 label="Commits"
301301 value={commitCount}
302302 sub={`by ${activeContributors.size} contributor${activeContributors.size !== 1 ? "s" : ""}`}
303 color="#36c5d6"
303 color="#5f8fa0"
304304 />
305305 <StatCard
306306 label="Code reviews"
Modifiedsrc/routes/push-watch.tsx+15−15View fileUnifiedSplit
245245 position: absolute;
246246 top: 0; left: 0; right: 0;
247247 height: 2px;
248 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
248 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
249249 opacity: 0.7;
250250 pointer-events: none;
251251 }
253253 position: absolute;
254254 inset: -40% -10% auto auto;
255255 width: 320px; height: 320px;
256 background: radial-gradient(circle, rgba(140,109,255,0.15), rgba(54,197,214,0.07) 50%, transparent 70%);
256 background: radial-gradient(circle, rgba(91,110,232,0.15), rgba(95,143,160,0.07) 50%, transparent 70%);
257257 filter: blur(70px);
258258 opacity: 0.6;
259259 pointer-events: none;
271271 font-size: 22px;
272272 font-weight: 700;
273273 color: #fff;
274 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
275 box-shadow: 0 8px 20px -8px rgba(140,109,255,0.45), inset 0 1px 0 rgba(255,255,255,0.15);
274 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
275 box-shadow: 0 8px 20px -8px rgba(91,110,232,0.45), inset 0 1px 0 rgba(255,255,255,0.15);
276276 position: relative; z-index: 1;
277277 }
278278 .pw-banner-live .pw-banner-icon { background: linear-gradient(135deg, #34d399 0%, #10b981 100%); box-shadow: 0 8px 20px -8px rgba(16,185,129,0.5), inset 0 1px 0 rgba(255,255,255,0.18); }
320320 .pw-card-head-icon {
321321 width: 22px; height: 22px;
322322 border-radius: 6px;
323 background: rgba(140,109,255,0.14);
324 color: #b69dff;
323 background: rgba(91,110,232,0.14);
324 color: #5b6ee8;
325325 display: flex; align-items: center; justify-content: center;
326326 font-size: 12px;
327 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.3);
327 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.3);
328328 }
329329 .pw-card-body { padding: 20px; }
330330
338338 flex-shrink: 0;
339339 width: 40px; height: 40px;
340340 border-radius: 50%;
341 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
341 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
342342 display: flex; align-items: center; justify-content: center;
343343 font-size: 14px;
344344 font-weight: 700;
366366 .pw-sha {
367367 font-family: var(--font-mono, monospace);
368368 font-size: 12px;
369 background: rgba(140,109,255,0.10);
370 color: #b69dff;
369 background: rgba(91,110,232,0.10);
370 color: #5b6ee8;
371371 border-radius: 4px;
372372 padding: 2px 7px;
373 border: 1px solid rgba(140,109,255,0.22);
373 border: 1px solid rgba(91,110,232,0.22);
374374 }
375375 .pw-branch-badge {
376376 font-size: 12px;
377 background: rgba(54,197,214,0.10);
378 color: #36c5d6;
377 background: rgba(95,143,160,0.10);
378 color: #5f8fa0;
379379 border-radius: 4px;
380380 padding: 2px 7px;
381 border: 1px solid rgba(54,197,214,0.22);
381 border: 1px solid rgba(95,143,160,0.22);
382382 }
383383
384384 /* ── gate table ── */
427427 flex-shrink: 0;
428428 }
429429 .pw-pill-green { background: rgba(52,211,153,0.12); color: #34d399; border: 1px solid rgba(52,211,153,0.25); }
430 .pw-pill-teal { background: rgba(54,197,214,0.12); color: #36c5d6; border: 1px solid rgba(54,197,214,0.25); }
430 .pw-pill-teal { background: rgba(95,143,160,0.12); color: #5f8fa0; border: 1px solid rgba(95,143,160,0.25); }
431431 .pw-pill-red { background: rgba(248,113,113,0.12); color: #f87171; border: 1px solid rgba(248,113,113,0.25); }
432432 .pw-pill-yellow { background: rgba(251,191,36,0.12); color: #fbbf24; border: 1px solid rgba(251,191,36,0.25); }
433433 .pw-pill-gray { background: rgba(139,148,158,0.12); color: #8b949e; border: 1px solid rgba(139,148,158,0.22); }
Modifiedsrc/routes/refactors.tsx+9−9View fileUnifiedSplit
6969 position: absolute;
7070 top: 0; left: 0; right: 0;
7171 height: 2px;
72 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
72 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
7373 opacity: 0.78;
7474 pointer-events: none;
7575 }
7777 position: absolute;
7878 inset: -30% -15% auto auto;
7979 width: 460px; height: 460px;
80 background: radial-gradient(circle, rgba(140,109,255,0.24), rgba(54,197,214,0.12) 45%, transparent 70%);
80 background: radial-gradient(circle, rgba(91,110,232,0.24), rgba(95,143,160,0.12) 45%, transparent 70%);
8181 filter: blur(80px);
8282 opacity: 0.78;
8383 pointer-events: none;
9999 .refac-eyebrow-dot {
100100 width: 8px; height: 8px;
101101 border-radius: 9999px;
102 background: linear-gradient(135deg, #8c6dff, #36c5d6);
103 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
102 background: linear-gradient(135deg, #5b6ee8, #5f8fa0);
103 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
104104 }
105105 .refac-title {
106106 font-family: var(--font-display);
112112 color: var(--text-strong);
113113 }
114114 .refac-title-grad {
115 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
115 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
116116 -webkit-background-clip: text;
117117 background-clip: text;
118118 -webkit-text-fill-color: transparent;
147147 margin: 0;
148148 }
149149 .refac-card-title a { color: inherit; text-decoration: none; }
150 .refac-card-title a:hover { color: #8c6dff; }
150 .refac-card-title a:hover { color: #5b6ee8; }
151151 .refac-card-meta {
152152 font-size: 12px;
153153 color: var(--text-muted);
175175 background: var(--bg);
176176 color: var(--text-muted);
177177 }
178 .refac-pill.is-planning { color: #36c5d6; border-color: rgba(54,197,214,0.35); background: rgba(54,197,214,0.08); }
179 .refac-pill.is-building { color: #a48bff; border-color: rgba(140,109,255,0.35); background: rgba(140,109,255,0.08); }
178 .refac-pill.is-planning { color: #5f8fa0; border-color: rgba(95,143,160,0.35); background: rgba(95,143,160,0.08); }
179 .refac-pill.is-building { color: #5b6ee8; border-color: rgba(91,110,232,0.35); background: rgba(91,110,232,0.08); }
180180 .refac-pill.is-ready_for_review { color: #4ade80; border-color: rgba(74,222,128,0.35); background: rgba(74,222,128,0.08); }
181181 .refac-pill.is-merged { color: #4ade80; border-color: rgba(74,222,128,0.45); background: rgba(74,222,128,0.12); }
182182 .refac-pill.is-failed { color: #fca5a5; border-color: rgba(252,165,165,0.35); background: rgba(252,165,165,0.08); }
249249 text-decoration: none;
250250 }
251251 .refac-btn-primary {
252 background: linear-gradient(135deg, #8c6dff, #36c5d6);
252 background: linear-gradient(135deg, #5b6ee8, #5f8fa0);
253253 border-color: transparent;
254254 color: #fff;
255255 }
Modifiedsrc/routes/releases.tsx+20−20View fileUnifiedSplit
9797 .rel-eyebrow-dot {
9898 width: 8px; height: 8px;
9999 border-radius: 9999px;
100 background: linear-gradient(135deg, #8c6dff, #36c5d6);
101 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
100 background: linear-gradient(135deg, #5b6ee8, #5f8fa0);
101 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
102102 }
103103 .rel-title {
104104 font-family: var(--font-display);
110110 color: var(--text-strong);
111111 }
112112 .rel-title-grad {
113 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
113 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
114114 -webkit-background-clip: text;
115115 background-clip: text;
116116 -webkit-text-fill-color: transparent;
143143 transition: transform 120ms ease, box-shadow 120ms ease, background 120ms ease, border-color 120ms ease, color 120ms ease;
144144 }
145145 .rel-btn-primary {
146 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
146 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
147147 color: #ffffff;
148 box-shadow: 0 6px 18px -6px rgba(140,109,255,0.50), inset 0 1px 0 rgba(255,255,255,0.16);
148 box-shadow: 0 6px 18px -6px rgba(91,110,232,0.50), inset 0 1px 0 rgba(255,255,255,0.16);
149149 }
150150 .rel-btn-primary:hover {
151151 transform: translateY(-1px);
152 box-shadow: 0 10px 24px -8px rgba(140,109,255,0.60), inset 0 1px 0 rgba(255,255,255,0.20);
152 box-shadow: 0 10px 24px -8px rgba(91,110,232,0.60), inset 0 1px 0 rgba(255,255,255,0.20);
153153 text-decoration: none;
154154 color: #ffffff;
155155 }
159159 border-color: var(--border-strong);
160160 }
161161 .rel-btn-ghost:hover {
162 background: rgba(140,109,255,0.06);
163 border-color: rgba(140,109,255,0.45);
162 background: rgba(91,110,232,0.06);
163 border-color: rgba(91,110,232,0.45);
164164 color: var(--text-strong);
165165 text-decoration: none;
166166 }
238238 position: absolute;
239239 top: 0; left: 0; right: 0;
240240 height: 2px;
241 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
241 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
242242 opacity: 0.6;
243243 pointer-events: none;
244244 }
269269 font-family: var(--font-mono);
270270 font-size: 11.5px;
271271 font-weight: 600;
272 background: rgba(140,109,255,0.12);
272 background: rgba(91,110,232,0.12);
273273 color: #c4b5fd;
274 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.30);
274 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.30);
275275 font-variant-numeric: tabular-nums;
276276 }
277277 .rel-pill {
297297 box-shadow: inset 0 0 0 1px rgba(251,191,36,0.32);
298298 }
299299 .rel-pill.is-pre {
300 background: rgba(54,197,214,0.14);
300 background: rgba(95,143,160,0.14);
301301 color: #67e8f9;
302 box-shadow: inset 0 0 0 1px rgba(54,197,214,0.32);
302 box-shadow: inset 0 0 0 1px rgba(95,143,160,0.32);
303303 }
304304 .rel-meta-row {
305305 display: flex;
358358 position: absolute;
359359 top: 0; left: 0; right: 0;
360360 height: 2px;
361 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
361 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
362362 opacity: 0.55;
363363 }
364364
377377 position: absolute;
378378 top: 0; left: 0; right: 0;
379379 height: 2px;
380 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
380 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
381381 opacity: 0.55;
382382 }
383383 .rel-field { margin-bottom: 14px; }
405405 .rel-textarea { font-family: var(--font-mono); font-size: 12.5px; line-height: 1.5; resize: vertical; }
406406 .rel-input:focus, .rel-select:focus, .rel-textarea:focus {
407407 outline: none;
408 border-color: rgba(140,109,255,0.55);
408 border-color: rgba(91,110,232,0.55);
409409 background: rgba(255,255,255,0.05);
410 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
410 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
411411 }
412412 .rel-checks { display: flex; gap: 18px; flex-wrap: wrap; margin-bottom: 16px; font-size: 13px; }
413413 .rel-check { display: inline-flex; align-items: center; gap: 6px; cursor: pointer; }
426426 position: absolute;
427427 inset: -40% 30% auto 30%;
428428 height: 280px;
429 background: radial-gradient(circle, rgba(140,109,255,0.18), rgba(54,197,214,0.10) 45%, transparent 70%);
429 background: radial-gradient(circle, rgba(91,110,232,0.18), rgba(95,143,160,0.10) 45%, transparent 70%);
430430 filter: blur(70px);
431431 opacity: 0.7;
432432 pointer-events: none;
436436 .rel-empty-icon {
437437 width: 56px; height: 56px;
438438 border-radius: 9999px;
439 background: linear-gradient(135deg, rgba(140,109,255,0.25), rgba(54,197,214,0.20));
440 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.40);
439 background: linear-gradient(135deg, rgba(91,110,232,0.25), rgba(95,143,160,0.20));
440 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.40);
441441 display: inline-flex;
442442 align-items: center;
443443 justify-content: center;
Modifiedsrc/routes/repo-chat.tsx+32−32View fileUnifiedSplit
461461 position: absolute;
462462 top: 0; left: 0; right: 0;
463463 height: 2px;
464 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
464 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
465465 opacity: 0.78;
466466 pointer-events: none;
467467 z-index: 2;
470470 position: absolute;
471471 inset: -30% -10% auto auto;
472472 width: 460px; height: 460px;
473 background: radial-gradient(circle, rgba(140,109,255,0.22), rgba(54,197,214,0.10) 45%, transparent 70%);
473 background: radial-gradient(circle, rgba(91,110,232,0.22), rgba(95,143,160,0.10) 45%, transparent 70%);
474474 filter: blur(80px);
475475 opacity: 0.7;
476476 pointer-events: none;
497497 justify-content: center;
498498 width: 18px; height: 18px;
499499 border-radius: 6px;
500 background: rgba(140,109,255,0.14);
501 color: #b69dff;
502 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.35);
500 background: rgba(91,110,232,0.14);
501 color: #5b6ee8;
502 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.35);
503503 }
504504 .rchat-eyebrow-who {
505505 color: var(--accent);
534534 color: var(--text-strong);
535535 }
536536 .rchat-title-grad {
537 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
537 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
538538 -webkit-background-clip: text;
539539 background-clip: text;
540540 -webkit-text-fill-color: transparent;
581581 color: #fff;
582582 border-radius: 10px;
583583 text-decoration: none;
584 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
585 box-shadow: 0 6px 18px -6px rgba(140,109,255,0.45), inset 0 1px 0 rgba(255,255,255,0.16);
584 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
585 box-shadow: 0 6px 18px -6px rgba(91,110,232,0.45), inset 0 1px 0 rgba(255,255,255,0.16);
586586 }
587587 .rchat-new:hover { text-decoration: none; transform: translateY(-1px); }
588588 .rchat-aside-head {
600600 .rchat-aside-dot {
601601 width: 7px; height: 7px;
602602 border-radius: 9999px;
603 background: linear-gradient(135deg, #8c6dff, #36c5d6);
604 box-shadow: 0 0 0 3px rgba(140,109,255,0.16);
603 background: linear-gradient(135deg, #5b6ee8, #5f8fa0);
604 box-shadow: 0 0 0 3px rgba(91,110,232,0.16);
605605 }
606606 .rchat-aside-list {
607607 list-style: none;
630630 transition: background 120ms ease;
631631 }
632632 .rchat-aside-link:hover {
633 background: rgba(140,109,255,0.06);
633 background: rgba(91,110,232,0.06);
634634 text-decoration: none;
635635 }
636636 .rchat-aside-link.is-active {
637 background: rgba(140,109,255,0.10);
638 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.22);
637 background: rgba(91,110,232,0.10);
638 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.22);
639639 }
640640 .rchat-aside-link-title {
641641 font-size: 13px;
681681 justify-content: center;
682682 width: 36px; height: 36px;
683683 border-radius: 10px;
684 background: linear-gradient(135deg, rgba(140,109,255,0.18), rgba(54,197,214,0.10));
685 color: #b69dff;
686 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.35);
684 background: linear-gradient(135deg, rgba(91,110,232,0.18), rgba(95,143,160,0.10));
685 color: #5b6ee8;
686 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.35);
687687 flex-shrink: 0;
688688 }
689689 .rchat-empty-title {
722722 font-weight: 700;
723723 }
724724 .rchat-msg-avatar-ai {
725 background: linear-gradient(135deg, #8c6dff, #36c5d6);
725 background: linear-gradient(135deg, #5b6ee8, #5f8fa0);
726726 color: #fff;
727 box-shadow: 0 0 0 1px rgba(140,109,255,0.18), 0 6px 18px -6px rgba(140,109,255,0.45);
727 box-shadow: 0 0 0 1px rgba(91,110,232,0.18), 0 6px 18px -6px rgba(91,110,232,0.45);
728728 }
729729 .rchat-msg-avatar-user {
730730 background: rgba(255,255,255,0.05);
763763 .rchat-msg-assistant .rchat-msg-bubble {
764764 border-top-left-radius: 4px;
765765 background:
766 linear-gradient(180deg, rgba(140,109,255,0.04), transparent 60%),
766 linear-gradient(180deg, rgba(91,110,232,0.04), transparent 60%),
767767 var(--bg-elevated);
768 border-color: rgba(140,109,255,0.22);
768 border-color: rgba(91,110,232,0.22);
769769 }
770770 .rchat-msg-user .rchat-msg-bubble {
771771 border-top-right-radius: 4px;
772 background: rgba(140,109,255,0.06);
773 border-color: rgba(140,109,255,0.20);
772 background: rgba(91,110,232,0.06);
773 border-color: rgba(91,110,232,0.20);
774774 color: var(--text-strong);
775775 }
776776 .rchat-msg-cost {
798798 font-weight: 700;
799799 padding: 4px 8px;
800800 border-radius: 8px;
801 background: rgba(140,109,255,0.05);
802 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.18);
801 background: rgba(91,110,232,0.05);
802 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.18);
803803 }
804804 .rchat-sources-head::-webkit-details-marker { display: none; }
805805 .rchat-sources-head:hover {
806 background: rgba(140,109,255,0.08);
806 background: rgba(91,110,232,0.08);
807807 }
808808 .rchat-sources-list {
809809 list-style: none;
823823 text-decoration: none;
824824 }
825825 .rchat-sources-link:hover {
826 background: rgba(140,109,255,0.08);
826 background: rgba(91,110,232,0.08);
827827 text-decoration: none;
828828 }
829829
838838 transition: border-color 140ms ease, box-shadow 140ms ease;
839839 }
840840 .rchat-composer-shell:focus-within {
841 border-color: rgba(140,109,255,0.55);
842 box-shadow: 0 0 0 4px rgba(140,109,255,0.16);
841 border-color: rgba(91,110,232,0.55);
842 box-shadow: 0 0 0 4px rgba(91,110,232,0.16);
843843 }
844844 .rchat-composer-shell::before {
845845 content: '';
846846 position: absolute;
847847 top: 0; left: 0; right: 0;
848848 height: 1px;
849 background: linear-gradient(90deg, transparent 0%, rgba(140,109,255,0.45) 30%, rgba(54,197,214,0.45) 70%, transparent 100%);
849 background: linear-gradient(90deg, transparent 0%, rgba(91,110,232,0.45) 30%, rgba(95,143,160,0.45) 70%, transparent 100%);
850850 opacity: 0.6;
851851 pointer-events: none;
852852 }
914914 border: 1px solid transparent;
915915 border-radius: 10px;
916916 cursor: pointer;
917 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
918 box-shadow: 0 6px 18px -4px rgba(140,109,255,0.45), inset 0 1px 0 rgba(255,255,255,0.16);
917 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
918 box-shadow: 0 6px 18px -4px rgba(91,110,232,0.45), inset 0 1px 0 rgba(255,255,255,0.16);
919919 transition: transform 120ms ease, box-shadow 120ms ease;
920920 font-family: inherit;
921921 line-height: 1;
922922 }
923923 .rchat-submit:hover {
924924 transform: translateY(-1px);
925 box-shadow: 0 10px 24px -6px rgba(140,109,255,0.55), inset 0 1px 0 rgba(255,255,255,0.20);
925 box-shadow: 0 10px 24px -6px rgba(91,110,232,0.55), inset 0 1px 0 rgba(255,255,255,0.20);
926926 }
927927 .rchat-submit:active { transform: translateY(0); }
928928
Modifiedsrc/routes/repo-settings.tsx+18−18View fileUnifiedSplit
4141 position: absolute;
4242 top: 0; left: 0; right: 0;
4343 height: 2px;
44 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
44 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
4545 opacity: 0.7;
4646 pointer-events: none;
4747 }
5555 .repo-settings-hero-orb {
5656 position: absolute;
5757 inset: 0;
58 background: radial-gradient(circle, rgba(140,109,255,0.18), rgba(54,197,214,0.09) 45%, transparent 70%);
58 background: radial-gradient(circle, rgba(91,110,232,0.18), rgba(95,143,160,0.09) 45%, transparent 70%);
5959 filter: blur(80px);
6060 opacity: 0.65;
6161 animation: repoSettingsHeroOrb 14s ease-in-out infinite;
9292 color: var(--text-strong);
9393 }
9494 .repo-settings-hero-title .gradient-text {
95 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
95 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
9696 -webkit-background-clip: text;
9797 background-clip: text;
9898 -webkit-text-fill-color: transparent;
242242 .repo-settings-input:focus,
243243 .repo-settings-select:focus {
244244 border-color: var(--border-focus, var(--accent));
245 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
245 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
246246 }
247247
248248 /* ─── Visibility radio cards ─── */
266266 }
267267 .repo-settings-vis-card:hover { border-color: var(--border-strong, var(--border)); }
268268 .repo-settings-vis-card:has(input:checked) {
269 border-color: rgba(140,109,255,0.55);
270 background: rgba(140,109,255,0.06);
271 box-shadow: 0 0 0 1px rgba(140,109,255,0.25);
269 border-color: rgba(91,110,232,0.55);
270 background: rgba(91,110,232,0.06);
271 box-shadow: 0 0 0 1px rgba(91,110,232,0.25);
272272 }
273273 .repo-settings-vis-radio {
274274 margin-top: 3px;
305305 background: rgba(255,255,255,0.02);
306306 }
307307 .repo-settings-toggle-row:has(input:checked) {
308 border-color: rgba(140,109,255,0.45);
309 background: rgba(140,109,255,0.05);
308 border-color: rgba(91,110,232,0.45);
309 background: rgba(91,110,232,0.05);
310310 }
311311 .repo-settings-toggle-row input[type="checkbox"] {
312312 margin-top: 2px;
343343 font-size: 14px;
344344 font-weight: 600;
345345 color: white;
346 background: linear-gradient(135deg, #8c6dff 0%, #5b7bff 100%);
346 background: linear-gradient(135deg, #5b6ee8 0%, #5b7bff 100%);
347347 border: none;
348348 border-radius: 8px;
349349 cursor: pointer;
353353 }
354354 .repo-settings-cta:hover {
355355 filter: brightness(1.08);
356 box-shadow: 0 6px 18px rgba(140,109,255,0.25);
356 box-shadow: 0 6px 18px rgba(91,110,232,0.25);
357357 transform: translateY(-1px);
358358 }
359359 .repo-settings-cta .arrow { transition: transform 120ms ease; }
376376 }
377377 .repo-settings-cta-secondary:hover {
378378 border-color: var(--accent);
379 background: rgba(140,109,255,0.06);
379 background: rgba(91,110,232,0.06);
380380 }
381381
382382 /* ─── Inline transfer row ─── */
401401 margin-bottom: var(--space-2);
402402 }
403403 .repo-settings-pill.is-on {
404 background: rgba(140,109,255,0.14);
405 color: #b69dff;
406 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.35);
404 background: rgba(91,110,232,0.14);
405 color: #5b6ee8;
406 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.35);
407407 }
408408 .repo-settings-pill.is-off {
409409 background: rgba(255,255,255,0.04);
706706 <span
707707 style={`display:inline-flex; align-items:center; gap:6px; padding:4px 12px; border-radius:9999px; font-size:12px; font-weight:600; font-family:var(--font-mono); ${
708708 repo.dataRegion === "eu"
709 ? "background:rgba(54,197,214,0.10); color:#67e8f9; border:1px solid rgba(54,197,214,0.28);"
710 : "background:rgba(140,109,255,0.10); color:#c4b5fd; border:1px solid rgba(140,109,255,0.28);"
709 ? "background:rgba(95,143,160,0.10); color:#67e8f9; border:1px solid rgba(95,143,160,0.28);"
710 : "background:rgba(91,110,232,0.10); color:#c4b5fd; border:1px solid rgba(91,110,232,0.28);"
711711 }`}
712712 >
713713 {repo.dataRegion === "eu" ? "EU · Frankfurt" : "US · Default"}
12011201 {rule.requiredApprovals} required approval{rule.requiredApprovals !== 1 ? "s" : ""}
12021202 </span>
12031203 {rule.requireHumanReview && (
1204 <span style="font-size:11px;font-weight:600;padding:2px 8px;border-radius:9999px;background:rgba(140,109,255,0.12);color:#b69dff">
1204 <span style="font-size:11px;font-weight:600;padding:2px 8px;border-radius:9999px;background:rgba(91,110,232,0.12);color:#5b6ee8">
12051205 codeowner review required
12061206 </span>
12071207 )}
Modifiedsrc/routes/required-checks.tsx+25−25View fileUnifiedSplit
156156 position: absolute;
157157 top: 0; left: 0; right: 0;
158158 height: 2px;
159 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
159 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
160160 opacity: 0.7;
161161 pointer-events: none;
162162 }
164164 position: absolute;
165165 inset: -20% -10% auto auto;
166166 width: 380px; height: 380px;
167 background: radial-gradient(circle, rgba(140,109,255,0.20), rgba(54,197,214,0.10) 45%, transparent 70%);
167 background: radial-gradient(circle, rgba(91,110,232,0.20), rgba(95,143,160,0.10) 45%, transparent 70%);
168168 filter: blur(80px);
169169 opacity: 0.7;
170170 pointer-events: none;
198198 justify-content: center;
199199 width: 18px; height: 18px;
200200 border-radius: 6px;
201 background: rgba(140,109,255,0.14);
202 color: #b69dff;
203 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.35);
201 background: rgba(91,110,232,0.14);
202 color: #5b6ee8;
203 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.35);
204204 }
205205 .rc-title {
206206 font-size: clamp(26px, 3.6vw, 36px);
212212 color: var(--text-strong);
213213 }
214214 .rc-title-grad {
215 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
215 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
216216 -webkit-background-clip: text;
217217 background-clip: text;
218218 -webkit-text-fill-color: transparent;
283283 }
284284 .rc-status.is-on {
285285 border-color: rgba(52,211,153,0.32);
286 background: linear-gradient(135deg, rgba(52,211,153,0.08) 0%, rgba(15,17,26,0) 60%), var(--bg-elevated);
286 background: linear-gradient(135deg, rgba(52,211,153,0.08) 0%, rgba(22,27,34,0) 60%), var(--bg-elevated);
287287 }
288288 .rc-status.is-warn {
289289 border-color: rgba(248,113,113,0.32);
290 background: linear-gradient(135deg, rgba(248,113,113,0.08) 0%, rgba(15,17,26,0) 60%), var(--bg-elevated);
290 background: linear-gradient(135deg, rgba(248,113,113,0.08) 0%, rgba(22,27,34,0) 60%), var(--bg-elevated);
291291 }
292292 .rc-status.is-empty {
293293 border-color: rgba(251,191,36,0.30);
294 background: linear-gradient(135deg, rgba(251,191,36,0.06) 0%, rgba(15,17,26,0) 60%), var(--bg-elevated);
294 background: linear-gradient(135deg, rgba(251,191,36,0.06) 0%, rgba(22,27,34,0) 60%), var(--bg-elevated);
295295 }
296296 .rc-status-row { display: flex; align-items: center; gap: var(--space-4); flex-wrap: wrap; }
297297 .rc-status-mark {
302302 align-items: center;
303303 justify-content: center;
304304 color: #fff;
305 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
306 box-shadow: 0 8px 20px -8px rgba(140,109,255,0.50), inset 0 1px 0 rgba(255,255,255,0.18);
305 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
306 box-shadow: 0 8px 20px -8px rgba(91,110,232,0.50), inset 0 1px 0 rgba(255,255,255,0.18);
307307 }
308308 .rc-status.is-on .rc-status-mark {
309309 background: linear-gradient(135deg, #34d399 0%, #10b981 100%);
337337 font-size: 12px;
338338 font-weight: 600;
339339 color: var(--text-strong);
340 background: rgba(140,109,255,0.10);
341 border: 1px solid rgba(140,109,255,0.30);
340 background: rgba(91,110,232,0.10);
341 border: 1px solid rgba(91,110,232,0.30);
342342 border-radius: 8px;
343343 }
344344
371371 justify-content: center;
372372 width: 26px; height: 26px;
373373 border-radius: 8px;
374 background: rgba(140,109,255,0.12);
375 color: #b69dff;
376 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.28);
374 background: rgba(91,110,232,0.12);
375 color: #5b6ee8;
376 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.28);
377377 flex-shrink: 0;
378378 }
379379 .rc-section-sub {
398398 transition: border-color 140ms ease, transform 140ms ease;
399399 }
400400 .rc-check:hover {
401 border-color: rgba(140,109,255,0.30);
401 border-color: rgba(91,110,232,0.30);
402402 transform: translateY(-1px);
403403 }
404404 .rc-check-main { display: flex; align-items: center; gap: 14px; flex: 1; min-width: 0; }
481481 position: absolute;
482482 inset: -30% auto auto -10%;
483483 width: 260px; height: 260px;
484 background: radial-gradient(circle, rgba(140,109,255,0.16), rgba(54,197,214,0.08) 45%, transparent 70%);
484 background: radial-gradient(circle, rgba(91,110,232,0.16), rgba(95,143,160,0.08) 45%, transparent 70%);
485485 filter: blur(60px);
486486 opacity: 0.8;
487487 pointer-events: none;
492492 margin: 0 auto var(--space-3);
493493 width: 52px; height: 52px;
494494 border-radius: 14px;
495 background: linear-gradient(135deg, rgba(140,109,255,0.18), rgba(54,197,214,0.12));
496 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.30);
495 background: linear-gradient(135deg, rgba(91,110,232,0.18), rgba(95,143,160,0.12));
496 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.30);
497497 display: flex;
498498 align-items: center;
499499 justify-content: center;
546546 box-sizing: border-box;
547547 }
548548 .rc-input:focus {
549 border-color: var(--border-focus, rgba(140,109,255,0.55));
550 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
549 border-color: var(--border-focus, rgba(91,110,232,0.55));
550 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
551551 }
552552 .rc-form-hint { margin-top: 6px; font-size: 12px; color: var(--text-muted); }
553553 .rc-form-hint code {
577577 transition: transform 120ms ease, box-shadow 120ms ease, background 120ms ease, border-color 120ms ease, color 120ms ease;
578578 }
579579 .rc-btn-primary {
580 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
580 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
581581 color: #fff;
582 box-shadow: 0 6px 18px -4px rgba(140,109,255,0.45), inset 0 1px 0 rgba(255,255,255,0.16);
582 box-shadow: 0 6px 18px -4px rgba(91,110,232,0.45), inset 0 1px 0 rgba(255,255,255,0.16);
583583 }
584584 .rc-btn-primary:hover {
585585 transform: translateY(-1px);
586 box-shadow: 0 10px 24px -6px rgba(140,109,255,0.55), inset 0 1px 0 rgba(255,255,255,0.20);
586 box-shadow: 0 10px 24px -6px rgba(91,110,232,0.55), inset 0 1px 0 rgba(255,255,255,0.20);
587587 color: #fff;
588588 text-decoration: none;
589589 }
Modifiedsrc/routes/rulesets.tsx+27−27View fileUnifiedSplit
101101 position: absolute;
102102 top: 0; left: 0; right: 0;
103103 height: 2px;
104 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
104 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
105105 opacity: 0.7;
106106 pointer-events: none;
107107 }
109109 position: absolute;
110110 inset: -20% -10% auto auto;
111111 width: 380px; height: 380px;
112 background: radial-gradient(circle, rgba(140,109,255,0.20), rgba(54,197,214,0.10) 45%, transparent 70%);
112 background: radial-gradient(circle, rgba(91,110,232,0.20), rgba(95,143,160,0.10) 45%, transparent 70%);
113113 filter: blur(80px);
114114 opacity: 0.7;
115115 pointer-events: none;
143143 justify-content: center;
144144 width: 18px; height: 18px;
145145 border-radius: 6px;
146 background: rgba(140,109,255,0.14);
147 color: #b69dff;
148 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.35);
146 background: rgba(91,110,232,0.14);
147 color: #5b6ee8;
148 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.35);
149149 }
150150 .rs-title {
151151 font-size: clamp(26px, 3.6vw, 36px);
157157 color: var(--text-strong);
158158 }
159159 .rs-title-grad {
160 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
160 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
161161 -webkit-background-clip: text;
162162 background-clip: text;
163163 -webkit-text-fill-color: transparent;
219219 }
220220 .rs-status.is-on {
221221 border-color: rgba(52,211,153,0.32);
222 background: linear-gradient(135deg, rgba(52,211,153,0.08) 0%, rgba(15,17,26,0) 60%), var(--bg-elevated);
222 background: linear-gradient(135deg, rgba(52,211,153,0.08) 0%, rgba(22,27,34,0) 60%), var(--bg-elevated);
223223 }
224224 .rs-status.is-warn {
225225 border-color: rgba(248,113,113,0.32);
226 background: linear-gradient(135deg, rgba(248,113,113,0.08) 0%, rgba(15,17,26,0) 60%), var(--bg-elevated);
226 background: linear-gradient(135deg, rgba(248,113,113,0.08) 0%, rgba(22,27,34,0) 60%), var(--bg-elevated);
227227 }
228228 .rs-status.is-empty {
229229 border-color: rgba(251,191,36,0.30);
230 background: linear-gradient(135deg, rgba(251,191,36,0.06) 0%, rgba(15,17,26,0) 60%), var(--bg-elevated);
230 background: linear-gradient(135deg, rgba(251,191,36,0.06) 0%, rgba(22,27,34,0) 60%), var(--bg-elevated);
231231 }
232232 .rs-status-row { display: flex; align-items: center; gap: var(--space-4); flex-wrap: wrap; }
233233 .rs-status-mark {
238238 align-items: center;
239239 justify-content: center;
240240 color: #fff;
241 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
242 box-shadow: 0 8px 20px -8px rgba(140,109,255,0.50), inset 0 1px 0 rgba(255,255,255,0.18);
241 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
242 box-shadow: 0 8px 20px -8px rgba(91,110,232,0.50), inset 0 1px 0 rgba(255,255,255,0.18);
243243 }
244244 .rs-status.is-on .rs-status-mark {
245245 background: linear-gradient(135deg, #34d399 0%, #10b981 100%);
294294 justify-content: center;
295295 width: 26px; height: 26px;
296296 border-radius: 8px;
297 background: rgba(140,109,255,0.12);
298 color: #b69dff;
299 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.28);
297 background: rgba(91,110,232,0.12);
298 color: #5b6ee8;
299 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.28);
300300 flex-shrink: 0;
301301 }
302302 .rs-section-sub {
322322 color: inherit;
323323 transition: border-color 140ms ease, transform 140ms ease;
324324 }
325 .rs-item:hover { border-color: rgba(140,109,255,0.30); transform: translateY(-1px); text-decoration: none; }
325 .rs-item:hover { border-color: rgba(91,110,232,0.30); transform: translateY(-1px); text-decoration: none; }
326326 .rs-item-head { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
327327 .rs-item-name { font-family: var(--font-display); font-size: 15px; font-weight: 700; color: var(--text-strong); letter-spacing: -0.012em; }
328328 .rs-item-meta { margin-top: 4px; font-size: 12px; color: var(--text-muted); }
377377 font-size: 10.5px;
378378 padding: 2px 7px;
379379 border-radius: 5px;
380 background: rgba(140,109,255,0.10);
380 background: rgba(91,110,232,0.10);
381381 color: #c4b5fd;
382 border: 1px solid rgba(140,109,255,0.25);
382 border: 1px solid rgba(91,110,232,0.25);
383383 text-transform: uppercase;
384384 letter-spacing: 0.04em;
385385 font-weight: 700;
401401 position: absolute;
402402 inset: -30% auto auto -10%;
403403 width: 260px; height: 260px;
404 background: radial-gradient(circle, rgba(140,109,255,0.16), rgba(54,197,214,0.08) 45%, transparent 70%);
404 background: radial-gradient(circle, rgba(91,110,232,0.16), rgba(95,143,160,0.08) 45%, transparent 70%);
405405 filter: blur(60px);
406406 opacity: 0.8;
407407 pointer-events: none;
412412 margin: 0 auto var(--space-3);
413413 width: 52px; height: 52px;
414414 border-radius: 14px;
415 background: linear-gradient(135deg, rgba(140,109,255,0.18), rgba(54,197,214,0.12));
416 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.30);
415 background: linear-gradient(135deg, rgba(91,110,232,0.18), rgba(95,143,160,0.12));
416 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.30);
417417 display: flex;
418418 align-items: center;
419419 justify-content: center;
454454 .rs-input:focus,
455455 .rs-select:focus,
456456 .rs-textarea:focus {
457 border-color: var(--border-focus, rgba(140,109,255,0.55));
458 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
457 border-color: var(--border-focus, rgba(91,110,232,0.55));
458 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
459459 }
460460 .rs-textarea { font-size: 12px; line-height: 1.5; }
461461 .rs-inline-form { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
484484 transition: transform 120ms ease, box-shadow 120ms ease, background 120ms ease, border-color 120ms ease, color 120ms ease;
485485 }
486486 .rs-btn-primary {
487 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
487 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
488488 color: #fff;
489 box-shadow: 0 6px 18px -4px rgba(140,109,255,0.45), inset 0 1px 0 rgba(255,255,255,0.16);
489 box-shadow: 0 6px 18px -4px rgba(91,110,232,0.45), inset 0 1px 0 rgba(255,255,255,0.16);
490490 }
491491 .rs-btn-primary:hover {
492492 transform: translateY(-1px);
493 box-shadow: 0 10px 24px -6px rgba(140,109,255,0.55), inset 0 1px 0 rgba(255,255,255,0.20);
493 box-shadow: 0 10px 24px -6px rgba(91,110,232,0.55), inset 0 1px 0 rgba(255,255,255,0.20);
494494 color: #fff;
495495 text-decoration: none;
496496 }
500500 border-color: var(--border-strong);
501501 }
502502 .rs-btn-ghost:hover {
503 background: rgba(140,109,255,0.06);
504 border-color: rgba(140,109,255,0.45);
503 background: rgba(91,110,232,0.06);
504 border-color: rgba(91,110,232,0.45);
505505 color: var(--text-strong);
506506 text-decoration: none;
507507 }
Modifiedsrc/routes/saved-replies.tsx+23−23View fileUnifiedSplit
6969 position: absolute;
7070 top: 0; left: 0; right: 0;
7171 height: 2px;
72 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
72 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
7373 opacity: 0.7;
7474 pointer-events: none;
7575 }
7777 position: absolute;
7878 inset: -20% -10% auto auto;
7979 width: 380px; height: 380px;
80 background: radial-gradient(circle, rgba(140,109,255,0.20), rgba(54,197,214,0.10) 45%, transparent 70%);
80 background: radial-gradient(circle, rgba(91,110,232,0.20), rgba(95,143,160,0.10) 45%, transparent 70%);
8181 filter: blur(80px);
8282 opacity: 0.7;
8383 pointer-events: none;
102102 justify-content: center;
103103 width: 18px; height: 18px;
104104 border-radius: 6px;
105 background: rgba(140,109,255,0.14);
106 color: #b69dff;
107 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.35);
105 background: rgba(91,110,232,0.14);
106 color: #5b6ee8;
107 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.35);
108108 }
109109 .sr-crumb { color: var(--text-muted); text-decoration: none; }
110110 .sr-crumb:hover { color: var(--text); }
118118 color: var(--text-strong);
119119 }
120120 .sr-title-grad {
121 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
121 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
122122 -webkit-background-clip: text;
123123 background-clip: text;
124124 -webkit-text-fill-color: transparent;
191191 justify-content: center;
192192 width: 26px; height: 26px;
193193 border-radius: 8px;
194 background: rgba(140,109,255,0.12);
195 color: #b69dff;
196 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.28);
194 background: rgba(91,110,232,0.12);
195 color: #5b6ee8;
196 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.28);
197197 flex-shrink: 0;
198198 }
199199 .sr-section-sub {
243243 }
244244 .sr-input:focus,
245245 .sr-textarea:focus {
246 border-color: var(--border-focus, rgba(140,109,255,0.55));
247 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
246 border-color: var(--border-focus, rgba(91,110,232,0.55));
247 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
248248 }
249249 .sr-hint {
250250 font-size: 11.5px;
270270 transition: border-color 120ms ease, box-shadow 120ms ease;
271271 }
272272 .sr-card[open] {
273 border-color: rgba(140,109,255,0.32);
273 border-color: rgba(91,110,232,0.32);
274274 box-shadow: 0 8px 24px -10px rgba(0,0,0,0.32);
275275 }
276276 .sr-card-summary {
290290 gap: 6px;
291291 padding: 4px 10px;
292292 border-radius: 9999px;
293 background: linear-gradient(135deg, rgba(140,109,255,0.18), rgba(54,197,214,0.14));
294 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.32);
293 background: linear-gradient(135deg, rgba(91,110,232,0.18), rgba(95,143,160,0.14));
294 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.32);
295295 color: #e9d5ff;
296296 font-family: var(--font-mono);
297297 font-size: 12.5px;
343343 transition: transform 120ms ease, box-shadow 120ms ease, background 120ms ease, border-color 120ms ease, color 120ms ease;
344344 }
345345 .sr-btn-primary {
346 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
346 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
347347 color: #fff;
348 box-shadow: 0 6px 18px -4px rgba(140,109,255,0.45), inset 0 1px 0 rgba(255,255,255,0.16);
348 box-shadow: 0 6px 18px -4px rgba(91,110,232,0.45), inset 0 1px 0 rgba(255,255,255,0.16);
349349 }
350350 .sr-btn-primary:hover {
351351 transform: translateY(-1px);
352 box-shadow: 0 10px 24px -6px rgba(140,109,255,0.55), inset 0 1px 0 rgba(255,255,255,0.20);
352 box-shadow: 0 10px 24px -6px rgba(91,110,232,0.55), inset 0 1px 0 rgba(255,255,255,0.20);
353353 color: #fff;
354354 text-decoration: none;
355355 }
359359 border-color: var(--border-strong);
360360 }
361361 .sr-btn-ghost:hover {
362 background: rgba(140,109,255,0.06);
363 border-color: rgba(140,109,255,0.45);
362 background: rgba(91,110,232,0.06);
363 border-color: rgba(91,110,232,0.45);
364364 color: var(--text-strong);
365365 text-decoration: none;
366366 }
391391 position: absolute;
392392 top: 0; left: 0; right: 0;
393393 height: 2px;
394 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
394 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
395395 opacity: 0.55;
396396 pointer-events: none;
397397 }
401401 margin: 0 auto 18px;
402402 border-radius: 9999px;
403403 background:
404 radial-gradient(circle at 35% 35%, rgba(140,109,255,0.55), rgba(54,197,214,0.25) 55%, transparent 75%);
404 radial-gradient(circle at 35% 35%, rgba(91,110,232,0.55), rgba(95,143,160,0.25) 55%, transparent 75%);
405405 box-shadow:
406 0 0 32px rgba(140,109,255,0.35),
407 inset 0 0 0 1px rgba(140,109,255,0.35);
406 0 0 32px rgba(91,110,232,0.35),
407 inset 0 0 0 1px rgba(91,110,232,0.35);
408408 display: flex;
409409 align-items: center;
410410 justify-content: center;
Modifiedsrc/routes/search.tsx+23−23View fileUnifiedSplit
4343 position: absolute;
4444 top: 0; left: 0; right: 0;
4545 height: 2px;
46 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
46 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
4747 opacity: 0.7;
4848 pointer-events: none;
4949 }
5858 .search-page-hero-orb {
5959 position: absolute;
6060 inset: 0;
61 background: radial-gradient(circle, rgba(140,109,255,0.18), rgba(54,197,214,0.09) 45%, transparent 70%);
61 background: radial-gradient(circle, rgba(91,110,232,0.18), rgba(95,143,160,0.09) 45%, transparent 70%);
6262 filter: blur(80px);
6363 opacity: 0.7;
6464 animation: searchPageHeroOrb 14s ease-in-out infinite;
135135 .search-page-input::placeholder { color: var(--text-muted); }
136136 .search-page-input:focus {
137137 outline: none;
138 border-color: rgba(140,109,255,0.55);
139 box-shadow: 0 0 0 4px rgba(140,109,255,0.12);
138 border-color: rgba(91,110,232,0.55);
139 box-shadow: 0 0 0 4px rgba(91,110,232,0.12);
140140 }
141141 .search-page-kbd {
142142 position: absolute;
194194 text-decoration: none;
195195 }
196196 .search-page-tab.is-active {
197 background: rgba(140,109,255,0.14);
197 background: rgba(91,110,232,0.14);
198198 color: var(--text-strong);
199199 }
200200 .search-page-tab-count {
206206 border-radius: 9999px;
207207 }
208208 .search-page-tab.is-active .search-page-tab-count {
209 background: rgba(140,109,255,0.20);
209 background: rgba(91,110,232,0.20);
210210 color: var(--text);
211211 }
212212
230230 }
231231 .search-page-result:hover {
232232 transform: translateY(-1px);
233 border-color: rgba(140,109,255,0.45);
234 box-shadow: 0 10px 22px -16px rgba(0,0,0,0.5), 0 0 18px -8px rgba(140,109,255,0.18);
233 border-color: rgba(91,110,232,0.45);
234 box-shadow: 0 10px 22px -16px rgba(0,0,0,0.5), 0 0 18px -8px rgba(91,110,232,0.18);
235235 text-decoration: none;
236236 }
237237 .search-page-result-avatar {
245245 font-weight: 700;
246246 font-size: 15px;
247247 color: #fff;
248 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
248 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
249249 flex-shrink: 0;
250250 letter-spacing: -0.01em;
251251 }
311311 border: 1px solid rgba(52,211,153,0.30);
312312 }
313313 .search-page-state-closed {
314 background: rgba(140,109,255,0.12);
315 color: #b69dff;
316 border: 1px solid rgba(140,109,255,0.30);
314 background: rgba(91,110,232,0.12);
315 color: #5b6ee8;
316 border: 1px solid rgba(91,110,232,0.30);
317317 }
318318 .search-page-state-merged {
319 background: rgba(54,197,214,0.10);
320 color: #36c5d6;
321 border: 1px solid rgba(54,197,214,0.28);
319 background: rgba(95,143,160,0.10);
320 color: #5f8fa0;
321 border: 1px solid rgba(95,143,160,0.28);
322322 }
323323 .search-page-state-draft {
324324 background: rgba(255,255,255,0.04);
369369 white-space: pre;
370370 }
371371 .search-page-code-mark {
372 background: rgba(140,109,255,0.22);
372 background: rgba(91,110,232,0.22);
373373 color: var(--text-strong);
374374 border-radius: 3px;
375375 padding: 0 2px;
391391 position: absolute;
392392 top: 0; left: 0; right: 0;
393393 height: 2px;
394 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
394 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
395395 opacity: 0.55;
396396 pointer-events: none;
397397 }
614614 >
615615 <defs>
616616 <linearGradient id="searchEmptyG" x1="0" y1="0" x2="96" y2="96" gradientUnits="userSpaceOnUse">
617 <stop stop-color="#8c6dff" />
618 <stop offset="1" stop-color="#36c5d6" />
617 <stop stop-color="#5b6ee8" />
618 <stop offset="1" stop-color="#5f8fa0" />
619619 </linearGradient>
620620 </defs>
621621 <circle cx="40" cy="40" r="22" stroke="url(#searchEmptyG)" stroke-width="4" />
718718 >
719719 <defs>
720720 <linearGradient id="searchIdleG" x1="0" y1="0" x2="96" y2="96" gradientUnits="userSpaceOnUse">
721 <stop stop-color="#8c6dff" />
722 <stop offset="1" stop-color="#36c5d6" />
721 <stop stop-color="#5b6ee8" />
722 <stop offset="1" stop-color="#5f8fa0" />
723723 </linearGradient>
724724 </defs>
725725 <circle cx="42" cy="42" r="22" stroke="url(#searchIdleG)" stroke-width="4" />
910910 >
911911 <defs>
912912 <linearGradient id="searchCodeG" x1="0" y1="0" x2="96" y2="96" gradientUnits="userSpaceOnUse">
913 <stop stop-color="#8c6dff" />
914 <stop offset="1" stop-color="#36c5d6" />
913 <stop stop-color="#5b6ee8" />
914 <stop offset="1" stop-color="#5f8fa0" />
915915 </linearGradient>
916916 </defs>
917917 <path d="M34 30L18 48L34 66" stroke="url(#searchCodeG)" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" />
Modifiedsrc/routes/security.tsx+4−4View fileUnifiedSplit
157157 margin-bottom: var(--space-4);
158158 padding: 16px 20px;
159159 border-radius: 14px;
160 background: linear-gradient(135deg, rgba(52,211,153,0.10), rgba(54,197,214,0.06));
160 background: linear-gradient(135deg, rgba(52,211,153,0.10), rgba(95,143,160,0.06));
161161 border: 1px solid rgba(52,211,153,0.32);
162162 color: #bbf7d0;
163163 }
168168 display: inline-flex;
169169 align-items: center;
170170 justify-content: center;
171 background: linear-gradient(135deg, #34d399 0%, #36c5d6 100%);
171 background: linear-gradient(135deg, #34d399 0%, #5f8fa0 100%);
172172 color: #04231a;
173173 font-size: 18px;
174174 box-shadow: 0 0 0 4px rgba(52,211,153,0.16);
288288 .svp-how {
289289 margin-top: var(--space-4);
290290 padding: 14px 18px;
291 background: rgba(140,109,255,0.06);
292 border: 1px solid rgba(140,109,255,0.18);
291 background: rgba(91,110,232,0.06);
292 border: 1px solid rgba(91,110,232,0.18);
293293 border-radius: 12px;
294294 font-size: 13px;
295295 color: var(--text-muted);
Modifiedsrc/routes/semantic-search.tsx+16−16View fileUnifiedSplit
7070 .ss-eyebrow-dot {
7171 width: 8px; height: 8px;
7272 border-radius: 9999px;
73 background: linear-gradient(135deg, #8c6dff, #36c5d6);
74 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
73 background: linear-gradient(135deg, #5b6ee8, #5f8fa0);
74 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
7575 }
7676 .ss-title {
7777 font-family: var(--font-display);
8383 color: var(--text-strong);
8484 }
8585 .ss-title-grad {
86 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
86 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
8787 -webkit-background-clip: text;
8888 background-clip: text;
8989 -webkit-text-fill-color: transparent;
112112 .ss-provider .dot {
113113 width: 6px; height: 6px;
114114 border-radius: 9999px;
115 background: linear-gradient(135deg, #8c6dff, #36c5d6);
115 background: linear-gradient(135deg, #5b6ee8, #5f8fa0);
116116 }
117117
118118 .ss-banner {
160160 transition: border-color 120ms ease, background 120ms ease, box-shadow 120ms ease;
161161 }
162162 .ss-search-input:focus {
163 border-color: rgba(140,109,255,0.55);
163 border-color: rgba(91,110,232,0.55);
164164 background: rgba(255,255,255,0.05);
165 box-shadow: 0 0 0 3px rgba(140,109,255,0.20);
165 box-shadow: 0 0 0 3px rgba(91,110,232,0.20);
166166 }
167167 .ss-btn {
168168 display: inline-flex;
182182 white-space: nowrap;
183183 }
184184 .ss-btn-primary {
185 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
185 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
186186 color: #ffffff;
187 box-shadow: 0 6px 18px -6px rgba(140,109,255,0.55), inset 0 1px 0 rgba(255,255,255,0.16);
187 box-shadow: 0 6px 18px -6px rgba(91,110,232,0.55), inset 0 1px 0 rgba(255,255,255,0.16);
188188 }
189189 .ss-btn-primary:hover {
190190 transform: translateY(-1px);
191 box-shadow: 0 10px 24px -8px rgba(140,109,255,0.65), inset 0 1px 0 rgba(255,255,255,0.20);
191 box-shadow: 0 10px 24px -8px rgba(91,110,232,0.65), inset 0 1px 0 rgba(255,255,255,0.20);
192192 text-decoration: none;
193193 color: #ffffff;
194194 }
201201 border-radius: 9px;
202202 }
203203 .ss-btn-ghost:hover {
204 background: rgba(140,109,255,0.06);
205 border-color: rgba(140,109,255,0.45);
204 background: rgba(91,110,232,0.06);
205 border-color: rgba(91,110,232,0.45);
206206 color: var(--text-strong);
207207 text-decoration: none;
208208 }
263263 gap: 5px;
264264 padding: 2px 9px;
265265 border-radius: 9999px;
266 background: rgba(54,197,214,0.12);
266 background: rgba(95,143,160,0.12);
267267 color: #67e8f9;
268 box-shadow: inset 0 0 0 1px rgba(54,197,214,0.30);
268 box-shadow: inset 0 0 0 1px rgba(95,143,160,0.30);
269269 font-family: var(--font-mono);
270270 font-size: 11px;
271271 font-weight: 600;
300300 position: absolute;
301301 inset: -40% 25% auto 25%;
302302 height: 300px;
303 background: radial-gradient(circle, rgba(140,109,255,0.18), rgba(54,197,214,0.10) 45%, transparent 70%);
303 background: radial-gradient(circle, rgba(91,110,232,0.18), rgba(95,143,160,0.10) 45%, transparent 70%);
304304 filter: blur(72px);
305305 opacity: 0.7;
306306 pointer-events: none;
311311 width: 56px; height: 56px;
312312 margin: 0 auto 14px;
313313 border-radius: 9999px;
314 background: linear-gradient(135deg, rgba(140,109,255,0.25), rgba(54,197,214,0.20));
315 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.40);
314 background: linear-gradient(135deg, rgba(91,110,232,0.25), rgba(95,143,160,0.20));
315 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.40);
316316 display: inline-flex;
317317 align-items: center;
318318 justify-content: center;
Modifiedsrc/routes/settings-2fa.tsx+24−24View fileUnifiedSplit
6666 position: absolute;
6767 top: 0; left: 0; right: 0;
6868 height: 2px;
69 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
69 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
7070 opacity: 0.7;
7171 pointer-events: none;
7272 }
7474 position: absolute;
7575 inset: -20% -10% auto auto;
7676 width: 380px; height: 380px;
77 background: radial-gradient(circle, rgba(140,109,255,0.20), rgba(54,197,214,0.10) 45%, transparent 70%);
77 background: radial-gradient(circle, rgba(91,110,232,0.20), rgba(95,143,160,0.10) 45%, transparent 70%);
7878 filter: blur(80px);
7979 opacity: 0.7;
8080 pointer-events: none;
9999 justify-content: center;
100100 width: 18px; height: 18px;
101101 border-radius: 6px;
102 background: rgba(140,109,255,0.14);
103 color: #b69dff;
104 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.35);
102 background: rgba(91,110,232,0.14);
103 color: #5b6ee8;
104 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.35);
105105 }
106106 .tfa-crumb { color: var(--text-muted); text-decoration: none; }
107107 .tfa-crumb:hover { color: var(--text); text-decoration: none; }
115115 color: var(--text-strong);
116116 }
117117 .tfa-title-grad {
118 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
118 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
119119 -webkit-background-clip: text;
120120 background-clip: text;
121121 -webkit-text-fill-color: transparent;
175175 }
176176 .tfa-status.is-on {
177177 border-color: rgba(52,211,153,0.32);
178 background: linear-gradient(135deg, rgba(52,211,153,0.08) 0%, rgba(15,17,26,0) 60%), var(--bg-elevated);
178 background: linear-gradient(135deg, rgba(52,211,153,0.08) 0%, rgba(22,27,34,0) 60%), var(--bg-elevated);
179179 }
180180 .tfa-status.is-off {
181181 border-color: rgba(251,191,36,0.32);
182 background: linear-gradient(135deg, rgba(251,191,36,0.06) 0%, rgba(15,17,26,0) 60%), var(--bg-elevated);
182 background: linear-gradient(135deg, rgba(251,191,36,0.06) 0%, rgba(22,27,34,0) 60%), var(--bg-elevated);
183183 }
184184 .tfa-status.is-pending {
185 border-color: rgba(54,197,214,0.30);
186 background: linear-gradient(135deg, rgba(54,197,214,0.07) 0%, rgba(15,17,26,0) 60%), var(--bg-elevated);
185 border-color: rgba(95,143,160,0.30);
186 background: linear-gradient(135deg, rgba(95,143,160,0.07) 0%, rgba(22,27,34,0) 60%), var(--bg-elevated);
187187 }
188188 .tfa-status-mark {
189189 flex-shrink: 0;
204204 box-shadow: 0 8px 20px -8px rgba(251,191,36,0.55), inset 0 1px 0 rgba(255,255,255,0.20);
205205 }
206206 .tfa-status-mark.is-pending {
207 background: linear-gradient(135deg, #36c5d6 0%, #0ea5e9 100%);
208 box-shadow: 0 8px 20px -8px rgba(54,197,214,0.55), inset 0 1px 0 rgba(255,255,255,0.20);
207 background: linear-gradient(135deg, #5f8fa0 0%, #0ea5e9 100%);
208 box-shadow: 0 8px 20px -8px rgba(95,143,160,0.55), inset 0 1px 0 rgba(255,255,255,0.20);
209209 }
210210 .tfa-status-text { flex: 1; min-width: 220px; }
211211 .tfa-status-headline {
258258 justify-content: center;
259259 width: 26px; height: 26px;
260260 border-radius: 8px;
261 background: rgba(140,109,255,0.12);
262 color: #b69dff;
263 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.28);
261 background: rgba(91,110,232,0.12);
262 color: #5b6ee8;
263 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.28);
264264 flex-shrink: 0;
265265 }
266266 .tfa-section-sub {
297297 width: 32px;
298298 height: 32px;
299299 border-radius: 9999px;
300 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
300 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
301301 color: #fff;
302302 font-family: var(--font-display);
303303 font-weight: 700;
305305 display: flex;
306306 align-items: center;
307307 justify-content: center;
308 box-shadow: 0 4px 12px -4px rgba(140,109,255,0.45), inset 0 1px 0 rgba(255,255,255,0.18);
308 box-shadow: 0 4px 12px -4px rgba(91,110,232,0.45), inset 0 1px 0 rgba(255,255,255,0.18);
309309 }
310310 .tfa-step-title {
311311 margin: 0 0 6px;
374374 box-sizing: border-box;
375375 }
376376 .tfa-input:focus {
377 border-color: var(--border-focus, rgba(140,109,255,0.55));
378 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
377 border-color: var(--border-focus, rgba(91,110,232,0.55));
378 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
379379 }
380380 .tfa-input.is-code {
381381 letter-spacing: 0.5em;
404404 transition: transform 120ms ease, box-shadow 120ms ease, background 120ms ease, border-color 120ms ease, color 120ms ease;
405405 }
406406 .tfa-btn-primary {
407 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
407 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
408408 color: #fff;
409 box-shadow: 0 6px 18px -4px rgba(140,109,255,0.45), inset 0 1px 0 rgba(255,255,255,0.16);
409 box-shadow: 0 6px 18px -4px rgba(91,110,232,0.45), inset 0 1px 0 rgba(255,255,255,0.16);
410410 }
411411 .tfa-btn-primary:hover {
412412 transform: translateY(-1px);
413 box-shadow: 0 10px 24px -6px rgba(140,109,255,0.55), inset 0 1px 0 rgba(255,255,255,0.20);
413 box-shadow: 0 10px 24px -6px rgba(91,110,232,0.55), inset 0 1px 0 rgba(255,255,255,0.20);
414414 color: #fff;
415415 text-decoration: none;
416416 }
420420 border-color: var(--border-strong);
421421 }
422422 .tfa-btn-ghost:hover {
423 background: rgba(140,109,255,0.06);
424 border-color: rgba(140,109,255,0.45);
423 background: rgba(91,110,232,0.06);
424 border-color: rgba(91,110,232,0.45);
425425 color: var(--text-strong);
426426 text-decoration: none;
427427 }
Modifiedsrc/routes/settings-agents.tsx+5−5View fileUnifiedSplit
6565 font-family: var(--font-mono, monospace);
6666 font-size: 12px;
6767 color: var(--accent);
68 background: rgba(140, 109, 255, 0.08);
68 background: rgba(91,110,232, 0.08);
6969 padding: 2px 8px;
7070 border-radius: 6px;
7171 }
8080 }
8181 .sa-budget-fill {
8282 height: 100%;
83 background: linear-gradient(90deg, #36c5d6, #8c6dff);
83 background: linear-gradient(90deg, #5f8fa0, #5b6ee8);
8484 transition: width 0.3s;
8585 }
8686 .sa-budget-fill.over { background: #ef4444; }
298298 }
299299 .sa-subnav a:hover {
300300 color: var(--text-strong);
301 border-color: rgba(140,109,255,0.45);
301 border-color: rgba(91,110,232,0.45);
302302 text-decoration: none;
303303 }
304304 .sa-subnav a.is-active {
305 background: linear-gradient(135deg, rgba(140,109,255,0.14), rgba(54,197,214,0.10));
305 background: linear-gradient(135deg, rgba(91,110,232,0.14), rgba(95,143,160,0.10));
306306 color: var(--text-strong);
307 border-color: rgba(140,109,255,0.45);
307 border-color: rgba(91,110,232,0.45);
308308 font-weight: 600;
309309 }
310310 </style>
Modifiedsrc/routes/settings-integrations.tsx+14−14View fileUnifiedSplit
4747 .chati-hero::before {
4848 content: '';
4949 position: absolute; top: 0; left: 0; right: 0; height: 2px;
50 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
50 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
5151 opacity: 0.75;
5252 pointer-events: none;
5353 }
5454 .chati-hero-orb {
5555 position: absolute; inset: -30% -10% auto auto;
5656 width: 360px; height: 360px;
57 background: radial-gradient(circle, rgba(140,109,255,0.20), rgba(54,197,214,0.10) 45%, transparent 70%);
57 background: radial-gradient(circle, rgba(91,110,232,0.20), rgba(95,143,160,0.10) 45%, transparent 70%);
5858 filter: blur(80px);
5959 opacity: 0.65;
6060 pointer-events: none;
7474 .chati-eyebrow-icon {
7575 display: inline-flex; align-items: center; justify-content: center;
7676 width: 18px; height: 18px; border-radius: 6px;
77 background: rgba(140,109,255,0.14);
78 color: #b69dff;
79 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.32);
77 background: rgba(91,110,232,0.14);
78 color: #5b6ee8;
79 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.32);
8080 }
8181 .chati-title {
8282 font-family: var(--font-display);
8888 color: var(--text-strong);
8989 }
9090 .chati-grad {
91 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
91 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
9292 -webkit-background-clip: text;
9393 background-clip: text;
9494 -webkit-text-fill-color: transparent;
122122 transition: border-color 120ms ease, transform 120ms ease;
123123 }
124124 .chati-cta:hover {
125 border-color: rgba(140,109,255,0.5);
125 border-color: rgba(91,110,232,0.5);
126126 transform: translateY(-1px);
127127 }
128128 .chati-cta-icon {
260260 transition: border-color 120ms ease, box-shadow 120ms ease;
261261 }
262262 .chati-channel-input:focus {
263 border-color: rgba(140,109,255,0.6);
264 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
263 border-color: rgba(91,110,232,0.6);
264 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
265265 }
266266 .chati-btn {
267267 display: inline-flex; align-items: center; gap: 6px;
288288 }
289289 .chati-btn-danger:hover { background: rgba(248,113,113,0.14); border-color: rgba(248,113,113,0.50); color: #fecaca; }
290290 .chati-btn-primary {
291 background: linear-gradient(135deg, #8c6dff 0%, #6d4ee0 100%);
291 background: linear-gradient(135deg, #5b6ee8 0%, #6d4ee0 100%);
292292 color: #fff;
293 border-color: rgba(140,109,255,0.55);
294 box-shadow: 0 4px 14px -6px rgba(140,109,255,0.45);
293 border-color: rgba(91,110,232,0.55);
294 box-shadow: 0 4px 14px -6px rgba(91,110,232,0.45);
295295 }
296296 .chati-btn-primary:hover { filter: brightness(1.05); }
297297
341341 transition: border-color 120ms ease, box-shadow 120ms ease;
342342 }
343343 .chati-input:focus, .chati-select:focus {
344 border-color: rgba(140,109,255,0.6);
345 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
344 border-color: rgba(91,110,232,0.6);
345 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
346346 }
347347 .chati-form-foot {
348348 display: flex; justify-content: flex-end; margin-top: var(--space-3);
Modifiedsrc/routes/settings-sessions.tsx+3−3View fileUnifiedSplit
6262 .sessions-hero::before {
6363 content: '';
6464 position: absolute; top: 0; left: 0; right: 0; height: 2px;
65 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
65 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
6666 opacity: 0.7; pointer-events: none;
6767 }
6868 .sessions-hero h1 { font-size: 1.5rem; font-weight: 700; margin: 0 0 4px; }
7575 padding: var(--space-4) var(--space-5);
7676 display: flex; align-items: center; gap: 16px;
7777 }
78 .session-card.current { border-color: #8c6dff44; background: #8c6dff0a; }
78 .session-card.current { border-color: #5b6ee844; background: #5b6ee80a; }
7979 .session-icon {
8080 width: 40px; height: 40px; border-radius: 8px;
8181 background: var(--bg-canvas); display: flex; align-items: center;
8585 .session-device { font-weight: 600; font-size: 14px; display: flex; align-items: center; gap: 8px; }
8686 .session-current-badge {
8787 font-size: 11px; font-weight: 600; padding: 2px 8px;
88 background: #8c6dff22; color: #a388ff; border-radius: 100px;
88 background: #5b6ee822; color: #a388ff; border-radius: 100px;
8989 text-transform: uppercase; letter-spacing: 0.04em;
9090 }
9191 .session-meta { font-size: 12px; color: var(--text-muted); margin-top: 2px; }
Modifiedsrc/routes/settings.tsx+32−32View fileUnifiedSplit
5252 position: absolute;
5353 top: 0; left: 0; right: 0;
5454 height: 2px;
55 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
55 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
5656 opacity: 0.7;
5757 pointer-events: none;
5858 }
6666 .settings-hero-orb {
6767 position: absolute;
6868 inset: 0;
69 background: radial-gradient(circle, rgba(140,109,255,0.18), rgba(54,197,214,0.09) 45%, transparent 70%);
69 background: radial-gradient(circle, rgba(91,110,232,0.18), rgba(95,143,160,0.09) 45%, transparent 70%);
7070 filter: blur(80px);
7171 opacity: 0.65;
7272 animation: settingsHeroOrb 14s ease-in-out infinite;
104104 color: var(--text-strong);
105105 }
106106 .settings-hero-title .gradient-text {
107 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
107 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
108108 -webkit-background-clip: text;
109109 background-clip: text;
110110 -webkit-text-fill-color: transparent;
150150 }
151151 .settings-subnav a.is-active {
152152 color: var(--text-strong);
153 background: rgba(140,109,255,0.16);
154 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.35);
153 background: rgba(91,110,232,0.16);
154 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.35);
155155 }
156156
157157 /* ─── Section cards ─── */
244244 .settings-input:focus,
245245 .settings-textarea:focus {
246246 border-color: var(--border-focus);
247 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
247 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
248248 }
249249 .settings-input:disabled {
250250 color: var(--text-muted);
307307 margin-bottom: var(--space-3);
308308 }
309309 .settings-sleep-state.is-on {
310 background: rgba(140,109,255,0.14);
311 color: #b69dff;
312 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.35);
310 background: rgba(91,110,232,0.14);
311 color: #5b6ee8;
312 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.35);
313313 }
314314 .settings-sleep-state.is-off {
315315 background: rgba(255,255,255,0.04);
345345 }
346346 .settings-hour-input:focus {
347347 border-color: var(--border-focus);
348 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
348 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
349349 }
350350 .settings-hour-row a {
351351 color: var(--text-link);
674674 style={
675675 "display:flex;align-items:center;justify-content:space-between;" +
676676 "gap:12px;margin-bottom:var(--space-4);padding:14px 16px;" +
677 "background:linear-gradient(135deg,rgba(140,109,255,0.10),rgba(54,197,214,0.08));" +
678 "border:1px solid rgba(140,109,255,0.35);border-radius:12px;" +
677 "background:linear-gradient(135deg,rgba(91,110,232,0.10),rgba(95,143,160,0.08));" +
678 "border:1px solid rgba(91,110,232,0.35);border-radius:12px;" +
679679 "color:var(--text-strong);text-decoration:none;font-size:14px;"
680680 }
681681 >
13441344 position: absolute;
13451345 top: 0; left: 0; right: 0;
13461346 height: 2px;
1347 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
1347 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
13481348 opacity: 0.7;
13491349 pointer-events: none;
13501350 }
13521352 position: absolute;
13531353 inset: -20% -10% auto auto;
13541354 width: 380px; height: 380px;
1355 background: radial-gradient(circle, rgba(140,109,255,0.20), rgba(54,197,214,0.10) 45%, transparent 70%);
1355 background: radial-gradient(circle, rgba(91,110,232,0.20), rgba(95,143,160,0.10) 45%, transparent 70%);
13561356 filter: blur(80px);
13571357 opacity: 0.7;
13581358 pointer-events: none;
13771377 justify-content: center;
13781378 width: 18px; height: 18px;
13791379 border-radius: 6px;
1380 background: rgba(140,109,255,0.14);
1381 color: #b69dff;
1382 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.35);
1380 background: rgba(91,110,232,0.14);
1381 color: #5b6ee8;
1382 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.35);
13831383 }
13841384 .notifset-crumb { color: var(--text-muted); text-decoration: none; }
13851385 .notifset-crumb:hover { color: var(--text); }
13931393 color: var(--text-strong);
13941394 }
13951395 .notifset-title-grad {
1396 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
1396 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
13971397 -webkit-background-clip: text;
13981398 background-clip: text;
13991399 -webkit-text-fill-color: transparent;
14421442 gap: 12px;
14431443 }
14441444 .notifset-channel.is-active {
1445 border-color: rgba(140,109,255,0.32);
1446 background: linear-gradient(135deg, rgba(140,109,255,0.08) 0%, rgba(15,17,26,0) 60%), var(--bg-elevated);
1445 border-color: rgba(91,110,232,0.32);
1446 background: linear-gradient(135deg, rgba(91,110,232,0.08) 0%, rgba(22,27,34,0) 60%), var(--bg-elevated);
14471447 }
14481448 .notifset-channel-icon {
14491449 flex-shrink: 0;
14501450 width: 36px; height: 36px;
14511451 border-radius: 10px;
1452 background: linear-gradient(135deg, rgba(140,109,255,0.22), rgba(54,197,214,0.16));
1453 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.32);
1452 background: linear-gradient(135deg, rgba(91,110,232,0.22), rgba(95,143,160,0.16));
1453 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.32);
14541454 display: flex;
14551455 align-items: center;
14561456 justify-content: center;
15201520 justify-content: center;
15211521 width: 26px; height: 26px;
15221522 border-radius: 8px;
1523 background: rgba(140,109,255,0.12);
1524 color: #b69dff;
1525 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.28);
1523 background: rgba(91,110,232,0.12);
1524 color: #5b6ee8;
1525 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.28);
15261526 flex-shrink: 0;
15271527 }
15281528 .notifset-section-sub {
15571557 transition: border-color 120ms ease, background 120ms ease;
15581558 }
15591559 .notifset-rule:last-child { margin-bottom: 0; }
1560 .notifset-rule:hover { border-color: rgba(140,109,255,0.32); background: rgba(140,109,255,0.04); }
1560 .notifset-rule:hover { border-color: rgba(91,110,232,0.32); background: rgba(91,110,232,0.04); }
15611561 .notifset-rule input[type="checkbox"] {
15621562 margin-top: 2px;
15631563 flex-shrink: 0;
1564 accent-color: #8c6dff;
1564 accent-color: #5b6ee8;
15651565 width: 16px;
15661566 height: 16px;
15671567 }
16071607 transition: border-color 120ms ease, box-shadow 120ms ease;
16081608 }
16091609 .notifset-hour input[type="number"]:focus {
1610 border-color: var(--border-focus, rgba(140,109,255,0.55));
1611 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
1610 border-color: var(--border-focus, rgba(91,110,232,0.55));
1611 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
16121612 }
16131613 .notifset-hour a { color: var(--text-link, var(--accent)); font-size: 12.5px; text-decoration: none; }
16141614 .notifset-hour a:hover { text-decoration: underline; }
16281628 cursor: pointer;
16291629 font-family: inherit;
16301630 line-height: 1;
1631 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
1631 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
16321632 color: #fff;
1633 box-shadow: 0 6px 18px -4px rgba(140,109,255,0.45), inset 0 1px 0 rgba(255,255,255,0.16);
1633 box-shadow: 0 6px 18px -4px rgba(91,110,232,0.45), inset 0 1px 0 rgba(255,255,255,0.16);
16341634 transition: transform 120ms ease, box-shadow 120ms ease;
16351635 }
16361636 .notifset-btn:hover {
16371637 transform: translateY(-1px);
1638 box-shadow: 0 10px 24px -6px rgba(140,109,255,0.55), inset 0 1px 0 rgba(255,255,255,0.20);
1638 box-shadow: 0 10px 24px -6px rgba(91,110,232,0.55), inset 0 1px 0 rgba(255,255,255,0.20);
16391639 }
16401640`;
16411641
Modifiedsrc/routes/ship-agent.tsx+6−6View fileUnifiedSplit
3636 position: absolute;
3737 top: 0; left: 0; right: 0;
3838 height: 2px;
39 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
39 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
4040 opacity: 0.7;
4141 pointer-events: none;
4242 }
7474 transition: all 120ms ease;
7575 }
7676 .ship-phase.is-active {
77 background: rgba(140,109,255,0.14);
78 border-color: rgba(140,109,255,0.45);
77 background: rgba(91,110,232,0.14);
78 border-color: rgba(91,110,232,0.45);
7979 color: var(--text-strong);
8080 }
8181 .ship-phase.is-done {
129129 margin-top: 10px;
130130 padding: 8px 16px;
131131 border-radius: 8px;
132 background: rgba(140,109,255,0.14);
133 border: 1px solid rgba(140,109,255,0.35);
132 background: rgba(91,110,232,0.14);
133 border: 1px solid rgba(91,110,232,0.35);
134134 color: var(--accent);
135135 font-weight: 600;
136136 text-decoration: none;
137137 font-size: 13.5px;
138138 transition: background 120ms;
139139 }
140 .ship-pr-link:hover { background: rgba(140,109,255,0.22); text-decoration: none; }
140 .ship-pr-link:hover { background: rgba(91,110,232,0.22); text-decoration: none; }
141141`;
142142
143143const PHASES: Array<{ key: string; label: string }> = [
Modifiedsrc/routes/signing-keys.tsx+15−15View fileUnifiedSplit
6262 justify-content: center;
6363 width: 18px; height: 18px;
6464 border-radius: 6px;
65 background: rgba(140,109,255,0.14);
66 color: #b69dff;
67 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.35);
65 background: rgba(91,110,232,0.14);
66 color: #5b6ee8;
67 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.35);
6868 }
6969 .sk-title {
7070 font-size: clamp(24px, 3.2vw, 32px);
7676 color: var(--text-strong);
7777 }
7878 .sk-title-grad {
79 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
79 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
8080 -webkit-background-clip: text;
8181 background-clip: text;
8282 -webkit-text-fill-color: transparent;
208208 align-items: center;
209209 padding: 2px 9px;
210210 border-radius: 9999px;
211 background: rgba(140,109,255,0.12);
212 border: 1px solid rgba(140,109,255,0.30);
211 background: rgba(91,110,232,0.12);
212 border: 1px solid rgba(91,110,232,0.30);
213213 color: #c4b5fd;
214214 font-size: 10.5px;
215215 font-weight: 700;
277277 color: #fecaca;
278278 }
279279 .sk-btn-primary {
280 background: linear-gradient(135deg, #8c6dff 0%, #6d4ee0 100%);
280 background: linear-gradient(135deg, #5b6ee8 0%, #6d4ee0 100%);
281281 color: #ffffff;
282 border-color: rgba(140,109,255,0.55);
283 box-shadow: 0 6px 18px -6px rgba(140,109,255,0.45);
282 border-color: rgba(91,110,232,0.55);
283 box-shadow: 0 6px 18px -6px rgba(91,110,232,0.45);
284284 }
285285 .sk-btn-primary:hover {
286286 transform: translateY(-1px);
287 box-shadow: 0 10px 24px -8px rgba(140,109,255,0.55);
287 box-shadow: 0 10px 24px -8px rgba(91,110,232,0.55);
288288 }
289289 .sk-card-form { margin: 0; }
290290
303303 position: absolute;
304304 inset: -40% -10% auto auto;
305305 width: 320px; height: 320px;
306 background: radial-gradient(circle, rgba(140,109,255,0.20), rgba(54,197,214,0.10) 45%, transparent 70%);
306 background: radial-gradient(circle, rgba(91,110,232,0.20), rgba(95,143,160,0.10) 45%, transparent 70%);
307307 filter: blur(70px);
308308 opacity: 0.6;
309309 pointer-events: none;
357357 justify-content: center;
358358 width: 26px; height: 26px;
359359 border-radius: 8px;
360 background: rgba(140,109,255,0.12);
361 color: #b69dff;
362 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.28);
360 background: rgba(91,110,232,0.12);
361 color: #5b6ee8;
362 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.28);
363363 }
364364 .sk-form-body { padding: var(--space-4) var(--space-5); }
365365 .sk-field { margin-bottom: var(--space-4); }
391391 .sk-select:focus,
392392 .sk-textarea:focus {
393393 border-color: var(--border-focus);
394 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
394 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
395395 }
396396 .sk-textarea {
397397 resize: vertical;
Modifiedsrc/routes/sleep-mode.tsx+15−15View fileUnifiedSplit
357357 position: absolute;
358358 top: 0; left: 0; right: 0;
359359 height: 2px;
360 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
360 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
361361 opacity: 0.7;
362362 pointer-events: none;
363363 }
365365 position: absolute;
366366 inset: -25% -10% auto auto;
367367 width: 460px; height: 460px;
368 background: radial-gradient(circle, rgba(140,109,255,0.22), rgba(54,197,214,0.10) 45%, transparent 70%);
368 background: radial-gradient(circle, rgba(91,110,232,0.22), rgba(95,143,160,0.10) 45%, transparent 70%);
369369 filter: blur(80px);
370370 opacity: 0.7;
371371 pointer-events: none;
387387 justify-content: center;
388388 width: 18px; height: 18px;
389389 border-radius: 6px;
390 background: rgba(140,109,255,0.14);
391 color: #b69dff;
392 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.35);
390 background: rgba(91,110,232,0.14);
391 color: #5b6ee8;
392 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.35);
393393 }
394394 .sleep-title {
395395 font-size: clamp(32px, 5vw, 52px);
401401 color: var(--text-strong);
402402 }
403403 .sleep-title-grad {
404 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
404 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
405405 -webkit-background-clip: text;
406406 background-clip: text;
407407 -webkit-text-fill-color: transparent;
446446 text-decoration: none;
447447 }
448448 .sleep-btn-primary {
449 border-color: rgba(140,109,255,0.45);
450 background: linear-gradient(135deg, rgba(140,109,255,0.20), rgba(54,197,214,0.14));
449 border-color: rgba(91,110,232,0.45);
450 background: linear-gradient(135deg, rgba(91,110,232,0.20), rgba(95,143,160,0.14));
451451 color: var(--text-strong);
452452 }
453453 .sleep-btn-primary:hover {
454 border-color: rgba(140,109,255,0.65);
455 background: linear-gradient(135deg, rgba(140,109,255,0.28), rgba(54,197,214,0.20));
454 border-color: rgba(91,110,232,0.65);
455 background: linear-gradient(135deg, rgba(91,110,232,0.28), rgba(95,143,160,0.20));
456456 }
457457 .sleep-btn-lg { padding: 12px 20px; font-size: 15px; }
458458
589589 justify-content: center;
590590 width: 30px; height: 30px;
591591 border-radius: 50%;
592 background: linear-gradient(135deg, rgba(140,109,255,0.22), rgba(54,197,214,0.16));
592 background: linear-gradient(135deg, rgba(91,110,232,0.22), rgba(95,143,160,0.16));
593593 color: #c5b3ff;
594 border: 1px solid rgba(140,109,255,0.40);
594 border: 1px solid rgba(91,110,232,0.40);
595595 font-family: var(--font-display);
596596 font-weight: 700;
597597 font-size: 14px;
685685 position: absolute;
686686 inset: -40% -10% auto auto;
687687 width: 320px; height: 320px;
688 background: radial-gradient(circle, rgba(140,109,255,0.20), rgba(54,197,214,0.10) 45%, transparent 70%);
688 background: radial-gradient(circle, rgba(91,110,232,0.20), rgba(95,143,160,0.10) 45%, transparent 70%);
689689 filter: blur(70px);
690690 opacity: 0.55;
691691 pointer-events: none;
740740 .sleep-cta {
741741 margin-top: var(--space-6);
742742 padding: var(--space-6) var(--space-5);
743 background: linear-gradient(135deg, rgba(140,109,255,0.14), rgba(54,197,214,0.08));
744 border: 1px solid rgba(140,109,255,0.30);
743 background: linear-gradient(135deg, rgba(91,110,232,0.14), rgba(95,143,160,0.08));
744 border: 1px solid rgba(91,110,232,0.30);
745745 border-radius: 16px;
746746 text-align: center;
747747 }
Modifiedsrc/routes/specs.tsx+19−19View fileUnifiedSplit
213213 .specs-eyebrow-dot {
214214 width: 8px; height: 8px;
215215 border-radius: 9999px;
216 background: linear-gradient(135deg, #8c6dff, #36c5d6);
217 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
216 background: linear-gradient(135deg, #5b6ee8, #5f8fa0);
217 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
218218 }
219219 .specs-pill-experimental {
220220 display: inline-flex;
240240 color: var(--text-strong);
241241 }
242242 .specs-title-grad {
243 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
243 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
244244 -webkit-background-clip: text;
245245 background-clip: text;
246246 -webkit-text-fill-color: transparent;
278278 line-height: 1.45;
279279 }
280280 .specs-banner.is-info {
281 border-color: rgba(54,197,214,0.40);
282 background: rgba(54,197,214,0.08);
281 border-color: rgba(95,143,160,0.40);
282 background: rgba(95,143,160,0.08);
283283 color: #cffafe;
284284 }
285285 .specs-banner.is-error {
314314 position: absolute;
315315 top: 0; left: 0; right: 0;
316316 height: 2px;
317 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
317 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
318318 opacity: 0.55;
319319 pointer-events: none;
320320 }
377377 .specs-select:focus,
378378 .specs-textarea:focus {
379379 outline: none;
380 border-color: rgba(140,109,255,0.55);
380 border-color: rgba(91,110,232,0.55);
381381 background: rgba(255,255,255,0.05);
382 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
382 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
383383 }
384384 .specs-select {
385385 appearance: none;
424424 transition: transform 120ms ease, box-shadow 120ms ease, background 120ms ease, border-color 120ms ease, color 120ms ease;
425425 }
426426 .specs-btn-primary {
427 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
427 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
428428 color: #ffffff;
429 box-shadow: 0 6px 18px -6px rgba(140,109,255,0.50), inset 0 1px 0 rgba(255,255,255,0.16);
429 box-shadow: 0 6px 18px -6px rgba(91,110,232,0.50), inset 0 1px 0 rgba(255,255,255,0.16);
430430 }
431431 .specs-btn-primary:hover {
432432 transform: translateY(-1px);
433 box-shadow: 0 10px 24px -8px rgba(140,109,255,0.60), inset 0 1px 0 rgba(255,255,255,0.20);
433 box-shadow: 0 10px 24px -8px rgba(91,110,232,0.60), inset 0 1px 0 rgba(255,255,255,0.20);
434434 color: #ffffff;
435435 text-decoration: none;
436436 }
468468 justify-content: center;
469469 width: 24px; height: 24px;
470470 border-radius: 7px;
471 background: rgba(140,109,255,0.16);
471 background: rgba(91,110,232,0.16);
472472 color: #c4b5fd;
473 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.32);
473 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.32);
474474 font-family: var(--font-mono);
475475 font-size: 12px;
476476 font-weight: 700;
10571057 background: rgba(34,197,94,0.12);
10581058 }
10591059 .sp-dot.is-active {
1060 border-color: #8c6dff;
1061 background: rgba(140,109,255,0.14);
1060 border-color: #5b6ee8;
1061 background: rgba(91,110,232,0.14);
10621062 animation: sp-pulse 1.6s ease-in-out infinite;
10631063 }
10641064 .sp-dot.is-error {
10661066 background: rgba(248,113,113,0.12);
10671067 }
10681068 @keyframes sp-pulse {
1069 0%, 100% { box-shadow: 0 0 0 0 rgba(140,109,255,0.35); }
1070 50% { box-shadow: 0 0 0 8px rgba(140,109,255,0); }
1069 0%, 100% { box-shadow: 0 0 0 0 rgba(91,110,232,0.35); }
1070 50% { box-shadow: 0 0 0 8px rgba(91,110,232,0); }
10711071 }
10721072 .sp-step-body {
10731073 padding-top: 8px;
15321532
15331533 const statusBadgeColors: Record<SpecStatus, string> = {
15341534 draft: "rgba(148,163,184,0.16)",
1535 ready: "rgba(54,197,214,0.18)",
1536 building: "rgba(140,109,255,0.20)",
1535 ready: "rgba(95,143,160,0.18)",
1536 building: "rgba(91,110,232,0.20)",
15371537 shipped: "rgba(34,197,94,0.18)",
15381538 failed: "rgba(248,113,113,0.18)",
15391539 };
Modifiedsrc/routes/sponsors.tsx+16−16View fileUnifiedSplit
5555 position: absolute;
5656 top: 0; left: 0; right: 0;
5757 height: 2px;
58 background: linear-gradient(90deg, transparent 0%, #ff7eb6 30%, #8c6dff 70%, transparent 100%);
58 background: linear-gradient(90deg, transparent 0%, #ff7eb6 30%, #5b6ee8 70%, transparent 100%);
5959 opacity: 0.7;
6060 pointer-events: none;
6161 }
6363 position: absolute;
6464 inset: -20% -10% auto auto;
6565 width: 380px; height: 380px;
66 background: radial-gradient(circle, rgba(255,126,182,0.18), rgba(140,109,255,0.12) 45%, transparent 70%);
66 background: radial-gradient(circle, rgba(255,126,182,0.18), rgba(91,110,232,0.12) 45%, transparent 70%);
6767 filter: blur(80px);
6868 opacity: 0.7;
6969 pointer-events: none;
111111 color: var(--text-strong);
112112 }
113113 .spons-title-grad {
114 background-image: linear-gradient(135deg, #ff7eb6 0%, #a48bff 50%, #36c5d6 100%);
114 background-image: linear-gradient(135deg, #ff7eb6 0%, #5b6ee8 50%, #5f8fa0 100%);
115115 -webkit-background-clip: text;
116116 background-clip: text;
117117 -webkit-text-fill-color: transparent;
154154 }
155155 .spons-status.is-on {
156156 border-color: rgba(255,126,182,0.32);
157 background: linear-gradient(135deg, rgba(255,126,182,0.08) 0%, rgba(15,17,26,0) 60%), var(--bg-elevated);
157 background: linear-gradient(135deg, rgba(255,126,182,0.08) 0%, rgba(22,27,34,0) 60%), var(--bg-elevated);
158158 }
159159 .spons-status.is-empty {
160160 border-color: rgba(251,191,36,0.30);
161 background: linear-gradient(135deg, rgba(251,191,36,0.06) 0%, rgba(15,17,26,0) 60%), var(--bg-elevated);
161 background: linear-gradient(135deg, rgba(251,191,36,0.06) 0%, rgba(22,27,34,0) 60%), var(--bg-elevated);
162162 }
163163 .spons-status-row { display: flex; align-items: center; gap: var(--space-4); flex-wrap: wrap; }
164164 .spons-status-mark {
169169 align-items: center;
170170 justify-content: center;
171171 color: #fff;
172 background: linear-gradient(135deg, #ff7eb6 0%, #8c6dff 100%);
172 background: linear-gradient(135deg, #ff7eb6 0%, #5b6ee8 100%);
173173 box-shadow: 0 8px 20px -8px rgba(255,126,182,0.50), inset 0 1px 0 rgba(255,255,255,0.18);
174174 }
175175 .spons-status.is-empty .spons-status-mark {
207207 line-height: 1;
208208 color: var(--text-strong);
209209 margin-top: 2px;
210 background-image: linear-gradient(135deg, #ff7eb6 0%, #8c6dff 100%);
210 background-image: linear-gradient(135deg, #ff7eb6 0%, #5b6ee8 100%);
211211 -webkit-background-clip: text;
212212 background-clip: text;
213213 -webkit-text-fill-color: transparent;
238238 position: absolute;
239239 top: 0; left: 0; right: 0;
240240 height: 2px;
241 background: linear-gradient(90deg, transparent, #ff7eb6 30%, #8c6dff 70%, transparent);
241 background: linear-gradient(90deg, transparent, #ff7eb6 30%, #5b6ee8 70%, transparent);
242242 opacity: 0.55;
243243 }
244244 .spons-tier-name {
260260 font-size: 30px;
261261 font-weight: 800;
262262 letter-spacing: -0.025em;
263 background-image: linear-gradient(135deg, #ff7eb6 0%, #a48bff 50%, #36c5d6 100%);
263 background-image: linear-gradient(135deg, #ff7eb6 0%, #5b6ee8 50%, #5f8fa0 100%);
264264 -webkit-background-clip: text;
265265 background-clip: text;
266266 -webkit-text-fill-color: transparent;
311311 box-sizing: border-box;
312312 }
313313 .spons-tier-select:focus {
314 border-color: var(--border-focus, rgba(140,109,255,0.55));
315 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
314 border-color: var(--border-focus, rgba(91,110,232,0.55));
315 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
316316 }
317317
318318 /* ─── Buttons ─── */
333333 transition: transform 120ms ease, box-shadow 120ms ease, background 120ms ease, border-color 120ms ease, color 120ms ease;
334334 }
335335 .spons-btn-primary {
336 background: linear-gradient(135deg, #ff7eb6 0%, #8c6dff 60%, #36c5d6 100%);
336 background: linear-gradient(135deg, #ff7eb6 0%, #5b6ee8 60%, #5f8fa0 100%);
337337 color: #fff;
338338 box-shadow: 0 6px 18px -4px rgba(255,126,182,0.45), inset 0 1px 0 rgba(255,255,255,0.20);
339339 }
349349 border-color: var(--border-strong);
350350 }
351351 .spons-btn-ghost:hover {
352 background: rgba(140,109,255,0.06);
353 border-color: rgba(140,109,255,0.45);
352 background: rgba(91,110,232,0.06);
353 border-color: rgba(91,110,232,0.45);
354354 color: var(--text-strong);
355355 text-decoration: none;
356356 }
447447 position: absolute;
448448 inset: -30% auto auto -10%;
449449 width: 260px; height: 260px;
450 background: radial-gradient(circle, rgba(255,126,182,0.16), rgba(140,109,255,0.08) 45%, transparent 70%);
450 background: radial-gradient(circle, rgba(255,126,182,0.16), rgba(91,110,232,0.08) 45%, transparent 70%);
451451 filter: blur(60px);
452452 opacity: 0.8;
453453 pointer-events: none;
458458 margin: 0 auto var(--space-3);
459459 width: 52px; height: 52px;
460460 border-radius: 14px;
461 background: linear-gradient(135deg, rgba(255,126,182,0.18), rgba(140,109,255,0.12));
461 background: linear-gradient(135deg, rgba(255,126,182,0.18), rgba(91,110,232,0.12));
462462 box-shadow: inset 0 0 0 1px rgba(255,126,182,0.30);
463463 display: flex;
464464 align-items: center;
Modifiedsrc/routes/sso.tsx+17−17View fileUnifiedSplit
7979 position: absolute;
8080 top: 0; left: 0; right: 0;
8181 height: 2px;
82 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
82 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
8383 opacity: 0.7;
8484 pointer-events: none;
8585 }
8787 position: absolute;
8888 inset: -20% -10% auto auto;
8989 width: 380px; height: 380px;
90 background: radial-gradient(circle, rgba(140,109,255,0.20), rgba(54,197,214,0.10) 45%, transparent 70%);
90 background: radial-gradient(circle, rgba(91,110,232,0.20), rgba(95,143,160,0.10) 45%, transparent 70%);
9191 filter: blur(80px);
9292 opacity: 0.7;
9393 pointer-events: none;
109109 .sso-eyebrow-dot {
110110 width: 8px; height: 8px;
111111 border-radius: 9999px;
112 background: linear-gradient(135deg, #8c6dff, #36c5d6);
113 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
112 background: linear-gradient(135deg, #5b6ee8, #5f8fa0);
113 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
114114 }
115115 .sso-title {
116116 font-size: clamp(26px, 3.5vw, 38px);
122122 color: var(--text-strong);
123123 }
124124 .sso-title-grad {
125 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
125 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
126126 -webkit-background-clip: text;
127127 background-clip: text;
128128 -webkit-text-fill-color: transparent;
234234 gap: var(--space-3);
235235 align-items: center;
236236 padding: 12px 14px;
237 background: rgba(140,109,255,0.05);
238 border: 1px dashed rgba(140,109,255,0.30);
237 background: rgba(91,110,232,0.05);
238 border: 1px dashed rgba(91,110,232,0.30);
239239 border-radius: 12px;
240240 flex-wrap: wrap;
241241 }
283283 }
284284 .sso-provider:hover {
285285 transform: translateY(-1px);
286 border-color: rgba(140,109,255,0.45);
287 background: rgba(140,109,255,0.06);
286 border-color: rgba(91,110,232,0.45);
287 background: rgba(91,110,232,0.06);
288288 }
289289 .sso-provider-icon {
290290 flex-shrink: 0;
293293 display: flex;
294294 align-items: center;
295295 justify-content: center;
296 background: linear-gradient(135deg, rgba(140,109,255,0.22), rgba(54,197,214,0.14));
297 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.30);
296 background: linear-gradient(135deg, rgba(91,110,232,0.22), rgba(95,143,160,0.14));
297 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.30);
298298 font-family: var(--font-display);
299299 font-size: 16px;
300300 font-weight: 800;
345345 }
346346 .sso-input:focus {
347347 border-color: var(--border-focus);
348 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
348 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
349349 }
350350 .sso-hint {
351351 font-size: 11.5px;
388388 transition: transform 120ms ease, box-shadow 120ms ease, background 120ms ease, border-color 120ms ease, color 120ms ease;
389389 }
390390 .sso-btn-primary {
391 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
391 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
392392 color: #ffffff;
393 box-shadow: 0 6px 18px -6px rgba(140,109,255,0.50), inset 0 1px 0 rgba(255,255,255,0.16);
393 box-shadow: 0 6px 18px -6px rgba(91,110,232,0.50), inset 0 1px 0 rgba(255,255,255,0.16);
394394 }
395395 .sso-btn-primary:hover {
396396 transform: translateY(-1px);
397 box-shadow: 0 10px 24px -8px rgba(140,109,255,0.60), inset 0 1px 0 rgba(255,255,255,0.20);
397 box-shadow: 0 10px 24px -8px rgba(91,110,232,0.60), inset 0 1px 0 rgba(255,255,255,0.20);
398398 color: #ffffff;
399399 text-decoration: none;
400400 }
404404 border-color: var(--border-strong);
405405 }
406406 .sso-btn-ghost:hover {
407 background: rgba(140,109,255,0.06);
408 border-color: rgba(140,109,255,0.45);
407 background: rgba(91,110,232,0.06);
408 border-color: rgba(91,110,232,0.45);
409409 color: var(--text-strong);
410410 text-decoration: none;
411411 }
Modifiedsrc/routes/stale-branches.tsx+2−2View fileUnifiedSplit
140140 position: absolute;
141141 top: 0; left: 0; right: 0;
142142 height: 2px;
143 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
143 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
144144 opacity: 0.7;
145145 pointer-events: none;
146146 }
260260 word-break: break-all;
261261 }
262262 .sb-pr-link {
263 color: var(--text-link, #8c6dff);
263 color: var(--text-link, #5b6ee8);
264264 text-decoration: none;
265265 font-size: 13px;
266266 }
Modifiedsrc/routes/standups.tsx+14−14View fileUnifiedSplit
226226 border-radius: 22px;
227227 padding: 56px 48px;
228228 background: linear-gradient(135deg,
229 rgba(140, 109, 255, 0.18) 0%,
230 rgba(54, 197, 214, 0.14) 60%,
229 rgba(91,110,232, 0.18) 0%,
230 rgba(95,143,160, 0.14) 60%,
231231 rgba(255, 198, 88, 0.10) 100%),
232232 var(--bg-secondary, #14172a);
233233 border: 1px solid var(--border, #2b2f44);
234 box-shadow: 0 12px 60px -24px rgba(140, 109, 255, 0.35);
234 box-shadow: 0 12px 60px -24px rgba(91,110,232, 0.35);
235235}
236236.standup-hero-orb {
237237 position: absolute;
241241 height: 360px;
242242 border-radius: 9999px;
243243 background: radial-gradient(circle at 30% 30%,
244 rgba(140, 109, 255, 0.45) 0%,
245 rgba(54, 197, 214, 0.18) 45%,
244 rgba(91,110,232, 0.45) 0%,
245 rgba(95,143,160, 0.18) 45%,
246246 transparent 75%);
247247 filter: blur(8px);
248248 z-index: 0;
271271 width: 8px;
272272 height: 8px;
273273 border-radius: 9999px;
274 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
275 box-shadow: 0 0 8px rgba(140, 109, 255, 0.6);
274 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
275 box-shadow: 0 0 8px rgba(91,110,232, 0.6);
276276}
277277.standup-title {
278278 font-family: var(--font-display, "Inter Tight", Inter, system-ui, sans-serif);
284284 color: var(--text-strong, #fff);
285285}
286286.standup-title-grad {
287 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
287 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
288288 -webkit-background-clip: text;
289289 background-clip: text;
290290 color: transparent;
318318}
319319.standup-btn:hover { transform: translateY(-1px); background: rgba(255,255,255,0.07); }
320320.standup-btn-primary {
321 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
321 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
322322 border-color: transparent;
323323 color: #0d1117;
324324}
339339 background: rgba(255, 255, 255, 0.03);
340340 color: var(--text-muted, #aab0c2);
341341}
342.standup-pill.is-on { color: #8c6dff; border-color: rgba(140, 109, 255, 0.4); }
342.standup-pill.is-on { color: #5b6ee8; border-color: rgba(91,110,232, 0.4); }
343343.standup-pill.is-off { opacity: .8; }
344344.standup-dot { width: 7px; height: 7px; border-radius: 9999px; background: currentColor; }
345345.standup-featured {
355355 top: 0; left: 0;
356356 height: 3px;
357357 width: 100%;
358 background: linear-gradient(90deg, #8c6dff 0%, #36c5d6 50%, transparent 100%);
358 background: linear-gradient(90deg, #5b6ee8 0%, #5f8fa0 50%, transparent 100%);
359359 border-top-left-radius: 18px;
360360 border-top-right-radius: 18px;
361361}
475475 letter-spacing: 0.03em;
476476 text-transform: uppercase;
477477}
478.standup-tag-daily { background: rgba(140, 109, 255, 0.15); color: #b9a4ff; }
479.standup-tag-weekly { background: rgba(54, 197, 214, 0.15); color: #6fd8e6; }
478.standup-tag-daily { background: rgba(91,110,232, 0.15); color: #b9a4ff; }
479.standup-tag-weekly { background: rgba(95,143,160, 0.15); color: #6fd8e6; }
480480.standup-card-stamp { font-variant-numeric: tabular-nums; }
481481.standup-card-ai {
482482 padding: 2px 8px;
483483 border-radius: 9999px;
484 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
484 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
485485 color: #0d1117;
486486 font-weight: 700;
487487 font-size: 10.5px;
Modifiedsrc/routes/status.tsx+15−15View fileUnifiedSplit
833833 position: absolute;
834834 top: 0; left: 0; right: 0;
835835 height: 2px;
836 background: linear-gradient(90deg, transparent 0%, #34d399 30%, #36c5d6 70%, transparent 100%);
836 background: linear-gradient(90deg, transparent 0%, #34d399 30%, #5f8fa0 70%, transparent 100%);
837837 opacity: 0.75;
838838 pointer-events: none;
839839 }
844844 position: absolute;
845845 inset: -20% -10% auto auto;
846846 width: 380px; height: 380px;
847 background: radial-gradient(circle, rgba(52,211,153,0.20), rgba(54,197,214,0.10) 45%, transparent 70%);
847 background: radial-gradient(circle, rgba(52,211,153,0.20), rgba(95,143,160,0.10) 45%, transparent 70%);
848848 filter: blur(80px);
849849 opacity: 0.7;
850850 pointer-events: none;
904904 box-shadow: 0 0 0 5px rgba(248,113,113,0.18);
905905 }
906906 .status-title-grad {
907 background-image: linear-gradient(135deg, #6ee7b7 0%, #34d399 50%, #36c5d6 100%);
907 background-image: linear-gradient(135deg, #6ee7b7 0%, #34d399 50%, #5f8fa0 100%);
908908 -webkit-background-clip: text;
909909 background-clip: text;
910910 -webkit-text-fill-color: transparent;
12471247 font-family: var(--font-mono);
12481248 font-size: 11.5px;
12491249 font-weight: 600;
1250 background: rgba(140,109,255,0.10);
1250 background: rgba(91,110,232,0.10);
12511251 color: #c5b3ff;
1252 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.28);
1252 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.28);
12531253 letter-spacing: 0.02em;
12541254 flex-shrink: 0;
12551255 align-self: flex-start;
12671267
12681268 /* ─── Subscribe section ─── */
12691269 .status-subscribe-section {
1270 background: linear-gradient(135deg, rgba(140,109,255,0.06) 0%, rgba(52,211,153,0.04) 100%);
1271 border-color: rgba(140,109,255,0.20);
1270 background: linear-gradient(135deg, rgba(91,110,232,0.06) 0%, rgba(52,211,153,0.04) 100%);
1271 border-color: rgba(91,110,232,0.20);
12721272 }
12731273 .status-sub-form { max-width: 520px; }
12741274 .status-sub-label {
12961296 min-width: 0;
12971297 }
12981298 .status-sub-input:focus {
1299 border-color: rgba(140,109,255,0.60);
1300 box-shadow: 0 0 0 3px rgba(140,109,255,0.12);
1299 border-color: rgba(91,110,232,0.60);
1300 box-shadow: 0 0 0 3px rgba(91,110,232,0.12);
13011301 }
13021302 .status-sub-input::placeholder { color: var(--text-faint); }
13031303 .status-sub-btn {
13051305 align-items: center;
13061306 gap: 7px;
13071307 padding: 9px 18px;
1308 background: rgba(140,109,255,0.16);
1309 border: 1px solid rgba(140,109,255,0.32);
1308 background: rgba(91,110,232,0.16);
1309 border: 1px solid rgba(91,110,232,0.32);
13101310 border-radius: 8px;
13111311 color: #c5b3ff;
13121312 font-size: 13.5px;
13161316 transition: background 150ms, border-color 150ms;
13171317 }
13181318 .status-sub-btn:hover {
1319 background: rgba(140,109,255,0.26);
1320 border-color: rgba(140,109,255,0.50);
1319 background: rgba(91,110,232,0.26);
1320 border-color: rgba(91,110,232,0.50);
13211321 }
13221322 .status-sub-hint {
13231323 margin: 8px 0 0;
13391339 position: absolute;
13401340 inset: -40% -10% auto auto;
13411341 width: 320px; height: 320px;
1342 background: radial-gradient(circle, rgba(52,211,153,0.18), rgba(54,197,214,0.10) 45%, transparent 70%);
1342 background: radial-gradient(circle, rgba(52,211,153,0.18), rgba(95,143,160,0.10) 45%, transparent 70%);
13431343 filter: blur(70px);
13441344 opacity: 0.55;
13451345 pointer-events: none;
14091409 text-align: center;
14101410 }
14111411 .status-foot a {
1412 color: var(--accent, #8c6dff);
1412 color: var(--accent, #5b6ee8);
14131413 text-decoration: none;
14141414 }
14151415 .status-foot a:hover { text-decoration: underline; }
Modifiedsrc/routes/symbols.tsx+18−18View fileUnifiedSplit
5858 .sym-eyebrow-dot {
5959 width: 8px; height: 8px;
6060 border-radius: 9999px;
61 background: linear-gradient(135deg, #8c6dff, #36c5d6);
62 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
61 background: linear-gradient(135deg, #5b6ee8, #5f8fa0);
62 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
6363 }
6464 .sym-title {
6565 font-family: var(--font-display);
7171 color: var(--text-strong);
7272 }
7373 .sym-title-grad {
74 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
74 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
7575 -webkit-background-clip: text;
7676 background-clip: text;
7777 -webkit-text-fill-color: transparent;
107107 white-space: nowrap;
108108 }
109109 .sym-btn-primary {
110 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
110 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
111111 color: #ffffff;
112 box-shadow: 0 6px 18px -6px rgba(140,109,255,0.50), inset 0 1px 0 rgba(255,255,255,0.16);
112 box-shadow: 0 6px 18px -6px rgba(91,110,232,0.50), inset 0 1px 0 rgba(255,255,255,0.16);
113113 }
114114 .sym-btn-primary:hover {
115115 transform: translateY(-1px);
116 box-shadow: 0 10px 24px -8px rgba(140,109,255,0.60), inset 0 1px 0 rgba(255,255,255,0.20);
116 box-shadow: 0 10px 24px -8px rgba(91,110,232,0.60), inset 0 1px 0 rgba(255,255,255,0.20);
117117 text-decoration: none;
118118 color: #ffffff;
119119 }
123123 border-color: var(--border-strong);
124124 }
125125 .sym-btn-ghost:hover {
126 background: rgba(140,109,255,0.06);
127 border-color: rgba(140,109,255,0.45);
126 background: rgba(91,110,232,0.06);
127 border-color: rgba(91,110,232,0.45);
128128 color: var(--text-strong);
129129 text-decoration: none;
130130 }
176176 transition: border-color 120ms ease, background 120ms ease, box-shadow 120ms ease;
177177 }
178178 .sym-search-input:focus {
179 border-color: rgba(140,109,255,0.55);
179 border-color: rgba(91,110,232,0.55);
180180 background: rgba(255,255,255,0.05);
181 box-shadow: 0 0 0 3px rgba(140,109,255,0.20);
181 box-shadow: 0 0 0 3px rgba(91,110,232,0.20);
182182 }
183183
184184 /* ─── Summary tiles ─── */
201201 position: absolute;
202202 top: 0; left: 0; right: 0;
203203 height: 1.5px;
204 background: linear-gradient(90deg, transparent 0%, #8c6dff 50%, #36c5d6 100%);
204 background: linear-gradient(90deg, transparent 0%, #5b6ee8 50%, #5f8fa0 100%);
205205 opacity: 0.40;
206206 pointer-events: none;
207207 }
260260 font-weight: 700;
261261 }
262262 .sym-kind.is-function {
263 background: rgba(140,109,255,0.14);
263 background: rgba(91,110,232,0.14);
264264 color: #c4b5fd;
265 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.32);
265 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.32);
266266 }
267267 .sym-kind.is-class {
268 background: rgba(54,197,214,0.14);
268 background: rgba(95,143,160,0.14);
269269 color: #67e8f9;
270 box-shadow: inset 0 0 0 1px rgba(54,197,214,0.32);
270 box-shadow: inset 0 0 0 1px rgba(95,143,160,0.32);
271271 }
272272 .sym-kind.is-interface {
273273 background: rgba(34,211,238,0.10);
360360 position: absolute;
361361 inset: -40% 25% auto 25%;
362362 height: 300px;
363 background: radial-gradient(circle, rgba(140,109,255,0.18), rgba(54,197,214,0.10) 45%, transparent 70%);
363 background: radial-gradient(circle, rgba(91,110,232,0.18), rgba(95,143,160,0.10) 45%, transparent 70%);
364364 filter: blur(72px);
365365 opacity: 0.7;
366366 pointer-events: none;
371371 width: 56px; height: 56px;
372372 margin: 0 auto 14px;
373373 border-radius: 9999px;
374 background: linear-gradient(135deg, rgba(140,109,255,0.25), rgba(54,197,214,0.20));
375 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.40);
374 background: linear-gradient(135deg, rgba(91,110,232,0.25), rgba(95,143,160,0.20));
375 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.40);
376376 display: inline-flex;
377377 align-items: center;
378378 justify-content: center;
Modifiedsrc/routes/team-collaborators.tsx+16−16View fileUnifiedSplit
7272 position: absolute;
7373 top: 0; left: 0; right: 0;
7474 height: 2px;
75 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
75 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
7676 opacity: 0.75;
7777 pointer-events: none;
7878 }
8080 position: absolute;
8181 inset: -25% -10% auto auto;
8282 width: 360px; height: 360px;
83 background: radial-gradient(circle, rgba(140,109,255,0.18), rgba(54,197,214,0.09) 45%, transparent 70%);
83 background: radial-gradient(circle, rgba(91,110,232,0.18), rgba(95,143,160,0.09) 45%, transparent 70%);
8484 filter: blur(80px);
8585 opacity: 0.7;
8686 pointer-events: none;
115115 color: var(--text-strong);
116116 }
117117 .tc-title-grad {
118 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
118 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
119119 -webkit-background-clip: text;
120120 background-clip: text;
121121 -webkit-text-fill-color: transparent;
186186 justify-content: center;
187187 width: 26px; height: 26px;
188188 border-radius: 50%;
189 background: linear-gradient(135deg, rgba(140,109,255,0.20), rgba(54,197,214,0.14));
189 background: linear-gradient(135deg, rgba(91,110,232,0.20), rgba(95,143,160,0.14));
190190 color: #c5b3ff;
191 border: 1px solid rgba(140,109,255,0.40);
191 border: 1px solid rgba(91,110,232,0.40);
192192 font-family: var(--font-display);
193193 font-weight: 700;
194194 font-size: 12.5px;
238238 .tc-field-select:focus {
239239 outline: none;
240240 border-color: var(--accent);
241 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
241 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
242242 }
243243 .tc-submit {
244244 appearance: none;
245 border: 1px solid rgba(140,109,255,0.45);
246 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
245 border: 1px solid rgba(91,110,232,0.45);
246 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
247247 color: #fff;
248248 padding: 11px 22px;
249249 border-radius: 10px;
251251 font-weight: 700;
252252 font-size: 14px;
253253 cursor: pointer;
254 box-shadow: 0 8px 20px -8px rgba(140,109,255,0.55);
254 box-shadow: 0 8px 20px -8px rgba(91,110,232,0.55);
255255 transition: transform 140ms ease, box-shadow 140ms ease, filter 140ms ease;
256256 }
257257 .tc-submit:hover {
258258 transform: translateY(-1px);
259 box-shadow: 0 12px 24px -8px rgba(140,109,255,0.7);
259 box-shadow: 0 12px 24px -8px rgba(91,110,232,0.7);
260260 filter: brightness(1.06);
261261 }
262262 .tc-submit:focus-visible {
263 outline: 3px solid rgba(140,109,255,0.45);
263 outline: 3px solid rgba(91,110,232,0.45);
264264 outline-offset: 2px;
265265 }
266266
315315 transition: border-color 140ms ease, transform 140ms ease;
316316 }
317317 .tc-row:hover {
318 border-color: rgba(140,109,255,0.35);
318 border-color: rgba(91,110,232,0.35);
319319 transform: translateY(-1px);
320320 }
321321 .tc-avatar {
328328 .tc-avatar-fallback {
329329 width: 32px; height: 32px;
330330 border-radius: 50%;
331 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
331 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
332332 color: #fff;
333333 display: inline-flex;
334334 align-items: center;
359359 font-size: 11px;
360360 padding: 2px 8px;
361361 border-radius: 999px;
362 background: rgba(140,109,255,0.10);
363 border: 1px solid rgba(140,109,255,0.30);
362 background: rgba(91,110,232,0.10);
363 border: 1px solid rgba(91,110,232,0.30);
364364 color: #c5b3ff;
365365 text-transform: uppercase;
366366 letter-spacing: 0.04em;
402402 position: absolute;
403403 inset: -50% 25% auto 25%;
404404 width: 50%; height: 200px;
405 background: radial-gradient(circle, rgba(140,109,255,0.16), transparent 65%);
405 background: radial-gradient(circle, rgba(91,110,232,0.16), transparent 65%);
406406 filter: blur(50px);
407407 opacity: 0.7;
408408 pointer-events: none;
Modifiedsrc/routes/tokens.tsx+28−28View fileUnifiedSplit
5858 position: absolute;
5959 top: 0; left: 0; right: 0;
6060 height: 2px;
61 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
61 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
6262 opacity: 0.7;
6363 pointer-events: none;
6464 }
7272 .tokens-hero-orb {
7373 position: absolute;
7474 inset: 0;
75 background: radial-gradient(circle, rgba(140,109,255,0.18), rgba(54,197,214,0.09) 45%, transparent 70%);
75 background: radial-gradient(circle, rgba(91,110,232,0.18), rgba(95,143,160,0.09) 45%, transparent 70%);
7676 filter: blur(80px);
7777 opacity: 0.65;
7878 animation: tokensHeroOrb 14s ease-in-out infinite;
105105 width: 22px;
106106 height: 22px;
107107 border-radius: 7px;
108 background: rgba(140,109,255,0.14);
109 color: #b69dff;
110 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.30);
108 background: rgba(91,110,232,0.14);
109 color: #5b6ee8;
110 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.30);
111111 flex-shrink: 0;
112112 }
113113 .tokens-hero-eyebrow-icon svg { width: 12px; height: 12px; display: block; }
126126 color: var(--text-strong);
127127 }
128128 .tokens-hero-title .tokens-gradient-text {
129 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
129 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
130130 -webkit-background-clip: text;
131131 background-clip: text;
132132 -webkit-text-fill-color: transparent;
180180 border-radius: 14px;
181181 margin-bottom: var(--space-5);
182182 background:
183 linear-gradient(180deg, rgba(140,109,255,0.06) 0%, rgba(54,197,214,0.03) 100%),
183 linear-gradient(180deg, rgba(91,110,232,0.06) 0%, rgba(95,143,160,0.03) 100%),
184184 var(--bg-elevated);
185 border: 1px solid rgba(140,109,255,0.30);
185 border: 1px solid rgba(91,110,232,0.30);
186186 overflow: hidden;
187187 }
188188 .tokens-reveal::before {
190190 position: absolute;
191191 top: 0; left: 0; right: 0;
192192 height: 2px;
193 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
193 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
194194 opacity: 0.85;
195195 pointer-events: none;
196196 }
199199 font-weight: 600;
200200 letter-spacing: 0.08em;
201201 text-transform: uppercase;
202 color: #b69dff;
202 color: #5b6ee8;
203203 margin-bottom: 6px;
204204 }
205205 .tokens-reveal-title {
327327 letter-spacing: 0.01em;
328328 padding: 2px 8px;
329329 border-radius: 9999px;
330 background: rgba(140,109,255,0.12);
331 color: #b69dff;
332 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.28);
330 background: rgba(91,110,232,0.12);
331 color: #5b6ee8;
332 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.28);
333333 }
334334 .tokens-scope-chip.is-admin {
335335 background: rgba(248,113,113,0.10);
337337 box-shadow: inset 0 0 0 1px rgba(248,113,113,0.30);
338338 }
339339 .tokens-scope-chip.is-user {
340 background: rgba(54,197,214,0.12);
340 background: rgba(95,143,160,0.12);
341341 color: #7adfe9;
342 box-shadow: inset 0 0 0 1px rgba(54,197,214,0.30);
342 box-shadow: inset 0 0 0 1px rgba(95,143,160,0.30);
343343 }
344344 .tokens-meta-sep {
345345 opacity: 0.4;
387387 position: absolute;
388388 inset: -30% 50% auto auto;
389389 width: 220px; height: 220px;
390 background: radial-gradient(circle, rgba(140,109,255,0.16), rgba(54,197,214,0.06) 45%, transparent 70%);
390 background: radial-gradient(circle, rgba(91,110,232,0.16), rgba(95,143,160,0.06) 45%, transparent 70%);
391391 filter: blur(60px);
392392 opacity: 0.7;
393393 pointer-events: none;
401401 height: 44px;
402402 margin-bottom: 12px;
403403 border-radius: 12px;
404 background: rgba(140,109,255,0.14);
405 color: #b69dff;
406 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.30);
404 background: rgba(91,110,232,0.14);
405 color: #5b6ee8;
406 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.30);
407407 }
408408 .tokens-empty-icon svg { width: 22px; height: 22px; display: block; }
409409 .tokens-empty-title {
452452 }
453453 .tokens-input:focus {
454454 border-color: var(--border-focus);
455 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
455 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
456456 }
457457
458458 /* ─── Scope picker ─── */
491491 color: var(--text-strong);
492492 }
493493 .tokens-scope-option:has(input:checked) {
494 border-color: rgba(140,109,255,0.45);
495 background: rgba(140,109,255,0.08);
494 border-color: rgba(91,110,232,0.45);
495 background: rgba(91,110,232,0.08);
496496 }
497497
498498 /* ─── Primary action button ─── */
504504 font-size: 13.5px;
505505 font-weight: 600;
506506 color: #fff;
507 background: linear-gradient(135deg, #8c6dff 0%, #6e54e0 100%);
508 border: 1px solid rgba(140,109,255,0.50);
507 background: linear-gradient(135deg, #5b6ee8 0%, #6e54e0 100%);
508 border: 1px solid rgba(91,110,232,0.50);
509509 border-radius: 10px;
510510 cursor: pointer;
511511 font-family: inherit;
512512 box-shadow:
513513 0 1px 0 rgba(255,255,255,0.10) inset,
514 0 4px 16px rgba(140,109,255,0.25);
514 0 4px 16px rgba(91,110,232,0.25);
515515 transition: transform 120ms ease, box-shadow 120ms ease, filter 120ms ease;
516516 }
517517 .tokens-submit:hover {
518518 filter: brightness(1.06);
519519 box-shadow:
520520 0 1px 0 rgba(255,255,255,0.12) inset,
521 0 6px 20px rgba(140,109,255,0.32);
521 0 6px 20px rgba(91,110,232,0.32);
522522 }
523523 .tokens-submit:active { transform: translateY(1px); }
524524 .tokens-submit:focus-visible {
525525 outline: none;
526526 box-shadow:
527 0 0 0 3px rgba(140,109,255,0.30),
528 0 4px 16px rgba(140,109,255,0.25);
527 0 0 0 3px rgba(91,110,232,0.30),
528 0 4px 16px rgba(91,110,232,0.25);
529529 }
530530
531531 /* ─── Responsive ─── */
Modifiedsrc/routes/traffic.tsx+14−14View fileUnifiedSplit
4646 position: absolute;
4747 top: 0; left: 0; right: 0;
4848 height: 2px;
49 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
49 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
5050 opacity: 0.75;
5151 pointer-events: none;
5252 }
5454 position: absolute;
5555 inset: -30% -15% auto auto;
5656 width: 460px; height: 460px;
57 background: radial-gradient(circle, rgba(140,109,255,0.22), rgba(54,197,214,0.10) 45%, transparent 70%);
57 background: radial-gradient(circle, rgba(91,110,232,0.22), rgba(95,143,160,0.10) 45%, transparent 70%);
5858 filter: blur(80px);
5959 opacity: 0.75;
6060 pointer-events: none;
8585 .traffic-eyebrow-dot {
8686 width: 8px; height: 8px;
8787 border-radius: 9999px;
88 background: linear-gradient(135deg, #8c6dff, #36c5d6);
89 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
88 background: linear-gradient(135deg, #5b6ee8, #5f8fa0);
89 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
9090 }
9191 .traffic-title {
9292 font-family: var(--font-display);
9898 color: var(--text-strong);
9999 }
100100 .traffic-title-grad {
101 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
101 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
102102 -webkit-background-clip: text;
103103 background-clip: text;
104104 -webkit-text-fill-color: transparent;
132132 font-variant-numeric: tabular-nums;
133133 transition: border-color 120ms ease, color 120ms ease, background 120ms ease;
134134 }
135 .traffic-window:hover { border-color: rgba(140,109,255,0.45); color: var(--text-strong); text-decoration: none; }
135 .traffic-window:hover { border-color: rgba(91,110,232,0.45); color: var(--text-strong); text-decoration: none; }
136136 .traffic-window.is-active {
137137 color: #fff;
138 background: linear-gradient(135deg, rgba(140,109,255,0.85), rgba(54,197,214,0.85));
139 border-color: rgba(140,109,255,0.55);
138 background: linear-gradient(135deg, rgba(91,110,232,0.85), rgba(95,143,160,0.85));
139 border-color: rgba(91,110,232,0.55);
140140 }
141141
142142 /* Stat-card grid */
238238 }
239239 .traffic-bar:hover { transform: translateY(-2px); }
240240 .traffic-bar .seg-views {
241 background: linear-gradient(180deg, #8c6dff, #6d4dff);
242 box-shadow: 0 0 12px -2px rgba(140,109,255,0.45);
241 background: linear-gradient(180deg, #5b6ee8, #6d4dff);
242 box-shadow: 0 0 12px -2px rgba(91,110,232,0.45);
243243 }
244244 .traffic-bar .seg-clones {
245 background: linear-gradient(180deg, #36c5d6, #0891b2);
245 background: linear-gradient(180deg, #5f8fa0, #0891b2);
246246 }
247247 .traffic-bar-day {
248248 margin-top: 6px;
274274 margin-right: 6px;
275275 vertical-align: middle;
276276 }
277 .traffic-legend-dot.views { background: linear-gradient(180deg, #8c6dff, #6d4dff); }
278 .traffic-legend-dot.clones { background: linear-gradient(180deg, #36c5d6, #0891b2); }
277 .traffic-legend-dot.views { background: linear-gradient(180deg, #5b6ee8, #6d4dff); }
278 .traffic-legend-dot.clones { background: linear-gradient(180deg, #5f8fa0, #0891b2); }
279279
280280 /* Two-column lists (top paths + referrers) */
281281 .traffic-twocol {
338338 position: absolute;
339339 inset: -40% -20% auto auto;
340340 width: 320px; height: 320px;
341 background: radial-gradient(circle, rgba(140,109,255,0.14), rgba(54,197,214,0.06) 45%, transparent 70%);
341 background: radial-gradient(circle, rgba(91,110,232,0.14), rgba(95,143,160,0.06) 45%, transparent 70%);
342342 filter: blur(60px);
343343 pointer-events: none;
344344 }
Modifiedsrc/routes/voice-to-pr.tsx+30−30View fileUnifiedSplit
5959 position: absolute;
6060 top: 0; left: 0; right: 0;
6161 height: 2px;
62 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
62 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
6363 opacity: 0.85;
6464 pointer-events: none;
6565 z-index: 2;
6868 position: absolute;
6969 inset: -40% -20% auto auto;
7070 width: 460px; height: 460px;
71 background: radial-gradient(circle, rgba(140,109,255,0.26), rgba(54,197,214,0.10) 45%, transparent 70%);
71 background: radial-gradient(circle, rgba(91,110,232,0.26), rgba(95,143,160,0.10) 45%, transparent 70%);
7272 filter: blur(80px);
7373 opacity: 0.75;
7474 pointer-events: none;
9393 justify-content: center;
9494 width: 18px; height: 18px;
9595 border-radius: 6px;
96 background: rgba(140,109,255,0.16);
97 color: #b69dff;
98 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.35);
96 background: rgba(91,110,232,0.16);
97 color: #5b6ee8;
98 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.35);
9999 }
100100 .voice-eyebrow-warn {
101101 display: inline-flex;
122122 color: var(--text-strong);
123123 }
124124 .voice-title-grad {
125 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
125 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
126126 -webkit-background-clip: text;
127127 background-clip: text;
128128 -webkit-text-fill-color: transparent;
151151 width: clamp(132px, 38vw, 168px);
152152 height: clamp(132px, 38vw, 168px);
153153 border-radius: 9999px;
154 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
154 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
155155 color: #fff;
156156 display: inline-flex;
157157 align-items: center;
158158 justify-content: center;
159159 box-shadow:
160 0 22px 48px -16px rgba(140,109,255,0.55),
160 0 22px 48px -16px rgba(91,110,232,0.55),
161161 0 0 0 1px rgba(255,255,255,0.10) inset,
162 0 0 64px -8px rgba(54,197,214,0.45);
162 0 0 64px -8px rgba(95,143,160,0.45);
163163 transition: transform 160ms cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 200ms ease;
164164 position: relative;
165165 font-family: inherit;
169169 .voice-mic:focus-visible {
170170 outline: none;
171171 box-shadow:
172 0 22px 48px -16px rgba(140,109,255,0.65),
173 0 0 0 4px rgba(140,109,255,0.32),
174 0 0 64px -8px rgba(54,197,214,0.55);
172 0 22px 48px -16px rgba(91,110,232,0.65),
173 0 0 0 4px rgba(91,110,232,0.32),
174 0 0 64px -8px rgba(95,143,160,0.55);
175175 }
176176 .voice-mic[data-recording="1"] {
177177 animation: voicePulse 1.6s ease-in-out infinite;
187187 @keyframes voicePulse {
188188 0%, 100% {
189189 box-shadow:
190 0 22px 48px -16px rgba(140,109,255,0.55),
190 0 22px 48px -16px rgba(91,110,232,0.55),
191191 0 0 0 1px rgba(255,255,255,0.10) inset,
192 0 0 64px -8px rgba(54,197,214,0.45);
192 0 0 64px -8px rgba(95,143,160,0.45);
193193 }
194194 50% {
195195 box-shadow:
242242 }
243243 .voice-card-dot {
244244 width: 7px; height: 7px; border-radius: 9999px;
245 background: linear-gradient(135deg, #8c6dff, #36c5d6);
246 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
245 background: linear-gradient(135deg, #5b6ee8, #5f8fa0);
246 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
247247 }
248248 .voice-transcript {
249249 min-height: 64px;
273273 }
274274 .voice-textarea:focus {
275275 outline: none;
276 border-color: rgba(140,109,255,0.55);
277 box-shadow: 0 0 0 4px rgba(140,109,255,0.18);
276 border-color: rgba(91,110,232,0.55);
277 box-shadow: 0 0 0 4px rgba(91,110,232,0.18);
278278 }
279279
280280 /* Repo picker */
300300 }
301301 .voice-picker-input:focus {
302302 outline: none;
303 border-color: rgba(140,109,255,0.55);
304 box-shadow: 0 0 0 4px rgba(140,109,255,0.18);
303 border-color: rgba(91,110,232,0.55);
304 box-shadow: 0 0 0 4px rgba(91,110,232,0.18);
305305 }
306306 .voice-picker-list {
307307 max-height: 0;
326326 .voice-picker-item:last-child { border-bottom: 0; }
327327 .voice-picker-item:hover,
328328 .voice-picker-item[data-active="1"] {
329 background: rgba(140,109,255,0.10);
329 background: rgba(91,110,232,0.10);
330330 color: var(--text-strong);
331331 }
332332
335335 margin: 12px 0;
336336 padding: 16px 18px;
337337 background:
338 linear-gradient(180deg, rgba(140,109,255,0.06), transparent 70%),
338 linear-gradient(180deg, rgba(91,110,232,0.06), transparent 70%),
339339 var(--bg-elevated);
340 border: 1px solid rgba(140,109,255,0.32);
340 border: 1px solid rgba(91,110,232,0.32);
341341 border-radius: 16px;
342 box-shadow: 0 12px 28px -16px rgba(140,109,255,0.4);
342 box-shadow: 0 12px 28px -16px rgba(91,110,232,0.4);
343343 }
344344 .voice-heard-eyebrow {
345345 font-family: var(--font-mono);
379379 vertical-align: 2px;
380380 }
381381 .voice-heard-kind[data-kind="spec"] {
382 background: rgba(140,109,255,0.14);
383 color: #b69dff;
384 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.34);
382 background: rgba(91,110,232,0.14);
383 color: #5b6ee8;
384 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.34);
385385 }
386386 .voice-heard-kind[data-kind="issue"] {
387387 background: rgba(251,191,36,0.14);
423423 .voice-btn:active { transform: translateY(0); }
424424 .voice-btn:disabled { opacity: 0.5; cursor: not-allowed; transform: none; }
425425 .voice-btn-primary {
426 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
426 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
427427 color: #fff;
428428 border-color: transparent;
429 box-shadow: 0 8px 22px -6px rgba(140,109,255,0.55), inset 0 1px 0 rgba(255,255,255,0.16);
429 box-shadow: 0 8px 22px -6px rgba(91,110,232,0.55), inset 0 1px 0 rgba(255,255,255,0.16);
430430 }
431431 .voice-btn-primary:hover {
432 box-shadow: 0 12px 28px -6px rgba(140,109,255,0.65), inset 0 1px 0 rgba(255,255,255,0.20);
432 box-shadow: 0 12px 28px -6px rgba(91,110,232,0.65), inset 0 1px 0 rgba(255,255,255,0.20);
433433 }
434434 .voice-btn-warn {
435435 background: rgba(251,191,36,0.12);
Modifiedsrc/routes/vs-github.tsx+59−59View fileUnifiedSplit
415415 <svg class="vsg-glyph vsg-glyph-yes-us" width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true">
416416 <defs>
417417 <linearGradient id={id} x1="0" y1="0" x2="1" y2="1">
418 <stop offset="0%" stop-color="#a48bff" />
419 <stop offset="100%" stop-color="#36c5d6" />
418 <stop offset="0%" stop-color="#5b6ee8" />
419 <stop offset="100%" stop-color="#5f8fa0" />
420420 </linearGradient>
421421 </defs>
422422 <circle cx="12" cy="12" r="10" fill={`url(#${id})`} opacity="0.20" />
559559 >
560560 <defs>
561561 <linearGradient id="vsg-speed-grad" x1="0" y1="0" x2="1" y2="0">
562 <stop offset="0%" stop-color="#8c6dff" />
563 <stop offset="100%" stop-color="#36c5d6" />
562 <stop offset="0%" stop-color="#5b6ee8" />
563 <stop offset="100%" stop-color="#5f8fa0" />
564564 </linearGradient>
565565 <linearGradient id="vsg-speed-glow" x1="0" y1="0" x2="1" y2="0">
566 <stop offset="0%" stop-color="#8c6dff" stop-opacity="0" />
567 <stop offset="100%" stop-color="#36c5d6" stop-opacity="0.9" />
566 <stop offset="0%" stop-color="#5b6ee8" stop-opacity="0" />
567 <stop offset="100%" stop-color="#5f8fa0" stop-opacity="0.9" />
568568 </linearGradient>
569569 </defs>
570570
12431243
12441244 /* ---------- Gradient text utility (scoped local copy) ---------- */
12451245 .vsg-page .vsg-title-grad {
1246 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
1246 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
12471247 -webkit-background-clip: text;
12481248 background-clip: text;
12491249 -webkit-text-fill-color: transparent;
12671267 position: absolute;
12681268 top: 0; left: 0; right: 0;
12691269 height: 2px;
1270 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
1270 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
12711271 opacity: 0.85;
12721272 pointer-events: none;
12731273 z-index: 2;
12761276 position: absolute;
12771277 inset: -28% -10% auto auto;
12781278 width: 620px; height: 620px;
1279 background: radial-gradient(circle, rgba(140,109,255,0.26), rgba(54,197,214,0.10) 45%, transparent 70%);
1279 background: radial-gradient(circle, rgba(91,110,232,0.26), rgba(95,143,160,0.10) 45%, transparent 70%);
12801280 filter: blur(80px);
12811281 opacity: 0.78;
12821282 pointer-events: none;
13241324 justify-content: center;
13251325 width: 18px; height: 18px;
13261326 border-radius: 6px;
1327 background: rgba(140,109,255,0.14);
1328 color: #b69dff;
1329 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.35);
1327 background: rgba(91,110,232,0.14);
1328 color: #5b6ee8;
1329 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.35);
13301330 }
13311331
13321332 .vsg-page .vsg-hero-title {
13391339 color: var(--text-strong);
13401340 }
13411341 .vsg-page .vsg-hero-mark {
1342 background: linear-gradient(180deg, transparent 60%, rgba(140,109,255,0.30) 60%);
1342 background: linear-gradient(180deg, transparent 60%, rgba(91,110,232,0.30) 60%);
13431343 padding: 0 0.08em;
13441344 border-radius: 4px;
13451345 }
14171417 .vsg-page .vsg-section-sub em {
14181418 color: var(--text-strong);
14191419 font-style: normal;
1420 background: linear-gradient(180deg, transparent 65%, rgba(140,109,255,0.30) 65%);
1420 background: linear-gradient(180deg, transparent 65%, rgba(91,110,232,0.30) 65%);
14211421 padding: 0 0.15em;
14221422 }
14231423
14461446 position: absolute;
14471447 left: 0; right: 0; bottom: -1px;
14481448 height: 1px;
1449 background: linear-gradient(90deg, transparent 0%, rgba(140,109,255,0.50) 30%, rgba(54,197,214,0.50) 70%, transparent 100%);
1449 background: linear-gradient(90deg, transparent 0%, rgba(91,110,232,0.50) 30%, rgba(95,143,160,0.50) 70%, transparent 100%);
14501450 }
14511451 .vsg-page .vsg-th {
14521452 display: inline-flex;
14601460 font-weight: 600;
14611461 }
14621462 .vsg-page .vsg-th-them, .vsg-page .vsg-th-us { text-align: left; }
1463 .vsg-page .vsg-th-us { color: #b69dff; }
1463 .vsg-page .vsg-th-us { color: #5b6ee8; }
14641464 .vsg-page .vsg-th-dot {
14651465 width: 7px; height: 7px; border-radius: 9999px;
14661466 flex-shrink: 0;
14671467 }
14681468 .vsg-page .vsg-th-dot-them { background: var(--text-faint); opacity: 0.6; }
14691469 .vsg-page .vsg-th-dot-us {
1470 background: linear-gradient(135deg, #8c6dff, #36c5d6);
1471 box-shadow: 0 0 0 3px rgba(140,109,255,0.16);
1470 background: linear-gradient(135deg, #5b6ee8, #5f8fa0);
1471 box-shadow: 0 0 0 3px rgba(91,110,232,0.16);
14721472 }
14731473
14741474 .vsg-page .vsg-cat-row {
14751475 padding: 18px 20px 10px;
14761476 border-top: 1px solid var(--border-subtle, var(--border));
1477 background: linear-gradient(90deg, rgba(140,109,255,0.06), rgba(54,197,214,0.025) 45%, transparent 100%);
1477 background: linear-gradient(90deg, rgba(91,110,232,0.06), rgba(95,143,160,0.025) 45%, transparent 100%);
14781478 }
14791479 .vsg-page .vsg-cat-row:first-of-type { border-top: none; }
14801480 .vsg-page .vsg-cat-row-shadow {
15081508 .vsg-page .vsg-cat-bar {
15091509 display: inline-block;
15101510 width: 22px; height: 2px;
1511 background: linear-gradient(90deg, #8c6dff, #36c5d6);
1511 background: linear-gradient(90deg, #5b6ee8, #5f8fa0);
15121512 border-radius: 2px;
15131513 }
15141514
15251525 .vsg-page .vsg-row:hover { background: rgba(255,255,255,0.025); }
15261526
15271527 .vsg-page .vsg-row-win {
1528 background: linear-gradient(90deg, rgba(140,109,255,0.05) 0%, rgba(54,197,214,0.025) 45%, transparent 100%);
1528 background: linear-gradient(90deg, rgba(91,110,232,0.05) 0%, rgba(95,143,160,0.025) 45%, transparent 100%);
15291529 }
15301530 .vsg-page .vsg-row-win:hover {
1531 background: linear-gradient(90deg, rgba(140,109,255,0.085) 0%, rgba(54,197,214,0.04) 45%, transparent 100%);
1531 background: linear-gradient(90deg, rgba(91,110,232,0.085) 0%, rgba(95,143,160,0.04) 45%, transparent 100%);
15321532 }
15331533 .vsg-page .vsg-win-bar {
15341534 position: absolute;
15371537 bottom: 18%;
15381538 width: 2px;
15391539 border-radius: 2px;
1540 background: linear-gradient(180deg, #8c6dff, #36c5d6);
1541 box-shadow: 0 0 8px rgba(140,109,255,0.45);
1540 background: linear-gradient(180deg, #5b6ee8, #5f8fa0);
1541 box-shadow: 0 0 8px rgba(91,110,232,0.45);
15421542 }
15431543
15441544 .vsg-page .vsg-cell {
15711571 .vsg-page .vsg-note-link {
15721572 color: var(--text-strong);
15731573 text-decoration: none;
1574 border-bottom: 1px dashed rgba(140,109,255,0.4);
1574 border-bottom: 1px dashed rgba(91,110,232,0.4);
15751575 transition: color 140ms ease;
15761576 }
1577 .vsg-page .vsg-note-link:hover { color: #b69dff; }
1578 .vsg-page .vsg-note-arrow { color: #b69dff; }
1577 .vsg-page .vsg-note-link:hover { color: #5b6ee8; }
1578 .vsg-page .vsg-note-arrow { color: #5b6ee8; }
15791579 .vsg-page .vsg-cell-us.vsg-cell-yes .vsg-note { color: var(--text-strong); font-weight: 500; }
15801580 .vsg-page .vsg-cell-yes .vsg-note { color: var(--text); }
15811581 .vsg-page .vsg-cell-partial .vsg-note { color: var(--text-muted); }
16331633 position: absolute;
16341634 top: 0; left: 0; right: 0;
16351635 height: 2px;
1636 background: linear-gradient(90deg, transparent, #8c6dff, #36c5d6, transparent);
1636 background: linear-gradient(90deg, transparent, #5b6ee8, #5f8fa0, transparent);
16371637 opacity: 0;
16381638 transition: opacity 200ms ease;
16391639 }
16401640 .vsg-page .vsg-killer-card-v2:hover {
16411641 transform: translateY(-3px);
1642 border-color: rgba(140,109,255,0.35);
1643 box-shadow: 0 18px 40px -18px rgba(140,109,255,0.35);
1642 border-color: rgba(91,110,232,0.35);
1643 box-shadow: 0 18px 40px -18px rgba(91,110,232,0.35);
16441644 }
16451645 .vsg-page .vsg-killer-card-v2:hover::before { opacity: 0.85; }
16461646 .vsg-page .vsg-killer-card-num {
16571657 justify-content: center;
16581658 width: 48px; height: 48px;
16591659 border-radius: 14px;
1660 background: linear-gradient(135deg, rgba(140,109,255,0.18), rgba(54,197,214,0.10));
1661 color: #b69dff;
1660 background: linear-gradient(135deg, rgba(91,110,232,0.18), rgba(95,143,160,0.10));
1661 color: #5b6ee8;
16621662 margin-bottom: 16px;
1663 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.30);
1663 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.30);
16641664 }
16651665 .vsg-page .vsg-killer-card-title {
16661666 font-family: var(--font-display);
16801680 display: inline-flex;
16811681 align-items: center;
16821682 gap: 4px;
1683 color: #b69dff;
1683 color: #5b6ee8;
16841684 font-family: var(--font-mono);
16851685 font-size: 12px;
16861686 letter-spacing: 0.10em;
17181718 text-transform: uppercase;
17191719 }
17201720 .vsg-page .vsg-speed-axis-now {
1721 fill: #b69dff;
1721 fill: #5b6ee8;
17221722 font-weight: 700;
17231723 }
17241724 .vsg-page .vsg-speed-label {
17571757 }
17581758 .vsg-page .vsg-speed-dot-gc {
17591759 width: 10px; height: 10px; border-radius: 9999px;
1760 background: linear-gradient(135deg, #8c6dff, #36c5d6);
1761 box-shadow: 0 0 10px rgba(140,109,255,0.6);
1760 background: linear-gradient(135deg, #5b6ee8, #5f8fa0);
1761 box-shadow: 0 0 10px rgba(91,110,232,0.6);
17621762 }
17631763 .vsg-page .vsg-speed-dot-gh {
17641764 width: 10px; height: 10px; border-radius: 9999px;
17851785 flex-direction: column;
17861786 }
17871787 .vsg-page .vsg-price-card-us {
1788 border-color: rgba(140,109,255,0.35);
1789 background: linear-gradient(160deg, rgba(140,109,255,0.10), rgba(54,197,214,0.05) 50%, var(--bg-elevated) 100%);
1790 box-shadow: 0 0 0 1px rgba(140,109,255,0.16), 0 22px 48px -18px rgba(140,109,255,0.35);
1788 border-color: rgba(91,110,232,0.35);
1789 background: linear-gradient(160deg, rgba(91,110,232,0.10), rgba(95,143,160,0.05) 50%, var(--bg-elevated) 100%);
1790 box-shadow: 0 0 0 1px rgba(91,110,232,0.16), 0 22px 48px -18px rgba(91,110,232,0.35);
17911791 }
17921792 .vsg-page .vsg-price-tier {
17931793 font-family: var(--font-display);
18421842 grid-column: 2;
18431843 grid-row: 1 / span 2;
18441844 align-self: center;
1845 color: #36c5d6;
1845 color: #5f8fa0;
18461846 font-size: 18px;
18471847 font-weight: 700;
18481848 }
19721972 }
19731973 .vsg-page .vsg-agent-side-link {
19741974 margin-top: auto;
1975 color: #b69dff;
1975 color: #5b6ee8;
19761976 font-family: var(--font-mono);
19771977 font-size: 12px;
19781978 letter-spacing: 0.10em;
20012001 gap: 10px;
20022002 transition: border-color 160ms ease;
20032003 }
2004 .vsg-page .vsg-social-card:hover { border-color: rgba(140,109,255,0.35); }
2004 .vsg-page .vsg-social-card:hover { border-color: rgba(91,110,232,0.35); }
20052005 .vsg-page .vsg-social-card-name {
20062006 font-family: var(--font-display);
20072007 font-size: 17px;
20152015 line-height: 1.55;
20162016 }
20172017 .vsg-page .vsg-social-anthropic {
2018 border-color: rgba(140,109,255,0.35);
2019 background: linear-gradient(160deg, rgba(140,109,255,0.10), rgba(54,197,214,0.05) 50%, var(--bg-elevated) 100%);
2020 box-shadow: 0 0 0 1px rgba(140,109,255,0.16);
2018 border-color: rgba(91,110,232,0.35);
2019 background: linear-gradient(160deg, rgba(91,110,232,0.10), rgba(95,143,160,0.05) 50%, var(--bg-elevated) 100%);
2020 box-shadow: 0 0 0 1px rgba(91,110,232,0.16);
20212021 }
20222022 .vsg-page .vsg-social-anthropic-badge {
20232023 display: inline-flex;
20312031 letter-spacing: 0.10em;
20322032 text-transform: uppercase;
20332033 font-weight: 700;
2034 color: #b69dff;
2035 background: rgba(140,109,255,0.14);
2036 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.35);
2034 color: #5b6ee8;
2035 background: rgba(91,110,232,0.14);
2036 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.35);
20372037 }
20382038 .vsg-page .vsg-social-coming {
20392039 opacity: 0.55;
20582058 transition: border-color 160ms ease, transform 160ms ease;
20592059 }
20602060 .vsg-page .vsg-faq:hover {
2061 border-color: rgba(140,109,255,0.35);
2061 border-color: rgba(91,110,232,0.35);
20622062 transform: translateY(-2px);
20632063 }
20642064 .vsg-page .vsg-faq-q {
20832083 .vsg-page .vsg-killer-card {
20842084 position: relative;
20852085 padding: clamp(32px, 4vw, 56px) clamp(24px, 4vw, 40px);
2086 border: 1px solid rgba(140,109,255,0.35);
2086 border: 1px solid rgba(91,110,232,0.35);
20872087 border-radius: 20px;
20882088 background:
2089 linear-gradient(135deg, rgba(140,109,255,0.10), rgba(54,197,214,0.06)),
2089 linear-gradient(135deg, rgba(91,110,232,0.10), rgba(95,143,160,0.06)),
20902090 var(--bg-elevated);
20912091 text-align: center;
20922092 overflow: hidden;
2093 box-shadow: 0 1px 0 rgba(255,255,255,0.04), 0 20px 48px -18px rgba(140,109,255,0.30);
2093 box-shadow: 0 1px 0 rgba(255,255,255,0.04), 0 20px 48px -18px rgba(91,110,232,0.30);
20942094 }
20952095 .vsg-page .vsg-killer-card::before {
20962096 content: '';
20972097 position: absolute;
20982098 top: 0; left: 0; right: 0;
20992099 height: 2px;
2100 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
2100 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
21012101 opacity: 0.78;
21022102 pointer-events: none;
21032103 }
21052105 position: absolute;
21062106 inset: auto auto -30% -10%;
21072107 width: 420px; height: 420px;
2108 background: radial-gradient(circle, rgba(54,197,214,0.18), rgba(140,109,255,0.10) 45%, transparent 70%);
2108 background: radial-gradient(circle, rgba(95,143,160,0.18), rgba(91,110,232,0.10) 45%, transparent 70%);
21092109 filter: blur(80px);
21102110 opacity: 0.75;
21112111 pointer-events: none;
21532153 position: absolute;
21542154 top: 0; left: 0; right: 0;
21552155 height: 2px;
2156 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
2156 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
21572157 opacity: 0.75;
21582158 }
21592159 .vsg-page .vsg-cta-orb {
21612161 inset: -25% auto auto 50%;
21622162 transform: translateX(-50%);
21632163 width: 720px; height: 420px;
2164 background: radial-gradient(ellipse, rgba(140,109,255,0.22), rgba(54,197,214,0.08) 45%, transparent 70%);
2164 background: radial-gradient(ellipse, rgba(91,110,232,0.22), rgba(95,143,160,0.08) 45%, transparent 70%);
21652165 filter: blur(80px);
21662166 opacity: 0.7;
21672167 pointer-events: none;
22152215 }
22162216 .vsg-page .vsg-selfhost-card-them { opacity: 0.86; }
22172217 .vsg-page .vsg-selfhost-card-us {
2218 border-color: rgba(140,109,255,0.35);
2219 box-shadow: 0 0 0 1px rgba(140,109,255,0.16), 0 14px 40px -20px rgba(0,0,0,0.55);
2218 border-color: rgba(91,110,232,0.35);
2219 box-shadow: 0 0 0 1px rgba(91,110,232,0.16), 0 14px 40px -20px rgba(0,0,0,0.55);
22202220 }
22212221 .vsg-page .vsg-selfhost-card-label {
22222222 font-family: var(--font-mono);
Modifiedsrc/routes/web.tsx+89−89View fileUnifiedSplit
204204 position: absolute;
205205 top: 0; left: 0; right: 0;
206206 height: 2px;
207 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
207 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
208208 opacity: 0.7;
209209 pointer-events: none;
210210 }
239239 .new-repo-hero-orb {
240240 position: absolute;
241241 inset: 0;
242 background: radial-gradient(circle, rgba(140,109,255,0.18), rgba(54,197,214,0.09) 45%, transparent 70%);
242 background: radial-gradient(circle, rgba(91,110,232,0.18), rgba(95,143,160,0.09) 45%, transparent 70%);
243243 filter: blur(80px);
244244 opacity: 0.7;
245245 animation: cbHeroOrb 14s ease-in-out infinite;
313313 .new-repo-input:focus {
314314 outline: none;
315315 border-color: var(--accent);
316 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
316 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
317317 }
318318 .new-repo-input-disabled {
319319 color: var(--text-muted);
354354 }
355355 .new-repo-vis-card:hover { border-color: var(--border-strong, var(--border)); }
356356 .new-repo-vis-card:has(input:checked) {
357 border-color: rgba(140,109,255,0.55);
358 background: rgba(140,109,255,0.06);
359 box-shadow: 0 0 0 1px rgba(140,109,255,0.25);
357 border-color: rgba(91,110,232,0.55);
358 background: rgba(91,110,232,0.06);
359 box-shadow: 0 0 0 1px rgba(91,110,232,0.25);
360360 }
361361 .new-repo-vis-radio {
362362 margin-top: 3px;
376376 .new-repo-callout {
377377 margin-top: var(--space-2);
378378 padding: var(--space-3) var(--space-4);
379 background: var(--accent-gradient-faint, rgba(140,109,255,0.06));
380 border: 1px solid rgba(140,109,255,0.2);
379 background: var(--accent-gradient-faint, rgba(91,110,232,0.06));
380 border: 1px solid rgba(91,110,232,0.2);
381381 border-radius: 12px;
382382 }
383383 .new-repo-callout-eyebrow {
399399 font-family: var(--font-mono);
400400 font-size: 12px;
401401 color: var(--accent);
402 background: rgba(140,109,255,0.1);
402 background: rgba(91,110,232,0.1);
403403 border-radius: 4px;
404404 padding: 1px 5px;
405405 }
429429 color: var(--text-strong);
430430 }
431431 .new-repo-template-chip:has(input:checked) {
432 border-color: rgba(140,109,255,0.55);
433 background: rgba(140,109,255,0.10);
432 border-color: rgba(91,110,232,0.55);
433 background: rgba(91,110,232,0.10);
434434 color: var(--text-strong);
435 box-shadow: 0 0 0 1px rgba(140,109,255,0.25);
435 box-shadow: 0 0 0 1px rgba(91,110,232,0.25);
436436 }
437437 .new-repo-template-chip-dot {
438438 width: 8px; height: 8px;
441441 transition: background 140ms ease, box-shadow 140ms ease;
442442 }
443443 .new-repo-template-chip:has(input:checked) .new-repo-template-chip-dot {
444 background: linear-gradient(135deg, #8c6dff, #36c5d6);
445 box-shadow: 0 0 8px rgba(140,109,255,0.6);
444 background: linear-gradient(135deg, #5b6ee8, #5f8fa0);
445 box-shadow: 0 0 8px rgba(91,110,232,0.6);
446446 }
447447 .new-repo-actions {
448448 display: flex;
452452 }
453453 .new-repo-submit {
454454 min-width: 180px;
455 border: 1px solid rgba(140,109,255,0.45);
456 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
455 border: 1px solid rgba(91,110,232,0.45);
456 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
457457 color: #fff;
458458 font-weight: 700;
459 box-shadow: 0 8px 20px -8px rgba(140,109,255,0.55);
459 box-shadow: 0 8px 20px -8px rgba(91,110,232,0.55);
460460 transition: transform 140ms ease, box-shadow 140ms ease, filter 140ms ease;
461461 }
462462 .new-repo-submit:hover {
463463 transform: translateY(-1px);
464 box-shadow: 0 12px 24px -8px rgba(140,109,255,0.7);
464 box-shadow: 0 12px 24px -8px rgba(91,110,232,0.7);
465465 filter: brightness(1.06);
466466 }
467467 .new-repo-submit:focus-visible {
468 outline: 3px solid rgba(140,109,255,0.45);
468 outline: 3px solid rgba(91,110,232,0.45);
469469 outline-offset: 2px;
470470 }
471471
490490 .profile-hero-orb {
491491 position: absolute;
492492 inset: 0;
493 background: radial-gradient(circle, rgba(140,109,255,0.18), rgba(54,197,214,0.09) 45%, transparent 70%);
493 background: radial-gradient(circle, rgba(91,110,232,0.18), rgba(95,143,160,0.09) 45%, transparent 70%);
494494 filter: blur(80px);
495495 opacity: 0.7;
496496 animation: cbHeroOrb 14s ease-in-out infinite;
507507 width: 88px;
508508 height: 88px;
509509 border-radius: 50%;
510 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
510 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
511511 color: #fff;
512512 display: flex;
513513 align-items: center;
515515 font-size: 38px;
516516 font-weight: 700;
517517 font-family: var(--font-display);
518 box-shadow: 0 8px 24px -8px rgba(140,109,255,0.55);
518 box-shadow: 0 8px 24px -8px rgba(91,110,232,0.55);
519519 }
520520 .profile-hero-text { flex: 1; min-width: 0; }
521521 .profile-eyebrow {
662662 }
663663 .tree-stat-link:hover {
664664 color: var(--accent);
665 border-color: rgba(140,109,255,0.45);
665 border-color: rgba(91,110,232,0.45);
666666 text-decoration: none;
667667 }
668668 .tree-breadcrumb-row {
737737 }
738738 .blob-pill:hover {
739739 color: var(--accent);
740 border-color: rgba(140,109,255,0.45);
740 border-color: rgba(91,110,232,0.45);
741741 text-decoration: none;
742 background: rgba(140,109,255,0.06);
742 background: rgba(91,110,232,0.06);
743743 }
744744 .blob-pill-accent {
745745 color: var(--accent);
746 border-color: rgba(140,109,255,0.35);
747 background: rgba(140,109,255,0.08);
746 border-color: rgba(91,110,232,0.35);
747 background: rgba(91,110,232,0.08);
748748 }
749749 .blob-pill-accent:hover {
750 background: rgba(140,109,255,0.14);
750 background: rgba(91,110,232,0.14);
751751 }
752752 .blob-binary {
753753 padding: var(--space-5);
778778 .commits-hero-orb {
779779 position: absolute;
780780 inset: 0;
781 background: radial-gradient(circle, rgba(140,109,255,0.16), rgba(54,197,214,0.08) 45%, transparent 70%);
781 background: radial-gradient(circle, rgba(91,110,232,0.16), rgba(95,143,160,0.08) 45%, transparent 70%);
782782 filter: blur(80px);
783783 opacity: 0.7;
784784 animation: cbHeroOrb 14s ease-in-out infinite;
861861 position: absolute;
862862 top: 0; left: 0; right: 0;
863863 height: 2px;
864 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
864 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
865865 opacity: 0.55;
866866 pointer-events: none;
867867 }
882882 .commits-day-head-dot {
883883 width: 6px; height: 6px;
884884 border-radius: 9999px;
885 background: linear-gradient(135deg, #8c6dff, #36c5d6);
885 background: linear-gradient(135deg, #5b6ee8, #5f8fa0);
886886 }
887887 .commits-row {
888888 display: flex;
897897 .commits-avatar {
898898 width: 34px; height: 34px;
899899 border-radius: 9999px;
900 background: linear-gradient(135deg, rgba(140,109,255,0.30), rgba(54,197,214,0.25));
900 background: linear-gradient(135deg, rgba(91,110,232,0.30), rgba(95,143,160,0.25));
901901 color: #fff;
902902 display: inline-flex;
903903 align-items: center;
971971 transition: border-color 120ms ease, background 120ms ease, color 120ms ease;
972972 }
973973 .commits-row-sha:hover {
974 border-color: rgba(140,109,255,0.55);
974 border-color: rgba(91,110,232,0.55);
975975 color: var(--accent);
976 background: rgba(140,109,255,0.08);
976 background: rgba(91,110,232,0.08);
977977 text-decoration: none;
978978 }
979979 .commits-row-copy {
10111011 text-decoration: none !important;
10121012 }
10131013 .commits-row-watch:hover {
1014 border-color: rgba(140,109,255,0.45);
1014 border-color: rgba(91,110,232,0.45);
10151015 color: var(--accent);
1016 background: rgba(140,109,255,0.08);
1016 background: rgba(91,110,232,0.08);
10171017 text-decoration: none !important;
10181018 }
10191019 .commits-empty {
10291029 position: absolute;
10301030 inset: -40% 30% auto 30%;
10311031 height: 280px;
1032 background: radial-gradient(circle, rgba(140,109,255,0.18), rgba(54,197,214,0.10) 45%, transparent 70%);
1032 background: radial-gradient(circle, rgba(91,110,232,0.18), rgba(95,143,160,0.10) 45%, transparent 70%);
10331033 filter: blur(70px);
10341034 opacity: 0.7;
10351035 pointer-events: none;
10391039 .commits-empty-icon {
10401040 width: 56px; height: 56px;
10411041 border-radius: 9999px;
1042 background: linear-gradient(135deg, rgba(140,109,255,0.25), rgba(54,197,214,0.20));
1043 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.40);
1042 background: linear-gradient(135deg, rgba(91,110,232,0.25), rgba(95,143,160,0.20));
1043 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.40);
10441044 display: inline-flex;
10451045 align-items: center;
10461046 justify-content: center;
10751075 position: absolute;
10761076 top: 0; left: 0; right: 0;
10771077 height: 2px;
1078 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
1078 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
10791079 opacity: 0.55;
10801080 pointer-events: none;
10811081 }
10931093 .branches-row-icon {
10941094 width: 32px; height: 32px;
10951095 border-radius: 8px;
1096 background: rgba(140,109,255,0.10);
1096 background: rgba(91,110,232,0.10);
10971097 color: #c4b5fd;
10981098 display: inline-flex;
10991099 align-items: center;
11001100 justify-content: center;
11011101 flex-shrink: 0;
1102 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.22);
1102 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.22);
11031103 }
11041104 .branches-row-main { flex: 1; min-width: 240px; display: flex; flex-direction: column; gap: 4px; }
11051105 .branches-row-name {
11201120 font-size: 10px;
11211121 padding: 2px 8px;
11221122 border-radius: 9999px;
1123 background: rgba(140,109,255,0.14);
1123 background: rgba(91,110,232,0.14);
11241124 color: #c4b5fd;
1125 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.30);
1125 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.30);
11261126 text-transform: uppercase;
11271127 letter-spacing: 0.08em;
11281128 font-weight: 700;
12121212 position: absolute;
12131213 top: 0; left: 0; right: 0;
12141214 height: 2px;
1215 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
1215 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
12161216 opacity: 0.55;
12171217 pointer-events: none;
12181218 }
12301230 .tags-row-icon {
12311231 width: 32px; height: 32px;
12321232 border-radius: 8px;
1233 background: rgba(54,197,214,0.10);
1233 background: rgba(95,143,160,0.10);
12341234 color: #67e8f9;
12351235 display: inline-flex;
12361236 align-items: center;
12371237 justify-content: center;
12381238 flex-shrink: 0;
1239 box-shadow: inset 0 0 0 1px rgba(54,197,214,0.22);
1239 box-shadow: inset 0 0 0 1px rgba(95,143,160,0.22);
12401240 }
12411241 .tags-row-main { flex: 1; min-width: 240px; }
12421242 .tags-row-name {
12541254 font-size: 13px;
12551255 font-weight: 700;
12561256 color: #67e8f9;
1257 background: rgba(54,197,214,0.12);
1258 box-shadow: inset 0 0 0 1px rgba(54,197,214,0.30);
1257 background: rgba(95,143,160,0.12);
1258 box-shadow: inset 0 0 0 1px rgba(95,143,160,0.30);
12591259 letter-spacing: 0.01em;
12601260 }
12611261 .tags-row-meta {
13031303 transition: border-color 120ms ease, color 120ms ease, background 120ms ease;
13041304 }
13051305 .tags-row-link:hover {
1306 border-color: rgba(140,109,255,0.45);
1306 border-color: rgba(91,110,232,0.45);
13071307 color: var(--text-strong);
1308 background: rgba(140,109,255,0.06);
1308 background: rgba(91,110,232,0.06);
13091309 text-decoration: none;
13101310 }
13111311
13931393 font-family: var(--font-mono);
13941394 font-size: 12.5px;
13951395 color: var(--accent);
1396 background: rgba(140,109,255,0.08);
1396 background: rgba(91,110,232,0.08);
13971397 border-radius: 6px;
13981398 padding: 1px 6px;
13991399 margin-left: 2px;
14001400 }
1401 .commit-detail-sha-link:hover { background: rgba(140,109,255,0.16); text-decoration: none; }
1401 .commit-detail-sha-link:hover { background: rgba(91,110,232,0.16); text-decoration: none; }
14021402 .commit-detail-stats {
14031403 display: flex;
14041404 flex-wrap: wrap;
14831483 .blame-eyebrow-dot {
14841484 width: 8px; height: 8px;
14851485 border-radius: 9999px;
1486 background: linear-gradient(135deg, #8c6dff, #36c5d6);
1487 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
1486 background: linear-gradient(135deg, #5b6ee8, #5f8fa0);
1487 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
14881488 }
14891489 .blame-title {
14901490 font-family: var(--font-display);
15301530 position: absolute;
15311531 top: 0; left: 0; right: 0;
15321532 height: 2px;
1533 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
1533 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
15341534 opacity: 0.55;
15351535 pointer-events: none;
15361536 }
15621562 text-transform: uppercase;
15631563 letter-spacing: 0.08em;
15641564 font-family: var(--font-mono);
1565 background: rgba(140,109,255,0.12);
1565 background: rgba(91,110,232,0.12);
15661566 color: var(--accent);
15671567 border-radius: 999px;
15681568 padding: 2px 8px;
16161616 font-size: 10.5px;
16171617 font-weight: 600;
16181618 color: #c4b5fd;
1619 background: rgba(140,109,255,0.10);
1619 background: rgba(91,110,232,0.10);
16201620 padding: 1px 7px;
16211621 border-radius: 9999px;
1622 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.22);
1622 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.22);
16231623 text-decoration: none;
16241624 letter-spacing: 0.04em;
16251625 flex-shrink: 0;
16261626 transition: background 120ms ease, box-shadow 120ms ease, color 120ms ease;
16271627 }
16281628 .blame-gutter-sha:hover {
1629 background: rgba(140,109,255,0.22);
1629 background: rgba(91,110,232,0.22);
16301630 color: #ddd6fe;
1631 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.50);
1631 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.50);
16321632 text-decoration: none;
16331633 }
16341634 .blame-gutter-author {
17171717 .search-input:focus {
17181718 outline: none;
17191719 border-color: var(--accent);
1720 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
1720 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
17211721 }
17221722 .search-submit { min-width: 96px; }
17231723 .search-results-head {
23572357 .ob-card {
23582358 position: relative;
23592359 margin: 14px 0 18px;
2360 background: linear-gradient(135deg, rgba(140,109,255,0.08), rgba(54,197,214,0.05));
2361 border: 1px solid rgba(140,109,255,0.30);
2360 background: linear-gradient(135deg, rgba(91,110,232,0.08), rgba(95,143,160,0.05));
2361 border: 1px solid rgba(91,110,232,0.30);
23622362 border-radius: 14px;
23632363 overflow: hidden;
23642364 }
23672367 position: absolute;
23682368 top: 0; left: 0; right: 0;
23692369 height: 2px;
2370 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
2370 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
23712371 pointer-events: none;
23722372 }
23732373 .ob-header {
30073007 position: absolute;
30083008 top: 0; left: 0; right: 0;
30093009 height: 2px;
3010 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
3010 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
30113011 opacity: 0.7;
30123012 pointer-events: none;
30133013 }
30223022 .repo-home-hero-orb {
30233023 position: absolute;
30243024 inset: 0;
3025 background: radial-gradient(circle, rgba(140,109,255,0.18), rgba(54,197,214,0.09) 45%, transparent 70%);
3025 background: radial-gradient(circle, rgba(91,110,232,0.18), rgba(95,143,160,0.09) 45%, transparent 70%);
30263026 filter: blur(80px);
30273027 opacity: 0.7;
30283028 animation: repoHomeOrb 14s ease-in-out infinite;
32633263 position: absolute;
32643264 top: 0; left: 0; right: 0;
32653265 height: 2px;
3266 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
3266 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
32673267 opacity: 0.7;
32683268 pointer-events: none;
32693269 }
33683368 transition: border-color 140ms ease, background 140ms ease;
33693369 }
33703370 .repo-empty-option:hover {
3371 border-color: rgba(140,109,255,0.45);
3372 background: rgba(140,109,255,0.04);
3371 border-color: rgba(91,110,232,0.45);
3372 background: rgba(91,110,232,0.04);
33733373 }
33743374 .repo-empty-option::before {
33753375 content: '';
33763376 position: absolute;
33773377 top: 0; left: 0; right: 0;
33783378 height: 2px;
3379 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
3379 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
33803380 opacity: 0.55;
33813381 pointer-events: none;
33823382 }
35443544 transition: border-color 140ms ease, box-shadow 140ms ease;
35453545 }
35463546 .empty-option-card:hover {
3547 border-color: rgba(140,109,255,0.45);
3548 box-shadow: 0 8px 24px -8px rgba(140,109,255,0.18);
3547 border-color: rgba(91,110,232,0.45);
3548 box-shadow: 0 8px 24px -8px rgba(91,110,232,0.18);
35493549 }
35503550 .empty-option-card::before {
35513551 content: '';
35523552 position: absolute;
35533553 top: 0; left: 0; right: 0;
35543554 height: 2px;
3555 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
3555 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
35563556 opacity: 0.55;
35573557 pointer-events: none;
35583558 }
36113611 transition: border-color 140ms ease, background 140ms ease, color 140ms ease;
36123612 }
36133613 .empty-option-cta:hover {
3614 border-color: rgba(140,109,255,0.55);
3615 background: rgba(140,109,255,0.08);
3614 border-color: rgba(91,110,232,0.55);
3615 background: rgba(91,110,232,0.08);
36163616 color: var(--accent);
36173617 text-decoration: none;
36183618 }
36193619 .empty-option-cta-accent {
3620 background: linear-gradient(135deg, #8c6dff, #36c5d6);
3620 background: linear-gradient(135deg, #5b6ee8, #5f8fa0);
36213621 border-color: transparent;
36223622 color: #fff;
36233623 }
36253625 background: linear-gradient(135deg, #7c5df0, #28b4c8);
36263626 border-color: transparent;
36273627 color: #fff;
3628 box-shadow: 0 6px 18px -6px rgba(140,109,255,0.55);
3628 box-shadow: 0 6px 18px -6px rgba(91,110,232,0.55);
36293629 }
36303630 ` }} />
36313631 <div class="repo-home-hero">
38943894 gap: 8px;
38953895 margin: 12px 0 18px;
38963896 padding: 10px 14px;
3897 background: linear-gradient(135deg, rgba(140,109,255,0.06), rgba(54,197,214,0.04));
3897 background: linear-gradient(135deg, rgba(91,110,232,0.06), rgba(95,143,160,0.04));
38983898 border: 1px solid var(--border);
38993899 border-radius: 10px;
39003900 position: relative;
39053905 position: absolute;
39063906 top: 0; left: 0; right: 0;
39073907 height: 1px;
3908 background: linear-gradient(90deg, transparent 0%, rgba(140,109,255,0.45) 30%, rgba(54,197,214,0.45) 70%, transparent 100%);
3908 background: linear-gradient(90deg, transparent 0%, rgba(91,110,232,0.45) 30%, rgba(95,143,160,0.45) 70%, transparent 100%);
39093909 opacity: 0.7;
39103910 pointer-events: none;
39113911 }
39353935 transition: border-color 140ms ease, background 140ms ease, color 140ms ease;
39363936 }
39373937 .repo-ai-cta:hover {
3938 border-color: rgba(140,109,255,0.45);
3938 border-color: rgba(91,110,232,0.45);
39393939 color: var(--text-strong);
3940 background: rgba(140,109,255,0.06);
3940 background: rgba(91,110,232,0.06);
39413941 text-decoration: none;
39423942 }
39433943 .repo-ai-cta-icon {
46094609 <span
46104610 class="branches-eyebrow-dot"
46114611 aria-hidden="true"
4612 style="width:8px;height:8px;border-radius:9999px;background:linear-gradient(135deg,#8c6dff,#36c5d6);box-shadow:0 0 0 3px rgba(140,109,255,0.18)"
4612 style="width:8px;height:8px;border-radius:9999px;background:linear-gradient(135deg,#5b6ee8,#5f8fa0);box-shadow:0 0 0 3px rgba(91,110,232,0.18)"
46134613 />
46144614 Repository · Branches
46154615 </div>
49144914 <span
49154915 class="tags-eyebrow-dot"
49164916 aria-hidden="true"
4917 style="width:8px;height:8px;border-radius:9999px;background:linear-gradient(135deg,#8c6dff,#36c5d6);box-shadow:0 0 0 3px rgba(140,109,255,0.18)"
4917 style="width:8px;height:8px;border-radius:9999px;background:linear-gradient(135deg,#5b6ee8,#5f8fa0);box-shadow:0 0 0 3px rgba(91,110,232,0.18)"
49184918 />
49194919 Repository · Tags
49204920 </div>
50185018 <a
50195019 href={`/${owner}/${repo}/releases/tag/${t.name}`}
50205020 class="tags-row-link"
5021 style="color:#67e8f9;border-color:rgba(54,197,214,0.35);background:rgba(54,197,214,0.06)"
5021 style="color:#67e8f9;border-color:rgba(95,143,160,0.35);background:rgba(95,143,160,0.06)"
50225022 >
50235023 View release
50245024 </a>
58235823 }
58245824 .search-mode-btn:hover { color: var(--text-strong); text-decoration: none; }
58255825 .search-mode-btn.active {
5826 background: rgba(140,109,255,0.15);
5826 background: rgba(91,110,232,0.15);
58275827 color: var(--text-strong);
58285828 }
58295829 .search-mode-ai-badge {
58345834 border-radius: 9999px;
58355835 font-size: 11px;
58365836 font-weight: 600;
5837 background: linear-gradient(135deg, rgba(140,109,255,0.20), rgba(54,197,214,0.15));
5837 background: linear-gradient(135deg, rgba(91,110,232,0.20), rgba(95,143,160,0.15));
58385838 color: #c4b5fd;
5839 border: 1px solid rgba(140,109,255,0.30);
5839 border: 1px solid rgba(91,110,232,0.30);
58405840 margin-left: 2px;
58415841 }
58425842 .search-quota-warn {
58875887 flex-shrink: 0;
58885888 }
58895889 .sem-conf-strong { background: rgba(52,211,153,0.12); color: #34d399; border: 1px solid rgba(52,211,153,0.30); }
5890 .sem-conf-possible { background: rgba(140,109,255,0.12); color: #b69dff; border: 1px solid rgba(140,109,255,0.30); }
5890 .sem-conf-possible { background: rgba(91,110,232,0.12); color: #5b6ee8; border: 1px solid rgba(91,110,232,0.30); }
58915891 .sem-conf-weak { background: rgba(255,255,255,0.04); color: var(--text-muted); border: 1px solid var(--border); }
58925892 .sem-result-reason {
58935893 font-size: 12.5px;
Modifiedsrc/routes/webhooks.tsx+17−17View fileUnifiedSplit
6161 justify-content: center;
6262 width: 18px; height: 18px;
6363 border-radius: 6px;
64 background: rgba(140,109,255,0.14);
65 color: #b69dff;
66 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.35);
64 background: rgba(91,110,232,0.14);
65 color: #5b6ee8;
66 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.35);
6767 }
6868 .wh-title {
6969 font-size: clamp(24px, 3.2vw, 32px);
7575 color: var(--text-strong);
7676 }
7777 .wh-title-grad {
78 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
78 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
7979 -webkit-background-clip: text;
8080 background-clip: text;
8181 -webkit-text-fill-color: transparent;
220220 gap: 6px;
221221 padding: 3px 9px;
222222 border-radius: 9999px;
223 background: rgba(140,109,255,0.10);
224 border: 1px solid rgba(140,109,255,0.30);
223 background: rgba(91,110,232,0.10);
224 border: 1px solid rgba(91,110,232,0.30);
225225 color: #c4b5fd;
226226 font-size: 11px;
227227 font-weight: 600;
302302 color: #fecaca;
303303 }
304304 .wh-btn-primary {
305 background: linear-gradient(135deg, #8c6dff 0%, #6d4ee0 100%);
305 background: linear-gradient(135deg, #5b6ee8 0%, #6d4ee0 100%);
306306 color: #ffffff;
307 border-color: rgba(140,109,255,0.55);
308 box-shadow: 0 6px 18px -6px rgba(140,109,255,0.45);
307 border-color: rgba(91,110,232,0.55);
308 box-shadow: 0 6px 18px -6px rgba(91,110,232,0.45);
309309 }
310310 .wh-btn-primary:hover {
311311 transform: translateY(-1px);
312 box-shadow: 0 10px 24px -8px rgba(140,109,255,0.55);
312 box-shadow: 0 10px 24px -8px rgba(91,110,232,0.55);
313313 }
314314 .wh-card-foot-form { margin: 0; }
315315
328328 position: absolute;
329329 inset: -40% -10% auto auto;
330330 width: 320px; height: 320px;
331 background: radial-gradient(circle, rgba(140,109,255,0.20), rgba(54,197,214,0.10) 45%, transparent 70%);
331 background: radial-gradient(circle, rgba(91,110,232,0.20), rgba(95,143,160,0.10) 45%, transparent 70%);
332332 filter: blur(70px);
333333 opacity: 0.6;
334334 pointer-events: none;
382382 justify-content: center;
383383 width: 26px; height: 26px;
384384 border-radius: 8px;
385 background: rgba(140,109,255,0.12);
386 color: #b69dff;
387 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.28);
385 background: rgba(91,110,232,0.12);
386 color: #5b6ee8;
387 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.28);
388388 }
389389 .wh-form-body { padding: var(--space-4) var(--space-5); }
390390 .wh-field { margin-bottom: var(--space-4); }
412412 }
413413 .wh-input:focus {
414414 border-color: var(--border-focus);
415 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
415 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
416416 }
417417 .wh-events {
418418 display: flex;
433433 font-family: var(--font-mono);
434434 transition: border-color 120ms ease, background 120ms ease;
435435 }
436 .wh-evt-label:hover { border-color: rgba(140,109,255,0.45); }
437 .wh-evt-label input { accent-color: #8c6dff; cursor: pointer; }
436 .wh-evt-label:hover { border-color: rgba(91,110,232,0.45); }
437 .wh-evt-label input { accent-color: #5b6ee8; cursor: pointer; }
438438 .wh-form-foot {
439439 padding: var(--space-3) var(--space-5);
440440 border-top: 1px solid var(--border);
Modifiedsrc/routes/wikis.tsx+16−16View fileUnifiedSplit
7272 .wiki-eyebrow-dot {
7373 width: 8px; height: 8px;
7474 border-radius: 9999px;
75 background: linear-gradient(135deg, #8c6dff, #36c5d6);
76 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
75 background: linear-gradient(135deg, #5b6ee8, #5f8fa0);
76 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
7777 }
7878 .wiki-title {
7979 font-family: var(--font-display);
8585 color: var(--text-strong);
8686 }
8787 .wiki-title-grad {
88 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
88 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
8989 -webkit-background-clip: text;
9090 background-clip: text;
9191 -webkit-text-fill-color: transparent;
117117 white-space: nowrap;
118118 }
119119 .wiki-btn-primary {
120 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
120 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
121121 color: #ffffff;
122 box-shadow: 0 6px 18px -6px rgba(140,109,255,0.50), inset 0 1px 0 rgba(255,255,255,0.16);
122 box-shadow: 0 6px 18px -6px rgba(91,110,232,0.50), inset 0 1px 0 rgba(255,255,255,0.16);
123123 }
124124 .wiki-btn-primary:hover {
125125 transform: translateY(-1px);
126 box-shadow: 0 10px 24px -8px rgba(140,109,255,0.60), inset 0 1px 0 rgba(255,255,255,0.20);
126 box-shadow: 0 10px 24px -8px rgba(91,110,232,0.60), inset 0 1px 0 rgba(255,255,255,0.20);
127127 text-decoration: none;
128128 color: #ffffff;
129129 }
133133 border-color: var(--border-strong);
134134 }
135135 .wiki-btn-ghost:hover {
136 background: rgba(140,109,255,0.06);
137 border-color: rgba(140,109,255,0.45);
136 background: rgba(91,110,232,0.06);
137 border-color: rgba(91,110,232,0.45);
138138 color: var(--text-strong);
139139 text-decoration: none;
140140 }
176176 position: absolute;
177177 top: 0; left: 0; right: 0;
178178 height: 1.5px;
179 background: linear-gradient(90deg, transparent 0%, #8c6dff 50%, #36c5d6 100%);
179 background: linear-gradient(90deg, transparent 0%, #5b6ee8 50%, #5f8fa0 100%);
180180 opacity: 0.40;
181181 pointer-events: none;
182182 }
217217 flex-shrink: 0;
218218 }
219219 .wiki-side-link:hover {
220 background: rgba(140,109,255,0.08);
220 background: rgba(91,110,232,0.08);
221221 color: var(--text-strong);
222222 text-decoration: none;
223223 }
324324 position: absolute;
325325 top: 0; left: 0; right: 0;
326326 height: 1.5px;
327 background: linear-gradient(90deg, transparent 0%, #8c6dff 50%, #36c5d6 100%);
327 background: linear-gradient(90deg, transparent 0%, #5b6ee8 50%, #5f8fa0 100%);
328328 opacity: 0.45;
329329 pointer-events: none;
330330 }
353353 }
354354 .wiki-input:focus,
355355 .wiki-textarea:focus {
356 border-color: rgba(140,109,255,0.55);
356 border-color: rgba(91,110,232,0.55);
357357 background: rgba(255,255,255,0.05);
358 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
358 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
359359 }
360360 .wiki-textarea {
361361 font-family: var(--font-mono);
391391 position: absolute;
392392 inset: -40% 25% auto 25%;
393393 height: 300px;
394 background: radial-gradient(circle, rgba(140,109,255,0.18), rgba(54,197,214,0.10) 45%, transparent 70%);
394 background: radial-gradient(circle, rgba(91,110,232,0.18), rgba(95,143,160,0.10) 45%, transparent 70%);
395395 filter: blur(72px);
396396 opacity: 0.7;
397397 pointer-events: none;
402402 width: 56px; height: 56px;
403403 margin: 0 auto 14px;
404404 border-radius: 9999px;
405 background: linear-gradient(135deg, rgba(140,109,255,0.25), rgba(54,197,214,0.20));
406 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.40);
405 background: linear-gradient(135deg, rgba(91,110,232,0.25), rgba(95,143,160,0.20));
406 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.40);
407407 display: inline-flex;
408408 align-items: center;
409409 justify-content: center;
Modifiedsrc/routes/workflow-secrets.tsx+22−22View fileUnifiedSplit
678678 position: absolute;
679679 top: 0; left: 0; right: 0;
680680 height: 2px;
681 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
681 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
682682 opacity: 0.7;
683683 pointer-events: none;
684684 }
686686 position: absolute;
687687 inset: -20% -10% auto auto;
688688 width: 380px; height: 380px;
689 background: radial-gradient(circle, rgba(140,109,255,0.20), rgba(54,197,214,0.10) 45%, transparent 70%);
689 background: radial-gradient(circle, rgba(91,110,232,0.20), rgba(95,143,160,0.10) 45%, transparent 70%);
690690 filter: blur(80px);
691691 opacity: 0.65;
692692 pointer-events: none;
712712 justify-content: center;
713713 width: 18px; height: 18px;
714714 border-radius: 6px;
715 background: rgba(140,109,255,0.14);
716 color: #b69dff;
717 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.35);
715 background: rgba(91,110,232,0.14);
716 color: #5b6ee8;
717 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.35);
718718 }
719719 .wsec-title {
720720 font-size: clamp(26px, 4vw, 36px);
726726 color: var(--text-strong);
727727 }
728728 .wsec-title-grad {
729 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
729 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
730730 -webkit-background-clip: text;
731731 background-clip: text;
732732 -webkit-text-fill-color: transparent;
832832 font-family: var(--font-mono);
833833 font-size: 11.5px;
834834 font-weight: 600;
835 background: rgba(140,109,255,0.10);
835 background: rgba(91,110,232,0.10);
836836 color: #c5b3ff;
837 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.28);
837 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.28);
838838 letter-spacing: 0.02em;
839839 }
840840
912912 position: absolute;
913913 inset: -40% -10% auto auto;
914914 width: 320px; height: 320px;
915 background: radial-gradient(circle, rgba(140,109,255,0.20), rgba(54,197,214,0.10) 45%, transparent 70%);
915 background: radial-gradient(circle, rgba(91,110,232,0.20), rgba(95,143,160,0.10) 45%, transparent 70%);
916916 filter: blur(70px);
917917 opacity: 0.55;
918918 pointer-events: none;
970970 margin: 0 auto var(--space-3);
971971 width: 48px; height: 48px;
972972 border-radius: 14px;
973 background: rgba(140,109,255,0.10);
974 border: 1px solid rgba(140,109,255,0.20);
973 background: rgba(91,110,232,0.10);
974 border: 1px solid rgba(91,110,232,0.20);
975975 display: flex;
976976 align-items: center;
977977 justify-content: center;
978 color: #b69dff;
978 color: #5b6ee8;
979979 }
980980 .wsec-empty-steps {
981981 margin-top: var(--space-4);
10071007 flex-shrink: 0;
10081008 width: 20px; height: 20px;
10091009 border-radius: 9999px;
1010 background: rgba(140,109,255,0.15);
1010 background: rgba(91,110,232,0.15);
10111011 color: #c5b3ff;
10121012 font-family: var(--font-mono);
10131013 font-size: 11px;
10151015 display: inline-flex;
10161016 align-items: center;
10171017 justify-content: center;
1018 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.25);
1018 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.25);
10191019 margin-top: 1px;
10201020 }
10211021
10591059 }
10601060 .wsec-input:focus {
10611061 border-color: var(--border-focus);
1062 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
1062 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
10631063 }
10641064 .wsec-field-help {
10651065 margin: 0;
11001100 transform: translateY(-1px);
11011101 }
11021102 .wsec-btn-primary {
1103 border-color: rgba(140,109,255,0.45);
1104 background: linear-gradient(135deg, rgba(140,109,255,0.20), rgba(54,197,214,0.14));
1103 border-color: rgba(91,110,232,0.45);
1104 background: linear-gradient(135deg, rgba(91,110,232,0.20), rgba(95,143,160,0.14));
11051105 color: var(--text-strong);
11061106 padding: 10px 18px;
11071107 font-size: 13.5px;
11081108 }
11091109 .wsec-btn-primary:hover {
1110 border-color: rgba(140,109,255,0.65);
1111 background: linear-gradient(135deg, rgba(140,109,255,0.28), rgba(54,197,214,0.20));
1110 border-color: rgba(91,110,232,0.65);
1111 background: linear-gradient(135deg, rgba(91,110,232,0.28), rgba(95,143,160,0.20));
11121112 }
11131113 .wsec-btn-danger {
11141114 border-color: rgba(248,113,113,0.32);
11211121 }
11221122 .wsec-btn-test {
11231123 flex-shrink: 0;
1124 border-color: rgba(140,109,255,0.30);
1124 border-color: rgba(91,110,232,0.30);
11251125 color: #c5b3ff;
11261126 }
11271127 .wsec-btn-test:hover {
1128 border-color: rgba(140,109,255,0.55);
1129 background: rgba(140,109,255,0.10);
1128 border-color: rgba(91,110,232,0.55);
1129 background: rgba(91,110,232,0.10);
11301130 }
11311131 .wsec-btn-test.is-ok {
11321132 border-color: rgba(52,211,153,0.45);
Modifiedsrc/routes/workflows.tsx+18−18View fileUnifiedSplit
135135 position: absolute;
136136 top: 0; left: 0; right: 0;
137137 height: 2px;
138 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
138 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
139139 opacity: 0.7;
140140 pointer-events: none;
141141 }
143143 position: absolute;
144144 inset: -30% -10% auto auto;
145145 width: 320px; height: 320px;
146 background: radial-gradient(circle, rgba(140,109,255,0.18), rgba(54,197,214,0.08) 45%, transparent 70%);
146 background: radial-gradient(circle, rgba(91,110,232,0.18), rgba(95,143,160,0.08) 45%, transparent 70%);
147147 filter: blur(70px);
148148 opacity: 0.7;
149149 pointer-events: none;
166166 .wf-eyebrow-dot {
167167 width: 8px; height: 8px;
168168 border-radius: 9999px;
169 background: linear-gradient(135deg, #8c6dff, #36c5d6);
170 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
169 background: linear-gradient(135deg, #5b6ee8, #5f8fa0);
170 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
171171 }
172172 .wf-title {
173173 margin: 0 0 6px;
179179 color: var(--text-strong);
180180 }
181181 .wf-title-grad {
182 background-image: linear-gradient(135deg, #a48bff 0%, #8c6dff 50%, #36c5d6 100%);
182 background-image: linear-gradient(135deg, #5b6ee8 0%, #5b6ee8 50%, #5f8fa0 100%);
183183 -webkit-background-clip: text;
184184 background-clip: text;
185185 -webkit-text-fill-color: transparent;
231231 position: absolute;
232232 top: 0; left: 12px; right: 12px;
233233 height: 1px;
234 background: linear-gradient(90deg, transparent 0%, rgba(140,109,255,0.45) 30%, rgba(54,197,214,0.45) 70%, transparent 100%);
234 background: linear-gradient(90deg, transparent 0%, rgba(91,110,232,0.45) 30%, rgba(95,143,160,0.45) 70%, transparent 100%);
235235 opacity: 0;
236236 transition: opacity 160ms ease;
237237 }
238238 .wf-card:hover {
239239 transform: translateY(-1px);
240 border-color: rgba(140,109,255,0.32);
240 border-color: rgba(91,110,232,0.32);
241241 box-shadow: 0 8px 22px -10px rgba(0,0,0,0.40);
242242 }
243243 .wf-card:hover::before { opacity: 1; }
338338 font-family: inherit;
339339 }
340340 .wf-btn:hover {
341 background: rgba(140,109,255,0.07);
342 border-color: rgba(140,109,255,0.45);
341 background: rgba(91,110,232,0.07);
342 border-color: rgba(91,110,232,0.45);
343343 color: var(--text-strong);
344344 text-decoration: none;
345345 }
346346 .wf-btn.is-primary {
347 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
347 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
348348 color: #fff;
349349 border-color: transparent;
350 box-shadow: 0 4px 12px -4px rgba(140,109,255,0.45), inset 0 1px 0 rgba(255,255,255,0.14);
350 box-shadow: 0 4px 12px -4px rgba(91,110,232,0.45), inset 0 1px 0 rgba(255,255,255,0.14);
351351 }
352352 .wf-btn.is-primary:hover { transform: translateY(-1px); color: #fff; }
353353 .wf-btn.is-danger {
384384 position: absolute;
385385 top: 0; left: 12px; right: 12px;
386386 height: 1px;
387 background: linear-gradient(90deg, transparent 0%, rgba(140,109,255,0.45) 30%, rgba(54,197,214,0.45) 70%, transparent 100%);
387 background: linear-gradient(90deg, transparent 0%, rgba(91,110,232,0.45) 30%, rgba(95,143,160,0.45) 70%, transparent 100%);
388388 opacity: 0;
389389 transition: opacity 160ms ease;
390390 }
391391 .wf-run:hover {
392392 transform: translateY(-1px);
393 border-color: rgba(140,109,255,0.30);
393 border-color: rgba(91,110,232,0.30);
394394 box-shadow: 0 8px 22px -10px rgba(0,0,0,0.40);
395395 text-decoration: none;
396396 }
446446 inset: auto auto -40% 50%;
447447 transform: translateX(-50%);
448448 width: 320px; height: 320px;
449 background: radial-gradient(circle, rgba(140,109,255,0.18), rgba(54,197,214,0.08) 45%, transparent 70%);
449 background: radial-gradient(circle, rgba(91,110,232,0.18), rgba(95,143,160,0.08) 45%, transparent 70%);
450450 filter: blur(70px);
451451 opacity: 0.7;
452452 pointer-events: none;
456456 width: 44px; height: 44px;
457457 margin: 0 auto var(--space-3);
458458 border-radius: 14px;
459 background: linear-gradient(135deg, rgba(140,109,255,0.18), rgba(54,197,214,0.14));
460 box-shadow: inset 0 0 0 1px rgba(140,109,255,0.32);
459 background: linear-gradient(135deg, rgba(91,110,232,0.18), rgba(95,143,160,0.14));
460 box-shadow: inset 0 0 0 1px rgba(91,110,232,0.32);
461461 display: flex; align-items: center; justify-content: center;
462 color: #b69dff;
462 color: #5b6ee8;
463463 }
464464 .wf-empty-title {
465465 font-family: var(--font-display);
504504 position: absolute;
505505 top: 0; left: 0; right: 0;
506506 height: 2px;
507 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
507 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
508508 opacity: 0.6;
509509 pointer-events: none;
510510 }
Modifiedsrc/views/diff-view.tsx+12−12View fileUnifiedSplit
783783 position: absolute;
784784 top: 0; left: 0; right: 0;
785785 height: 1px;
786 background: linear-gradient(90deg, transparent 0%, rgba(140,109,255,0.55) 30%, rgba(54,197,214,0.55) 70%, transparent 100%);
786 background: linear-gradient(90deg, transparent 0%, rgba(91,110,232,0.55) 30%, rgba(95,143,160,0.55) 70%, transparent 100%);
787787 opacity: 0.7;
788788 pointer-events: none;
789789 }
874874 }
875875 .diff-file-blob-link:hover {
876876 color: var(--text);
877 border-color: rgba(140,109,255,0.45);
877 border-color: rgba(91,110,232,0.45);
878878 background: var(--accent-gradient-faint, var(--bg-elevated));
879879 }
880880
931931 font-family: var(--font-sans, inherit);
932932 font-size: 13px;
933933 }
934 .diff-empty-big { background: rgba(140,109,255,0.04); }
934 .diff-empty-big { background: rgba(91,110,232,0.04); }
935935
936936 .diff-hunk-gap {
937937 height: 1px;
941941 }
942942 .diff-hunk-header {
943943 padding: 4px 16px 4px 86px;
944 background: rgba(140,109,255,0.05);
944 background: rgba(91,110,232,0.05);
945945 color: var(--text-muted);
946946 font-size: 11.5px;
947 border-top: 1px solid rgba(140,109,255,0.18);
948 border-bottom: 1px solid rgba(140,109,255,0.18);
947 border-top: 1px solid rgba(91,110,232,0.18);
948 border-bottom: 1px solid rgba(91,110,232,0.18);
949949 }
950950 .diff-hunk-header-text { font-family: var(--font-mono); }
951951
10161016 transform: translateY(-50%);
10171017 width: 16px; height: 16px;
10181018 padding: 0;
1019 background: var(--accent, #8c6dff);
1019 background: var(--accent, #5b6ee8);
10201020 color: #fff;
10211021 border: none;
10221022 border-radius: 3px;
10401040 font-family: var(--font-sans, inherit);
10411041 font-size: 13px;
10421042 }
1043 .diff-inline-comment-ai { border-left-color: #8c6dff; }
1043 .diff-inline-comment-ai { border-left-color: #5b6ee8; }
10441044 .diff-inline-comment-head {
10451045 display: flex; gap: 8px; align-items: center;
10461046 margin-bottom: 6px;
10491049 }
10501050 .diff-inline-comment-head strong { color: var(--text-strong); }
10511051 .diff-inline-ai-badge {
1052 background: rgba(140,109,255,0.2);
1052 background: rgba(91,110,232,0.2);
10531053 color: #a78bfa;
10541054 border-radius: 3px;
10551055 padding: 1px 5px;
10801080 resize: vertical;
10811081 box-sizing: border-box;
10821082 }
1083 .diff-inline-textarea:focus { outline: none; border-color: var(--accent, #8c6dff); }
1083 .diff-inline-textarea:focus { outline: none; border-color: var(--accent, #5b6ee8); }
10841084 .diff-inline-form-actions {
10851085 display: flex; gap: 8px; margin-top: 8px;
10861086 }
10871087 .diff-inline-submit {
1088 background: var(--accent, #8c6dff);
1088 background: var(--accent, #5b6ee8);
10891089 color: #fff;
10901090 border: none;
10911091 border-radius: 5px;
12241224 .diff-jump-toggle:hover,
12251225 .diff-jump-toggle.is-open {
12261226 color: var(--text);
1227 border-color: rgba(140,109,255,0.45);
1227 border-color: rgba(91,110,232,0.45);
12281228 background: var(--accent-gradient-faint, var(--bg-elevated));
12291229 }
12301230
Modifiedsrc/views/empty-state.tsx+2−2View fileUnifiedSplit
4848};
4949
5050function defaultIcon(): string {
51 return `<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><defs><linearGradient id="es-grad" x1="0" y1="0" x2="48" y2="48" gradientUnits="userSpaceOnUse"><stop stop-color="#8c6dff"/><stop offset="1" stop-color="#36c5d6"/></linearGradient></defs><path d="M24 4 L28 20 L44 24 L28 28 L24 44 L20 28 L4 24 L20 20 Z" fill="url(#es-grad)" opacity="0.85"/></svg>`;
51 return `<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><defs><linearGradient id="es-grad" x1="0" y1="0" x2="48" y2="48" gradientUnits="userSpaceOnUse"><stop stop-color="#5b6ee8"/><stop offset="1" stop-color="#5f8fa0"/></linearGradient></defs><path d="M24 4 L28 20 L44 24 L28 28 L24 44 L20 28 L4 24 L20 20 Z" fill="url(#es-grad)" opacity="0.85"/></svg>`;
5252}
5353
5454export const emptyStatePolishedCss = `
5555.empty-state-polished { margin: 24px 0; display: flex; justify-content: center; }
5656.empty-state-polished-card { position: relative; max-width: 560px; width: 100%; padding: 56px 32px 40px; text-align: center; background: var(--bg-elevated); border-radius: 14px; overflow: hidden; }
5757.empty-state-polished-card::before { content: ''; position: absolute; inset: 0; padding: 1.5px; border-radius: 14px; background: var(--accent-gradient); -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude; pointer-events: none; opacity: 0.55; }
58.empty-state-polished-card::after { content: ''; position: absolute; inset: 0; background: radial-gradient(60% 60% at 50% 0%, rgba(140,109,255,0.08), transparent 70%); pointer-events: none; }
58.empty-state-polished-card::after { content: ''; position: absolute; inset: 0; background: radial-gradient(60% 60% at 50% 0%, rgba(91,110,232,0.08), transparent 70%); pointer-events: none; }
5959.empty-state-polished-card > * { position: relative; z-index: 1; }
6060.empty-state-polished-icon { display: inline-flex; align-items: center; justify-content: center; margin: 0 auto 16px; font-size: 48px; line-height: 1; }
6161.empty-state-polished-icon svg { display: block; }
Modifiedsrc/views/error-page.tsx+21−21View fileUnifiedSplit
258258 * passing; they just inherit the new visual treatment via .err-* parents.
259259 *
260260 * Design tokens reused from the layout:
261 * --accent (#8c6dff), --accent-2 (#36c5d6), --accent-gradient,
261 * --accent (#5b6ee8), --accent-2 (#5f8fa0), --accent-gradient,
262262 * --bg-elevated, --border, --border-strong, --border-focus,
263263 * --text, --text-strong, --text-muted, --space-*, --font-display,
264264 * --font-mono. The gradient-text utility comes from the layout too.
285285 position: absolute;
286286 top: 0; left: 0; right: 0;
287287 height: 2px;
288 background: linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
288 background: linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
289289 opacity: 0.75;
290290 pointer-events: none;
291291 }
295295 position: absolute;
296296 inset: -30% -15% auto auto;
297297 width: 460px; height: 460px;
298 background: radial-gradient(circle, rgba(140,109,255,0.22), rgba(54,197,214,0.10) 45%, transparent 70%);
298 background: radial-gradient(circle, rgba(91,110,232,0.22), rgba(95,143,160,0.10) 45%, transparent 70%);
299299 filter: blur(80px);
300300 opacity: 0.75;
301301 pointer-events: none;
318318 .err-eyebrow-dot {
319319 width: 8px; height: 8px;
320320 border-radius: 9999px;
321 background: linear-gradient(135deg, #8c6dff, #36c5d6);
322 box-shadow: 0 0 0 3px rgba(140,109,255,0.18);
321 background: linear-gradient(135deg, #5b6ee8, #5f8fa0);
322 box-shadow: 0 0 0 3px rgba(91,110,232,0.18);
323323 }
324324
325325 /* The display code — 404, 500, etc. */
359359 max-width: 600px;
360360 margin: 0 0 22px;
361361 padding: 12px 14px;
362 background: rgba(140,109,255,0.06);
363 border: 1px solid rgba(140,109,255,0.22);
362 background: rgba(91,110,232,0.06);
363 border: 1px solid rgba(91,110,232,0.22);
364364 border-radius: 10px;
365365 }
366366
387387 line-height: 1;
388388 }
389389 .err-btn-primary {
390 background: linear-gradient(135deg, #8c6dff 0%, #36c5d6 100%);
390 background: linear-gradient(135deg, #5b6ee8 0%, #5f8fa0 100%);
391391 color: #ffffff;
392 box-shadow: 0 6px 18px -4px rgba(140,109,255,0.45), inset 0 1px 0 rgba(255,255,255,0.16);
392 box-shadow: 0 6px 18px -4px rgba(91,110,232,0.45), inset 0 1px 0 rgba(255,255,255,0.16);
393393 }
394394 .err-btn-primary:hover {
395395 transform: translateY(-1px);
396 box-shadow: 0 10px 24px -6px rgba(140,109,255,0.55), inset 0 1px 0 rgba(255,255,255,0.20);
396 box-shadow: 0 10px 24px -6px rgba(91,110,232,0.55), inset 0 1px 0 rgba(255,255,255,0.20);
397397 color: #ffffff;
398398 text-decoration: none;
399399 }
403403 border-color: var(--border-strong, var(--border));
404404 }
405405 .err-btn-ghost:hover {
406 background: rgba(140,109,255,0.06);
407 border-color: rgba(140,109,255,0.45);
406 background: rgba(91,110,232,0.06);
407 border-color: rgba(91,110,232,0.45);
408408 color: var(--text-strong);
409409 text-decoration: none;
410410 }
556556:root {
557557 --bg:#0a0b14; --bg-elevated:#0f111a; --text:#e6edf3; --text-strong:#f7f7fb; --text-muted:#8b949e;
558558 --border:rgba(255,255,255,0.08); --border-strong:rgba(255,255,255,0.13);
559 --accent:#8c6dff; --accent-2:#36c5d6;
559 --accent:#5b6ee8; --accent-2:#5f8fa0;
560560 --font-display:'Inter Tight','Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',system-ui,sans-serif;
561561 --font-mono:'JetBrains Mono',ui-monospace,'SF Mono',Menlo,Consolas,monospace;
562562}
564564body::before {
565565 content:''; position:fixed; inset:0; pointer-events:none; z-index:0;
566566 background:
567 radial-gradient(70% 55% at 85% -20%, rgba(140,109,255,0.07), transparent 65%),
568 radial-gradient(55% 45% at -10% 115%, rgba(54,197,214,0.05), transparent 65%);
567 radial-gradient(70% 55% at 85% -20%, rgba(91,110,232,0.07), transparent 65%),
568 radial-gradient(55% 45% at -10% 115%, rgba(95,143,160,0.05), transparent 65%);
569569}
570570.err-page { position:relative; z-index:1; max-width:760px; margin:56px auto 96px; padding:0 24px; }
571571.err-hero {
575575}
576576.err-hero::before {
577577 content:''; position:absolute; top:0; left:0; right:0; height:2px;
578 background:linear-gradient(90deg, transparent 0%, #8c6dff 30%, #36c5d6 70%, transparent 100%);
578 background:linear-gradient(90deg, transparent 0%, #5b6ee8 30%, #5f8fa0 70%, transparent 100%);
579579 opacity:0.75;
580580}
581581.err-orb {
582582 position:absolute; inset:-30% -15% auto auto; width:460px; height:460px;
583 background:radial-gradient(circle, rgba(140,109,255,0.22), rgba(54,197,214,0.10) 45%, transparent 70%);
583 background:radial-gradient(circle, rgba(91,110,232,0.22), rgba(95,143,160,0.10) 45%, transparent 70%);
584584 filter:blur(80px); opacity:0.75; z-index:0;
585585}
586586.err-hero-inner { position:relative; z-index:1; }
591591}
592592.err-eyebrow-dot {
593593 width:8px; height:8px; border-radius:9999px;
594 background:linear-gradient(135deg,#8c6dff,#36c5d6);
595 box-shadow:0 0 0 3px rgba(140,109,255,0.18);
594 background:linear-gradient(135deg,#5b6ee8,#5f8fa0);
595 box-shadow:0 0 0 3px rgba(91,110,232,0.18);
596596}
597597.err-code {
598598 font-family:var(--font-display); font-size:clamp(56px,8vw,96px); line-height:0.95;
604604.err-body { font-size:16px; line-height:1.6; color:var(--text-muted); max-width:560px; margin:0 0 16px; }
605605.err-actions { display:flex; gap:10px; flex-wrap:wrap; margin:22px 0 28px; }
606606.err-btn { display:inline-flex; align-items:center; justify-content:center; padding:11px 20px; border-radius:10px; font-size:14px; font-weight:600; text-decoration:none; border:1px solid transparent; line-height:1; transition:transform 120ms ease, box-shadow 120ms ease, background 120ms ease; }
607.err-btn-primary { background:linear-gradient(135deg,#8c6dff 0%,#36c5d6 100%); color:#fff; box-shadow:0 6px 18px -4px rgba(140,109,255,0.45), inset 0 1px 0 rgba(255,255,255,0.16); }
607.err-btn-primary { background:linear-gradient(135deg,#5b6ee8 0%,#5f8fa0 100%); color:#fff; box-shadow:0 6px 18px -4px rgba(91,110,232,0.45), inset 0 1px 0 rgba(255,255,255,0.16); }
608608.err-btn-primary:hover { transform:translateY(-1px); }
609609.err-btn-ghost { background:transparent; color:var(--text); border-color:var(--border-strong); }
610.err-btn-ghost:hover { background:rgba(140,109,255,0.06); border-color:rgba(140,109,255,0.45); }
610.err-btn-ghost:hover { background:rgba(91,110,232,0.06); border-color:rgba(91,110,232,0.45); }
611611.err-suggestions { list-style:none; padding:0; margin:0 0 24px; border-top:1px solid var(--border); }
612612.err-suggestions a { display:flex; align-items:baseline; gap:10px; padding:12px 4px; border-bottom:1px solid var(--border); color:var(--text); text-decoration:none; transition:padding-left 120ms ease; }
613613.err-suggestions a:hover { padding-left:8px; color:var(--text-strong); }
Modifiedsrc/views/layout.tsx+1−1View fileUnifiedSplit
20152015 wins the cascade and renders the calm indigo ring. */
20162016 .btn:focus-visible {
20172017 outline: none;
2018 box-shadow: 0 0 0 3px rgba(140, 109, 255, 0.35);
2018 box-shadow: 0 0 0 3px rgba(91, 110, 232, 0.35);
20192019 box-shadow: var(--ring);
20202020 }
20212021
Modifiedsrc/views/skeleton.tsx+1−1View fileUnifiedSplit
7272};
7373
7474export const skeletonCss = `
75.skeleton-bar { background: linear-gradient(90deg, var(--bg-elevated) 0%, rgba(140,109,255,0.10) 50%, var(--bg-elevated) 100%); background-size: 200% 100%; animation: skeleton-shimmer 1.4s linear infinite; border: 1px solid var(--border); display: block; }
75.skeleton-bar { background: linear-gradient(90deg, var(--bg-elevated) 0%, rgba(91,110,232,0.10) 50%, var(--bg-elevated) 100%); background-size: 200% 100%; animation: skeleton-shimmer 1.4s linear infinite; border: 1px solid var(--border); display: block; }
7676:root[data-theme='light'] .skeleton-bar { background: linear-gradient(90deg, var(--bg-elevated) 0%, rgba(109,77,255,0.10) 50%, var(--bg-elevated) 100%); background-size: 200% 100%; }
7777@keyframes skeleton-shimmer { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } }
7878.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
7979