mackenzietechdocs commited on
Commit
c0b2722
·
1 Parent(s): 40952ad

Enhance UI with premium indigo dark theme and glow effects

Browse files
Files changed (1) hide show
  1. app.py +237 -101
app.py CHANGED
@@ -225,21 +225,23 @@ def analyze_document(file_name: str, analysis_type: str) -> str:
225
  return f"❌ Error analyzing file: {str(e)}"
226
 
227
 
228
- # Custom CSS for sleek dark mode design with messenger-style chat
229
  custom_css = """
230
- /* Dark mode color scheme */
231
  :root {
232
- --bg-primary: #0d1117;
233
- --bg-secondary: #161b22;
234
- --bg-tertiary: #21262d;
235
- --accent-primary: #8b5cf6;
236
- --accent-secondary: #a78bfa;
237
- --accent-glow: rgba(139, 92, 246, 0.3);
238
- --text-primary: #e6edf3;
239
- --text-secondary: #8b949e;
240
- --border-color: #30363d;
241
- --message-user: #8b5cf6;
242
- --message-bot: #1f2937;
 
 
243
  }
244
 
245
  /* Main container - full dark mode */
@@ -252,142 +254,234 @@ body, .gradio-container, .main, .contain {
252
  background: var(--bg-primary) !important;
253
  }
254
 
255
- /* Header styling - sleek gradient */
256
  .header-container {
257
- background: linear-gradient(135deg, #8b5cf6 0%, #6366f1 50%, #ec4899 100%);
258
- padding: 2.5rem 2rem;
259
- border-radius: 16px;
260
  margin-bottom: 2rem;
261
- box-shadow: 0 20px 60px rgba(139, 92, 246, 0.4);
262
- border: 1px solid rgba(139, 92, 246, 0.2);
 
 
 
 
 
 
 
 
 
 
 
 
 
263
  }
264
 
265
  .header-title {
266
  color: white;
267
- font-size: 2.8rem;
268
  font-weight: 900;
269
  margin: 0;
270
  text-align: center;
271
- text-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
272
  letter-spacing: -0.02em;
 
 
 
 
 
 
273
  }
274
 
275
  .header-subtitle {
276
- color: rgba(255, 255, 255, 0.95);
277
- font-size: 1.15rem;
278
  text-align: center;
279
- margin-top: 0.75rem;
280
  font-weight: 500;
281
- letter-spacing: 0.01em;
 
 
 
282
  }
283
 
284
- /* Messenger-style chat window */
285
- .chatbot.svelte-1w8gs39 {
286
- background: var(--bg-secondary) !important;
287
- border: 1px solid var(--border-color) !important;
288
- border-radius: 16px !important;
289
- box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4) !important;
 
 
290
  }
291
 
292
- /* Chat messages - messenger style */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
293
  .message-wrap {
294
  padding: 0.5rem 1rem !important;
295
  }
296
 
297
- .user-message {
298
- background: linear-gradient(135deg, var(--message-user) 0%, #a78bfa 100%) !important;
299
  color: white !important;
300
- border-radius: 18px 18px 4px 18px !important;
301
- padding: 0.875rem 1.25rem !important;
302
- margin: 0.5rem 0 !important;
303
  max-width: 75% !important;
304
  margin-left: auto !important;
305
- box-shadow: 0 4px 12px rgba(139, 92, 246, 0.3) !important;
306
- font-size: 0.95rem !important;
307
- line-height: 1.5 !important;
 
 
308
  }
309
 
310
- .bot-message {
311
  background: var(--message-bot) !important;
312
  color: var(--text-primary) !important;
313
- border-radius: 18px 18px 18px 4px !important;
314
- padding: 0.875rem 1.25rem !important;
315
- margin: 0.5rem 0 !important;
316
  max-width: 85% !important;
317
  border: 1px solid var(--border-color) !important;
318
- box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2) !important;
319
- font-size: 0.95rem !important;
320
- line-height: 1.6 !important;
 
321
  }
322
 
323
- /* Button styling - modern purple gradient */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
324
  button, .primary-button {
325
- background: linear-gradient(135deg, #8b5cf6 0%, #6366f1 100%) !important;
326
  border: none !important;
327
- border-radius: 12px !important;
328
- font-weight: 600 !important;
329
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
330
- box-shadow: 0 4px 16px var(--accent-glow) !important;
331
  color: white !important;
332
- padding: 0.75rem 1.5rem !important;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
333
  }
334
 
335
  button:hover, .primary-button:hover {
336
- transform: translateY(-2px) !important;
337
- box-shadow: 0 8px 24px rgba(139, 92, 246, 0.5) !important;
338
- background: linear-gradient(135deg, #9d72ff 0%, #7c7eff 100%) !important;
339
  }
340
 
341
- /* Tabs - dark mode */
342
  .tabs {
343
  background: var(--bg-secondary) !important;
344
- border-radius: 16px !important;
345
  border: 1px solid var(--border-color) !important;
 
346
  }
347
 
348
  .tab-nav {
349
- background: var(--bg-tertiary) !important;
350
- border-radius: 12px 12px 0 0 !important;
351
- border-bottom: 1px solid var(--border-color) !important;
352
- padding: 0.5rem !important;
 
353
  }
354
 
355
  .tab-nav button {
356
- font-weight: 600 !important;
357
- border-radius: 10px !important;
358
  color: var(--text-secondary) !important;
359
- border: none !important;
360
- transition: all 0.3s ease !important;
361
- padding: 0.75rem 1.5rem !important;
362
  margin: 0 0.25rem !important;
 
 
 
 
363
  }
364
 
365
  .tab-nav button:hover {
366
- background: rgba(139, 92, 246, 0.1) !important;
367
  color: var(--accent-secondary) !important;
 
 
 
368
  }
369
 
370
  .tab-nav button.selected {
371
- background: linear-gradient(135deg, #8b5cf6 0%, #6366f1 100%) !important;
372
  color: white !important;
373
- box-shadow: 0 4px 12px var(--accent-glow) !important;
 
 
374
  }
375
 
376
- /* Input fields - dark mode */
377
  textarea, input, .input-box {
378
  background: var(--bg-tertiary) !important;
379
  border: 2px solid var(--border-color) !important;
380
- border-radius: 12px !important;
381
  color: var(--text-primary) !important;
382
- transition: all 0.3s ease !important;
383
- padding: 0.875rem 1rem !important;
 
384
  }
385
 
386
  textarea:focus, input:focus, .input-box:focus {
387
  border-color: var(--accent-primary) !important;
388
- box-shadow: 0 0 0 3px var(--accent-glow) !important;
389
  background: var(--bg-secondary) !important;
390
  outline: none !important;
 
391
  }
392
 
393
  textarea::placeholder, input::placeholder {
@@ -404,55 +498,93 @@ textarea::placeholder, input::placeholder {
404
  padding: 0.75rem 1rem !important;
405
  }
406
 
407
- /* Stats and info cards - dark mode */
408
  .stats-box, .info-card {
409
- background: var(--bg-secondary) !important;
410
- padding: 1.75rem !important;
411
- border-radius: 16px !important;
412
  border: 1px solid var(--border-color) !important;
413
- box-shadow: 0 4px 16px rgba(0, 0, 0, 0.3) !important;
414
  color: var(--text-primary) !important;
415
- transition: transform 0.3s ease, box-shadow 0.3s ease !important;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
416
  }
417
 
418
  .info-card:hover, .stats-box:hover {
419
- transform: translateY(-4px) !important;
420
- box-shadow: 0 12px 32px rgba(139, 92, 246, 0.2) !important;
421
  border-color: var(--accent-primary) !important;
422
  }
423
 
424
- /* Markdown content styling - dark mode */
 
 
 
 
425
  .markdown-text, .prose {
426
  color: var(--text-primary) !important;
 
427
  }
428
 
429
  .markdown-text h1, .markdown-text h2, .markdown-text h3,
430
  .prose h1, .prose h2, .prose h3 {
431
  color: var(--accent-secondary) !important;
432
- font-weight: 700 !important;
 
 
 
433
  }
434
 
435
  .markdown-text strong, .prose strong {
436
- color: var(--text-primary) !important;
437
  font-weight: 700 !important;
438
  }
439
 
440
  .markdown-text code, .prose code {
441
  background: var(--bg-tertiary) !important;
442
  color: var(--accent-secondary) !important;
443
- padding: 0.2rem 0.5rem !important;
444
- border-radius: 6px !important;
445
  font-size: 0.9em !important;
446
- border: 1px solid var(--border-color) !important;
 
 
447
  }
448
 
449
  .markdown-text pre, .prose pre {
450
- background: #1a1b26 !important;
451
  color: #a9b1d6 !important;
452
- padding: 1.25rem !important;
453
- border-radius: 12px !important;
454
  overflow-x: auto !important;
455
  border: 1px solid var(--border-color) !important;
 
 
 
 
 
 
 
 
 
 
 
 
 
456
  }
457
 
458
  /* Labels and text */
@@ -474,24 +606,28 @@ label, .label {
474
  border-radius: 12px !important;
475
  }
476
 
477
- /* Scrollbar styling for dark mode */
478
  ::-webkit-scrollbar {
479
- width: 10px;
480
- height: 10px;
481
  }
482
 
483
  ::-webkit-scrollbar-track {
484
  background: var(--bg-secondary);
485
- border-radius: 8px;
 
486
  }
487
 
488
  ::-webkit-scrollbar-thumb {
489
- background: var(--border-color);
490
- border-radius: 8px;
 
 
491
  }
492
 
493
  ::-webkit-scrollbar-thumb:hover {
494
- background: var(--accent-primary);
 
495
  }
496
 
497
  /* Loading animation */
@@ -550,11 +686,11 @@ except TypeError:
550
 
551
  with demo:
552
 
553
- # Header with modern dark gradient
554
  gr.HTML("""
555
  <div class="header-container">
556
  <h1 class="header-title">🚀 Docs Navigator MCP</h1>
557
- <p class="header-subtitle">Intelligent Documentation Assistant Powered by Claude AI</p>
558
  </div>
559
  """)
560
 
 
225
  return f"❌ Error analyzing file: {str(e)}"
226
 
227
 
228
+ # Custom CSS for sleek indigo/dark mode design with messenger-style chat
229
  custom_css = """
230
+ /* Indigo dark mode color scheme */
231
  :root {
232
+ --bg-primary: #0a0e27;
233
+ --bg-secondary: #0f1629;
234
+ --bg-tertiary: #1a1f3a;
235
+ --accent-primary: #6366f1;
236
+ --accent-secondary: #818cf8;
237
+ --accent-tertiary: #4f46e5;
238
+ --accent-glow: rgba(99, 102, 241, 0.4);
239
+ --text-primary: #e0e7ff;
240
+ --text-secondary: #a5b4fc;
241
+ --border-color: #312e81;
242
+ --message-user: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);
243
+ --message-bot: #1e1b4b;
244
+ --hover-glow: rgba(129, 140, 248, 0.2);
245
  }
246
 
247
  /* Main container - full dark mode */
 
254
  background: var(--bg-primary) !important;
255
  }
256
 
257
+ /* Header styling - indigo gradient */
258
  .header-container {
259
+ background: linear-gradient(135deg, #4f46e5 0%, #6366f1 50%, #818cf8 100%);
260
+ padding: 3rem 2rem;
261
+ border-radius: 20px;
262
  margin-bottom: 2rem;
263
+ box-shadow: 0 25px 70px rgba(99, 102, 241, 0.5), 0 0 100px rgba(99, 102, 241, 0.2);
264
+ border: 1px solid rgba(99, 102, 241, 0.3);
265
+ position: relative;
266
+ overflow: hidden;
267
+ }
268
+
269
+ .header-container::before {
270
+ content: '';
271
+ position: absolute;
272
+ top: 0;
273
+ left: 0;
274
+ right: 0;
275
+ bottom: 0;
276
+ background: radial-gradient(circle at 30% 50%, rgba(129, 140, 248, 0.3) 0%, transparent 50%);
277
+ pointer-events: none;
278
  }
279
 
280
  .header-title {
281
  color: white;
282
+ font-size: 3rem;
283
  font-weight: 900;
284
  margin: 0;
285
  text-align: center;
286
+ text-shadow: 0 0 30px rgba(129, 140, 248, 0.8), 0 4px 20px rgba(0, 0, 0, 0.4);
287
  letter-spacing: -0.02em;
288
+ position: relative;
289
+ z-index: 1;
290
+ background: linear-gradient(to bottom, #ffffff 0%, #e0e7ff 100%);
291
+ -webkit-background-clip: text;
292
+ -webkit-text-fill-color: transparent;
293
+ background-clip: text;
294
  }
295
 
296
  .header-subtitle {
297
+ color: rgba(224, 231, 255, 0.95);
298
+ font-size: 1.2rem;
299
  text-align: center;
300
+ margin-top: 1rem;
301
  font-weight: 500;
302
+ letter-spacing: 0.02em;
303
+ position: relative;
304
+ z-index: 1;
305
+ text-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);
306
  }
307
 
308
+ /* Messenger-style chat window with indigo accents */
309
+ .chatbot, [class*="chatbot"] {
310
+ background: linear-gradient(135deg, var(--bg-secondary) 0%, var(--bg-tertiary) 100%) !important;
311
+ border: 2px solid var(--border-color) !important;
312
+ border-radius: 20px !important;
313
+ box-shadow: 0 12px 48px rgba(0, 0, 0, 0.5), 0 0 60px rgba(99, 102, 241, 0.15), inset 0 1px 0 rgba(99, 102, 241, 0.1) !important;
314
+ position: relative;
315
+ overflow: hidden;
316
  }
317
 
318
+ .chatbot::before, [class*="chatbot"]::before {
319
+ content: '';
320
+ position: absolute;
321
+ top: 0;
322
+ left: 0;
323
+ right: 0;
324
+ height: 3px;
325
+ background: linear-gradient(90deg, transparent, var(--accent-primary), transparent);
326
+ animation: shimmer 3s infinite;
327
+ }
328
+
329
+ @keyframes shimmer {
330
+ 0%, 100% { transform: translateX(-100%); }
331
+ 50% { transform: translateX(100%); }
332
+ }
333
+
334
+ /* Chat messages - indigo messenger style with glow */
335
  .message-wrap {
336
  padding: 0.5rem 1rem !important;
337
  }
338
 
339
+ .user.message, .message.user {
340
+ background: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%) !important;
341
  color: white !important;
342
+ border-radius: 20px 20px 4px 20px !important;
343
+ padding: 1rem 1.5rem !important;
344
+ margin: 0.75rem 0 !important;
345
  max-width: 75% !important;
346
  margin-left: auto !important;
347
+ box-shadow: 0 6px 20px rgba(99, 102, 241, 0.4), 0 0 20px rgba(99, 102, 241, 0.2) !important;
348
+ font-size: 0.98rem !important;
349
+ line-height: 1.6 !important;
350
+ border: 1px solid rgba(99, 102, 241, 0.4) !important;
351
+ position: relative;
352
  }
353
 
354
+ .bot.message, .message.bot {
355
  background: var(--message-bot) !important;
356
  color: var(--text-primary) !important;
357
+ border-radius: 20px 20px 20px 4px !important;
358
+ padding: 1rem 1.5rem !important;
359
+ margin: 0.75rem 0 !important;
360
  max-width: 85% !important;
361
  border: 1px solid var(--border-color) !important;
362
+ box-shadow: 0 4px 16px rgba(0, 0, 0, 0.3), inset 0 1px 0 rgba(99, 102, 241, 0.1) !important;
363
+ font-size: 0.98rem !important;
364
+ line-height: 1.7 !important;
365
+ backdrop-filter: blur(10px);
366
  }
367
 
368
+ /* Enhance all message containers */
369
+ .message {
370
+ animation: messageSlide 0.3s ease-out;
371
+ }
372
+
373
+ @keyframes messageSlide {
374
+ from {
375
+ opacity: 0;
376
+ transform: translateY(10px);
377
+ }
378
+ to {
379
+ opacity: 1;
380
+ transform: translateY(0);
381
+ }
382
+ }
383
+
384
+ /* Button styling - indigo gradient with glow */
385
  button, .primary-button {
386
+ background: linear-gradient(135deg, #6366f1 0%, #4f46e5 100%) !important;
387
  border: none !important;
388
+ border-radius: 14px !important;
389
+ font-weight: 700 !important;
390
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
391
+ box-shadow: 0 4px 20px var(--accent-glow), 0 0 20px rgba(99, 102, 241, 0.3) !important;
392
  color: white !important;
393
+ padding: 0.875rem 1.75rem !important;
394
+ text-transform: uppercase;
395
+ letter-spacing: 0.05em;
396
+ font-size: 0.85rem !important;
397
+ position: relative;
398
+ overflow: hidden;
399
+ }
400
+
401
+ button::before, .primary-button::before {
402
+ content: '';
403
+ position: absolute;
404
+ top: 0;
405
+ left: -100%;
406
+ width: 100%;
407
+ height: 100%;
408
+ background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
409
+ transition: left 0.5s;
410
+ }
411
+
412
+ button:hover::before, .primary-button:hover::before {
413
+ left: 100%;
414
  }
415
 
416
  button:hover, .primary-button:hover {
417
+ transform: translateY(-3px) scale(1.02) !important;
418
+ box-shadow: 0 12px 32px rgba(99, 102, 241, 0.6), 0 0 40px rgba(99, 102, 241, 0.4) !important;
419
+ background: linear-gradient(135deg, #818cf8 0%, #6366f1 100%) !important;
420
  }
421
 
422
+ /* Tabs - indigo dark mode with glow */
423
  .tabs {
424
  background: var(--bg-secondary) !important;
425
+ border-radius: 20px !important;
426
  border: 1px solid var(--border-color) !important;
427
+ box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4) !important;
428
  }
429
 
430
  .tab-nav {
431
+ background: linear-gradient(180deg, var(--bg-tertiary) 0%, var(--bg-secondary) 100%) !important;
432
+ border-radius: 20px 20px 0 0 !important;
433
+ border-bottom: 2px solid var(--border-color) !important;
434
+ padding: 0.75rem !important;
435
+ box-shadow: inset 0 -1px 0 rgba(99, 102, 241, 0.1) !important;
436
  }
437
 
438
  .tab-nav button {
439
+ font-weight: 700 !important;
440
+ border-radius: 12px !important;
441
  color: var(--text-secondary) !important;
442
+ border: 1px solid transparent !important;
443
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
444
+ padding: 0.875rem 1.75rem !important;
445
  margin: 0 0.25rem !important;
446
+ text-transform: uppercase;
447
+ letter-spacing: 0.05em;
448
+ font-size: 0.85rem !important;
449
+ position: relative;
450
  }
451
 
452
  .tab-nav button:hover {
453
+ background: rgba(99, 102, 241, 0.15) !important;
454
  color: var(--accent-secondary) !important;
455
+ border-color: rgba(99, 102, 241, 0.3) !important;
456
+ transform: translateY(-2px);
457
+ box-shadow: 0 4px 12px var(--hover-glow) !important;
458
  }
459
 
460
  .tab-nav button.selected {
461
+ background: linear-gradient(135deg, #6366f1 0%, #4f46e5 100%) !important;
462
  color: white !important;
463
+ box-shadow: 0 6px 20px var(--accent-glow), 0 0 30px rgba(99, 102, 241, 0.3) !important;
464
+ border-color: rgba(99, 102, 241, 0.5) !important;
465
+ transform: translateY(-2px);
466
  }
467
 
468
+ /* Input fields - indigo dark mode with glow effect */
469
  textarea, input, .input-box {
470
  background: var(--bg-tertiary) !important;
471
  border: 2px solid var(--border-color) !important;
472
+ border-radius: 16px !important;
473
  color: var(--text-primary) !important;
474
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
475
+ padding: 1rem 1.25rem !important;
476
+ box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.3) !important;
477
  }
478
 
479
  textarea:focus, input:focus, .input-box:focus {
480
  border-color: var(--accent-primary) !important;
481
+ box-shadow: 0 0 0 4px var(--accent-glow), 0 0 30px rgba(99, 102, 241, 0.3), inset 0 2px 8px rgba(0, 0, 0, 0.2) !important;
482
  background: var(--bg-secondary) !important;
483
  outline: none !important;
484
+ transform: translateY(-1px);
485
  }
486
 
487
  textarea::placeholder, input::placeholder {
 
498
  padding: 0.75rem 1rem !important;
499
  }
500
 
501
+ /* Stats and info cards - indigo dark mode with depth */
502
  .stats-box, .info-card {
503
+ background: linear-gradient(135deg, var(--bg-secondary) 0%, var(--bg-tertiary) 100%) !important;
504
+ padding: 2rem !important;
505
+ border-radius: 20px !important;
506
  border: 1px solid var(--border-color) !important;
507
+ box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4), inset 0 1px 0 rgba(99, 102, 241, 0.1) !important;
508
  color: var(--text-primary) !important;
509
+ transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1) !important;
510
+ position: relative;
511
+ overflow: hidden;
512
+ }
513
+
514
+ .stats-box::before, .info-card::before {
515
+ content: '';
516
+ position: absolute;
517
+ top: 0;
518
+ left: 0;
519
+ right: 0;
520
+ bottom: 0;
521
+ background: radial-gradient(circle at 80% 20%, rgba(99, 102, 241, 0.15) 0%, transparent 50%);
522
+ opacity: 0;
523
+ transition: opacity 0.4s ease;
524
+ pointer-events: none;
525
  }
526
 
527
  .info-card:hover, .stats-box:hover {
528
+ transform: translateY(-6px) scale(1.01) !important;
529
+ box-shadow: 0 16px 48px rgba(99, 102, 241, 0.3), 0 0 60px rgba(99, 102, 241, 0.2) !important;
530
  border-color: var(--accent-primary) !important;
531
  }
532
 
533
+ .info-card:hover::before, .stats-box:hover::before {
534
+ opacity: 1;
535
+ }
536
+
537
+ /* Markdown content styling - indigo dark mode */
538
  .markdown-text, .prose {
539
  color: var(--text-primary) !important;
540
+ line-height: 1.8 !important;
541
  }
542
 
543
  .markdown-text h1, .markdown-text h2, .markdown-text h3,
544
  .prose h1, .prose h2, .prose h3 {
545
  color: var(--accent-secondary) !important;
546
+ font-weight: 800 !important;
547
+ text-shadow: 0 0 20px rgba(99, 102, 241, 0.3);
548
+ margin-top: 1.5em !important;
549
+ margin-bottom: 0.75em !important;
550
  }
551
 
552
  .markdown-text strong, .prose strong {
553
+ color: var(--accent-secondary) !important;
554
  font-weight: 700 !important;
555
  }
556
 
557
  .markdown-text code, .prose code {
558
  background: var(--bg-tertiary) !important;
559
  color: var(--accent-secondary) !important;
560
+ padding: 0.3rem 0.6rem !important;
561
+ border-radius: 8px !important;
562
  font-size: 0.9em !important;
563
+ border: 1px solid rgba(99, 102, 241, 0.3) !important;
564
+ box-shadow: 0 0 10px rgba(99, 102, 241, 0.2) !important;
565
+ font-family: 'Fira Code', 'Courier New', monospace !important;
566
  }
567
 
568
  .markdown-text pre, .prose pre {
569
+ background: linear-gradient(135deg, #0a0e27 0%, #1a1b26 100%) !important;
570
  color: #a9b1d6 !important;
571
+ padding: 1.5rem !important;
572
+ border-radius: 16px !important;
573
  overflow-x: auto !important;
574
  border: 1px solid var(--border-color) !important;
575
+ box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.4), 0 4px 16px rgba(0, 0, 0, 0.3) !important;
576
+ }
577
+
578
+ .markdown-text a, .prose a {
579
+ color: var(--accent-secondary) !important;
580
+ text-decoration: none !important;
581
+ border-bottom: 2px solid var(--accent-primary) !important;
582
+ transition: all 0.3s ease !important;
583
+ }
584
+
585
+ .markdown-text a:hover, .prose a:hover {
586
+ color: var(--accent-primary) !important;
587
+ text-shadow: 0 0 10px rgba(99, 102, 241, 0.5) !important;
588
  }
589
 
590
  /* Labels and text */
 
606
  border-radius: 12px !important;
607
  }
608
 
609
+ /* Scrollbar styling - indigo themed */
610
  ::-webkit-scrollbar {
611
+ width: 12px;
612
+ height: 12px;
613
  }
614
 
615
  ::-webkit-scrollbar-track {
616
  background: var(--bg-secondary);
617
+ border-radius: 10px;
618
+ border: 1px solid var(--border-color);
619
  }
620
 
621
  ::-webkit-scrollbar-thumb {
622
+ background: linear-gradient(180deg, var(--accent-primary) 0%, var(--accent-tertiary) 100%);
623
+ border-radius: 10px;
624
+ border: 2px solid var(--bg-secondary);
625
+ box-shadow: 0 0 10px rgba(99, 102, 241, 0.3);
626
  }
627
 
628
  ::-webkit-scrollbar-thumb:hover {
629
+ background: linear-gradient(180deg, var(--accent-secondary) 0%, var(--accent-primary) 100%);
630
+ box-shadow: 0 0 20px rgba(99, 102, 241, 0.5);
631
  }
632
 
633
  /* Loading animation */
 
686
 
687
  with demo:
688
 
689
+ # Header with indigo gradient and glow effect
690
  gr.HTML("""
691
  <div class="header-container">
692
  <h1 class="header-title">🚀 Docs Navigator MCP</h1>
693
+ <p class="header-subtitle">✨ AI-Powered Documentation Intelligence with Claude ✨</p>
694
  </div>
695
  """)
696