From c17785e38aa36a6fe1dc1a7fc46c287c2bbd9e77 Mon Sep 17 00:00:00 2001 From: ectasy663 Date: Sun, 20 Sep 2026 12:19:23 +0530 Subject: [PATCH] design: cyan -> rgb(12,96,96) in light theme, #00F0FF stays in dark theme - globals.css: add --cyan-ai CSS variable (rgb(12,96,96) light / #00F0FF dark) + opacity variants --cyan-ai-10/20/30/40/50/80 - Bulk replace all #00F0FF hardcoded Tailwind arbitrary values with var(--cyan-ai) / var(--cyan-ai-10) / etc across 55+ TSX/TS files - Shadow glow colours also updated (suppressed by box-shadow:none in light mode) - TypeScript: 0 errors --- src/app/admin/agents/page.tsx | 10 +-- src/app/admin/layout.tsx | 8 +-- src/app/admin/page.tsx | 26 ++++---- src/app/admin/questions/page.tsx | 10 +-- src/app/admin/settings/page.tsx | 14 ++--- src/app/admin/students/[studentId]/page.tsx | 16 ++--- src/app/admin/students/page.tsx | 4 +- src/app/cancellation-policy/page.tsx | 8 +-- src/app/cbt/[examId]/page.tsx | 8 +-- src/app/checkout/page.tsx | 24 +++---- .../dashboard/ai-coach/cbt-dpp/[id]/page.tsx | 26 ++++---- src/app/dashboard/ai-coach/cbt-dpp/page.tsx | 24 +++---- .../ai-coach/college-predictor/page.tsx | 28 ++++----- src/app/dashboard/ai-coach/heatmap/page.tsx | 14 ++--- src/app/dashboard/ai-coach/mistakes/page.tsx | 24 +++---- src/app/dashboard/ai-coach/page.tsx | 34 +++++----- src/app/dashboard/ai-coach/readiness/page.tsx | 26 ++++---- src/app/dashboard/ai-coach/strategy/page.tsx | 16 ++--- .../dashboard/ai-coach/study-plan/page.tsx | 30 ++++----- .../ai-coach/time-optimization/page.tsx | 18 +++--- src/app/dashboard/ai-coach/tutor/page.tsx | 8 +-- .../ai-coach/weekly-progress/page.tsx | 14 ++--- src/app/dashboard/analytics/page.tsx | 16 ++--- .../cbt/history/[attemptId]/page.tsx | 4 +- src/app/dashboard/cbt/page.tsx | 26 ++++---- src/app/dashboard/community/page.tsx | 38 ++++++------ src/app/dashboard/dpp/page.tsx | 16 ++--- src/app/dashboard/layout.tsx | 38 ++++++------ src/app/dashboard/leaderboard/page.tsx | 22 +++---- src/app/dashboard/materials/page.tsx | 8 +-- src/app/dashboard/page.tsx | 12 ++-- src/app/dashboard/progress/page.tsx | 12 ++-- src/app/dashboard/rank-predictor/page.tsx | 28 ++++----- src/app/dashboard/settings/page.tsx | 22 +++---- src/app/dashboard/streaks/page.tsx | 10 +-- src/app/forgot-password/page.tsx | 16 ++--- src/app/globals.css | 18 ++++++ src/app/login/page.tsx | 14 ++--- src/app/onboarding/page.tsx | 16 ++--- src/app/page.tsx | 62 +++++++++---------- src/app/upgrade/page.tsx | 24 +++---- src/components/AI/AITutorChat.tsx | 4 +- src/components/AI/AdaptiveStudyPlan.tsx | 6 +- src/components/AI/CollegePredictorCard.tsx | 8 +-- src/components/AI/DailyChallengeBanner.tsx | 4 +- src/components/AI/ExamStrategyCard.tsx | 8 +-- src/components/AI/FeatureIndex.tsx | 6 +- src/components/AI/MistakeHeatmap.tsx | 4 +- src/components/AI/MistakeReviewCard.tsx | 22 +++---- src/components/AI/ProgressShare.tsx | 12 ++-- src/components/AI/ReadinessGauge.tsx | 14 ++--- src/components/AI/StudyPlanCard.tsx | 20 +++--- .../AI/StudyTimeOptimizationCard.tsx | 12 ++-- src/components/AI/TutorChat.tsx | 20 +++--- src/components/AI/WeeklyProgressReport.tsx | 20 +++--- .../Dashboard/StreakOnboardingModal.tsx | 8 +-- src/components/TierBadge.tsx | 4 +- 57 files changed, 491 insertions(+), 473 deletions(-) diff --git a/src/app/admin/agents/page.tsx b/src/app/admin/agents/page.tsx index 55e6ff7..e40537f 100644 --- a/src/app/admin/agents/page.tsx +++ b/src/app/admin/agents/page.tsx @@ -1,4 +1,4 @@ -import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card" +import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card" import { Activity, BrainCircuit, Zap, Server, ShieldCheck } from "lucide-react" export default function AgentsPage() { @@ -23,7 +23,7 @@ export default function AgentsPage() {
-
Operational +
Operational
@@ -51,9 +51,9 @@ export default function AgentsPage() { - {agent.name} + {agent.name} -
+
{agent.status}
@@ -74,7 +74,7 @@ export default function AgentsPage() {
diff --git a/src/app/admin/layout.tsx b/src/app/admin/layout.tsx index da2b558..f17498d 100644 --- a/src/app/admin/layout.tsx +++ b/src/app/admin/layout.tsx @@ -1,4 +1,4 @@ -"use client" +"use client" import { ReactNode } from "react" import { LayoutDashboard, Users, Database, Terminal, Settings, FileText, Tag } from "lucide-react" @@ -11,12 +11,12 @@ export default function AdminLayout({ children }: { children: ReactNode }) { const pathname = usePathname() return ( -
+
{/* Sidebar */}
- @@ -51,14 +51,14 @@ export default function AdminDashboard() {

+2,401 this week

- + AI Agent Accuracy -
+
-
96.4%
-

Based on 1.2M interactions

+
96.4%
+

Based on 1.2M interactions

@@ -84,8 +84,8 @@ export default function AdminDashboard() { - - + + @@ -93,9 +93,9 @@ export default function AdminDashboard() { `${value}M`} /> - + @@ -157,7 +157,7 @@ export default function AdminDashboard() {
Recent Question Uploads
- +
@@ -178,7 +178,7 @@ export default function AdminDashboard() { Thermodynamics An ideal gas undergoes an isothermal expansion... - + @@ -187,7 +187,7 @@ export default function AdminDashboard() { Calculus Evaluate the integral of e^x sin(x) dx... - + diff --git a/src/app/admin/questions/page.tsx b/src/app/admin/questions/page.tsx index 9e3308f..21ac204 100644 --- a/src/app/admin/questions/page.tsx +++ b/src/app/admin/questions/page.tsx @@ -1,4 +1,4 @@ -import { Button } from "@/components/ui/button" +import { Button } from "@/components/ui/button" import { Badge } from "@/components/ui/badge" import { Search, Plus, Filter, MoreHorizontal, Edit, Trash } from "lucide-react" @@ -20,7 +20,7 @@ export default function QuestionsPage() {
- +
@@ -31,7 +31,7 @@ export default function QuestionsPage() { @@ -70,7 +70,7 @@ export default function QuestionsPage() { @@ -79,7 +79,7 @@ export default function QuestionsPage() {
- +
diff --git a/src/app/admin/settings/page.tsx b/src/app/admin/settings/page.tsx index d1e6f99..c8913eb 100644 --- a/src/app/admin/settings/page.tsx +++ b/src/app/admin/settings/page.tsx @@ -1,4 +1,4 @@ -"use client"; +"use client"; import { useState, useEffect } from "react"; import { Button } from "@/components/ui/button" @@ -72,13 +72,13 @@ export default function SettingsPage() {
- +
- +
- +
@@ -106,7 +106,7 @@ export default function SettingsPage() { type="number" value={settings.trial_duration_days} onChange={(e) => setSettings(prev => ({ ...prev, trial_duration_days: parseInt(e.target.value) || 0 }))} - className="w-full bg-background border border-border rounded-lg px-4 py-2 text-sm focus:outline-none focus:ring-1 focus:ring-[#00F0FF]" + className="w-full bg-background border border-border rounded-lg px-4 py-2 text-sm focus:outline-none focus:ring-1 focus:ring-[var(--cyan-ai)]" />
@@ -114,13 +114,13 @@ export default function SettingsPage() {
- + diff --git a/src/app/admin/students/[studentId]/page.tsx b/src/app/admin/students/[studentId]/page.tsx index 478d1d4..d9c2329 100644 --- a/src/app/admin/students/[studentId]/page.tsx +++ b/src/app/admin/students/[studentId]/page.tsx @@ -1,4 +1,4 @@ -"use client" +"use client" import { useEffect, useState } from "react" import { useParams, useRouter } from "next/navigation" @@ -12,7 +12,7 @@ import { } from "lucide-react" const TIER_STYLE: Record = { - "Al_Coach": "bg-[#00F0FF]/10 text-[#00F0FF] border-[#00F0FF]/20", + "Al_Coach": "bg-[var(--cyan-ai-10)] text-[var(--cyan-ai)] border-[var(--cyan-ai-20)]", "Pro": "bg-yellow-500/10 text-yellow-500 border-yellow-500/20", "Free": "bg-secondary text-foreground border-border", } @@ -114,7 +114,7 @@ export default function StudentKundliPage() { - @@ -131,7 +131,7 @@ export default function StudentKundliPage() { {data.profile_image_url ? ( {data.name} ) : ( -
+
{data.name.charAt(0)}
)} @@ -203,7 +203,7 @@ export default function StudentKundliPage() { {/* Stats Grid */}
{[ - { label: "Tests Attempted", value: data.stats.total_tests, color: "text-[#00F0FF]", icon: }, + { label: "Tests Attempted", value: data.stats.total_tests, color: "text-[var(--cyan-ai)]", icon: }, { label: "Avg Accuracy", value: data.stats.avg_accuracy ? `${data.stats.avg_accuracy}%` : "—", color: "text-green-500", icon: }, { label: "AI Sessions", value: data.stats.mastered_mistakes, color: "text-purple-400", icon: }, { @@ -240,7 +240,7 @@ export default function StudentKundliPage() { - Recent Activity + Recent Activity @@ -255,7 +255,7 @@ export default function StudentKundliPage() {
{formatDate(a.submitted_at)}
-
{a.score}/{a.total_questions}
+
{a.score}/{a.total_questions}
{a.accuracy.toFixed(1)}% acc
@@ -293,7 +293,7 @@ export default function StudentKundliPage() { - Subscription History + Subscription History diff --git a/src/app/admin/students/page.tsx b/src/app/admin/students/page.tsx index 9642a5e..28c73e9 100644 --- a/src/app/admin/students/page.tsx +++ b/src/app/admin/students/page.tsx @@ -1,4 +1,4 @@ -"use client" +"use client" import { useEffect, useState } from "react" import { Badge } from "@/components/ui/badge" @@ -7,7 +7,7 @@ import { Search, Download, Flame, RefreshCw } from "lucide-react" import { useRouter } from "next/navigation" const TIER_STYLE: Record = { - "Al_Coach": "bg-[#00F0FF]/10 text-[#00F0FF] border-[#00F0FF]/20 font-bold", + "Al_Coach": "bg-[var(--cyan-ai-10)] text-[var(--cyan-ai)] border-[var(--cyan-ai-20)] font-bold", "Pro": "bg-yellow-500/10 text-yellow-500 border-yellow-500/20 font-bold", "Free": "bg-secondary text-foreground border-border", } diff --git a/src/app/cancellation-policy/page.tsx b/src/app/cancellation-policy/page.tsx index f2b37a9..b3972ac 100644 --- a/src/app/cancellation-policy/page.tsx +++ b/src/app/cancellation-policy/page.tsx @@ -1,4 +1,4 @@ -import Link from 'next/link'; +import Link from 'next/link'; export default function CancellationPolicyPage() { return ( @@ -31,7 +31,7 @@ export default function CancellationPolicyPage() {
  • Your subscription will not auto-renew at the end of the current billing period
  • You will continue to have full access to your paid features until the end of the current billing period
  • -
  • No refund will be issued for the remaining days of the current billing period, except as provided in our Refund Policy
  • +
  • No refund will be issued for the remaining days of the current billing period, except as provided in our Refund Policy

2.3 Timing

@@ -44,14 +44,14 @@ export default function CancellationPolicyPage() {

4. Cancellation by PragatiVeer

We reserve the right to cancel or suspend your subscription immediately if:

In such cases, fees paid are non-refundable.

5. Account Deletion

-

Cancelling your subscription does not delete your account. To delete your account and all associated data, please follow the process outlined in our Privacy Policy.

+

Cancelling your subscription does not delete your account. To delete your account and all associated data, please follow the process outlined in our Privacy Policy.

6. Contact

For any questions regarding this Cancellation Policy, contact us at contact@pragativeer.com or reach out to our Grievance Officer:

diff --git a/src/app/cbt/[examId]/page.tsx b/src/app/cbt/[examId]/page.tsx index f8da424..f17be0f 100644 --- a/src/app/cbt/[examId]/page.tsx +++ b/src/app/cbt/[examId]/page.tsx @@ -1,4 +1,4 @@ -"use client" +"use client" import { useEffect, useState, use, useRef } from "react" import { Button } from "@/components/ui/button" @@ -422,9 +422,9 @@ export default function CBTExamPage({ params }: { params: Promise<{ examId: stri
- - - + + +
diff --git a/src/app/checkout/page.tsx b/src/app/checkout/page.tsx index 42c529b..9021f1f 100644 --- a/src/app/checkout/page.tsx +++ b/src/app/checkout/page.tsx @@ -1,4 +1,4 @@ -"use client" +"use client" import { useEffect, useState } from "react" import { useRouter, useSearchParams } from "next/navigation" @@ -18,7 +18,7 @@ import { Suspense } from "react" export default function CheckoutPage() { return ( -
}> +
}> ) @@ -137,7 +137,7 @@ function CheckoutContent() { address: address }, theme: { - color: "#00F0FF" + color: "var(--cyan-ai)" } } @@ -171,7 +171,7 @@ function CheckoutContent() { if (userLoading || !userId) { return (
- +
) } @@ -179,12 +179,12 @@ function CheckoutContent() { if (success) { return (
- - + +

Payment Successful!

Your account has been upgraded to the {tier} tier.

- + Redirecting to dashboard...
@@ -217,7 +217,7 @@ function CheckoutContent() { onChange={(e) => setPhone(e.target.value.replace(/[^0-9]/g, ''))} maxLength={10} placeholder="9876543210" - className="w-full bg-background border border-border rounded-xl px-4 py-3 text-sm focus:outline-none focus:ring-2 focus:ring-[#00F0FF] focus:border-transparent transition-all" + className="w-full bg-background border border-border rounded-xl px-4 py-3 text-sm focus:outline-none focus:ring-2 focus:ring-[var(--cyan-ai)] focus:border-transparent transition-all" />
@@ -227,7 +227,7 @@ function CheckoutContent() { onChange={(e) => setAddress(e.target.value)} placeholder="Complete address (House No, Street, City, State, PIN)" rows={3} - className="w-full bg-background border border-border rounded-xl px-4 py-3 text-sm focus:outline-none focus:ring-2 focus:ring-[#00F0FF] focus:border-transparent transition-all resize-none" + className="w-full bg-background border border-border rounded-xl px-4 py-3 text-sm focus:outline-none focus:ring-2 focus:ring-[var(--cyan-ai)] focus:border-transparent transition-all resize-none" />
@@ -239,7 +239,7 @@ function CheckoutContent() {

Summary

- + Order Summary @@ -255,7 +255,7 @@ function CheckoutContent() {
Total Amount - ₹{amount.toLocaleString()} + ₹{amount.toLocaleString()}
{error && ( @@ -266,7 +266,7 @@ function CheckoutContent() { @@ -171,7 +171,7 @@ export default function AIComCBTDPPPage() {
- + Question {activeQuestion + 1} of {sampleQuestions.length} @@ -192,7 +192,7 @@ export default function AIComCBTDPPPage() { let btnStyle = "border-border bg-secondary/20 hover:border-primary/50 text-foreground" if (isSelected) { - btnStyle = "border-[#00F0FF] bg-[#00F0FF]/15 text-[#00F0FF] font-bold shadow-[0_0_12px_rgba(0,240,255,0.15)]" + btnStyle = "border-[var(--cyan-ai)] bg-[var(--cyan-ai)]/15 text-[var(--cyan-ai)] font-bold shadow-[0_0_12px_rgba(12,96,96,0.15)]" } if (submitted) { if (isCorrect) btnStyle = "border-emerald-500 bg-emerald-500/20 text-emerald-400 font-bold" @@ -216,7 +216,7 @@ export default function AIComCBTDPPPage() {
{submitted && ( -
+
AI Solution & Explanation:

{sampleQuestions[activeQuestion].explanation}

@@ -236,7 +236,7 @@ export default function AIComCBTDPPPage() { @@ -258,9 +258,9 @@ export default function AIComCBTDPPPage() { onClick={() => setActiveQuestion(idx)} className={`h-10 rounded-xl text-xs font-extrabold transition-all border ${ isCurr - ? "border-[#00F0FF] bg-[#00F0FF] text-black ring-2 ring-[#00F0FF]/50" + ? "border-[var(--cyan-ai)] bg-[var(--cyan-ai)] text-black ring-2 ring-[var(--cyan-ai-10)]" : isAns - ? "bg-[#00F0FF]/20 border-[#00F0FF]/40 text-[#00F0FF]" + ? "bg-[var(--cyan-ai-20)] border-[var(--cyan-ai-40)] text-[var(--cyan-ai)]" : "bg-secondary/40 border-border text-muted-foreground hover:border-primary" }`} > @@ -272,10 +272,10 @@ export default function AIComCBTDPPPage() {
- Current Question + Current Question
- Answered + Answered
Unattempted diff --git a/src/app/dashboard/ai-coach/cbt-dpp/page.tsx b/src/app/dashboard/ai-coach/cbt-dpp/page.tsx index 6d56dea..0ebf92e 100644 --- a/src/app/dashboard/ai-coach/cbt-dpp/page.tsx +++ b/src/app/dashboard/ai-coach/cbt-dpp/page.tsx @@ -1,4 +1,4 @@ -"use client" +"use client" import { Button } from "@/components/ui/button" import { Card, CardContent } from "@/components/ui/card" @@ -98,8 +98,8 @@ export default function AIDailyPracticePage() {

- - + + AI Daily Practice (DPP)

@@ -108,7 +108,7 @@ export default function AIDailyPracticePage() {

- + AI Powered
@@ -121,7 +121,7 @@ export default function AIDailyPracticePage() { type="date" value={dateFilter} onChange={(e) => setDateFilter(e.target.value)} - className="px-3 py-1.5 bg-background border border-border rounded-lg text-xs font-bold focus:ring-2 focus:ring-[#00F0FF] outline-none text-muted-foreground mr-2" + className="px-3 py-1.5 bg-background border border-border rounded-lg text-xs font-bold focus:ring-2 focus:ring-[var(--cyan-ai)] outline-none text-muted-foreground mr-2" /> Difficulty: {['Mixed', 'Easy', 'Medium', 'Hard'].map((diff) => ( @@ -158,15 +158,15 @@ export default function AIDailyPracticePage() { const isExpired = endTime ? now > endTime : false; return ( - +
- {isAttempted ? :
} + {isAttempted ? :
}
- + {user?.target_exam?.replace("_", " ") || "JEE/NEET"} • @@ -183,7 +183,7 @@ export default function AIDailyPracticePage() { ) : null}
-

+

{cleanTitle(dpp.title)}

@@ -213,7 +213,7 @@ export default function AIDailyPracticePage() { {!isExpired && ( - @@ -221,7 +221,7 @@ export default function AIDailyPracticePage() { ) : ( - @@ -326,7 +326,7 @@ export default function AIDailyPracticePage() { Close Reader - diff --git a/src/app/dashboard/ai-coach/college-predictor/page.tsx b/src/app/dashboard/ai-coach/college-predictor/page.tsx index 5a6a578..fadc1b9 100644 --- a/src/app/dashboard/ai-coach/college-predictor/page.tsx +++ b/src/app/dashboard/ai-coach/college-predictor/page.tsx @@ -1,4 +1,4 @@ -"use client" +"use client" import { CollegePredictorCard } from "@/components/AI/CollegePredictorCard" import { Card, CardContent } from "@/components/ui/card" @@ -27,8 +27,8 @@ export default function CollegePredictorPage() {

- - + + AI College & Cutoff Predictor

@@ -36,7 +36,7 @@ export default function CollegePredictorPage() { Discover your probable target medical & engineering colleges based on current mock exam scores and historical cutoffs.

- + AI Powered
@@ -45,7 +45,7 @@ export default function CollegePredictorPage() { {/* Summary KPI Strip */}
{[ - { label: "Predicted Rank", value: isDemo ? "~4,200" : "--", icon: , color: "border-[#00F0FF]/20 bg-[#00F0FF]/5" }, + { label: "Predicted Rank", value: isDemo ? "~4,200" : "--", icon: , color: "border-[var(--cyan-ai-20)] bg-[var(--cyan-ai-10)]" }, { label: "Target Colleges", value: isDemo ? "12" : "0", icon: , color: "border-amber-400/20 bg-amber-400/5" }, { label: "Reach Colleges", value: isDemo ? "5" : "0", icon: , color: "border-purple-400/20 bg-purple-400/5" }, { label: "Safe Colleges", value: isDemo ? "18" : "0", icon: , color: "border-green-400/20 bg-green-400/5" }, @@ -68,7 +68,7 @@ export default function CollegePredictorPage() { {/* Cutoff Trend Chart */}
- +

NIT Trichy CSE — Closing Rank Trend

Improving Cutoffs @@ -79,7 +79,7 @@ export default function CollegePredictorPage() {
{d.rank.toLocaleString()}
{d.year} @@ -91,25 +91,25 @@ export default function CollegePredictorPage() {
- -

+ +

Cutoff Modelling Parameters

  • - + Trained on 100,000+ candidate rank trends across 2021–2025 counselling rounds.
  • - + Supports All India Quota (AIQ) & State Quota seat adjustments.
  • - + Simulates category reservation cutoffs: General, OBC, SC, ST, EWS.
  • - + Score updated daily as you complete more mock tests.
@@ -125,7 +125,7 @@ export default function CollegePredictorPage() { in Maths → upgrades you from NIT Trichy to IIT Roorkee
  • - Fix Optics + Fix Optics errors to recover ~8 marks in Physics alone
  • diff --git a/src/app/dashboard/ai-coach/heatmap/page.tsx b/src/app/dashboard/ai-coach/heatmap/page.tsx index 20841e5..324712a 100644 --- a/src/app/dashboard/ai-coach/heatmap/page.tsx +++ b/src/app/dashboard/ai-coach/heatmap/page.tsx @@ -1,4 +1,4 @@ -"use client" +"use client" import { MistakeHeatmap } from "@/components/AI/MistakeHeatmap" import { Flame, AlertTriangle, TrendingDown, BookOpen, ArrowRight, BarChart2, Target, CheckCircle2 } from "lucide-react" @@ -41,8 +41,8 @@ export default function HeatmapPage() {

    - - + + Mistake Heatmap Vault

    @@ -50,7 +50,7 @@ export default function HeatmapPage() { Visual density map of your errors across subjects and topics — pinpoint your weakest areas instantly.

    - + Error Density Analysis
    @@ -143,9 +143,9 @@ export default function HeatmapPage() { {/* Action card */} - + -

    What To Do Next

    +

    What To Do Next

    {[ { label: "Start Mistake Review Session", href: "/dashboard/ai-coach/mistakes" }, @@ -166,7 +166,7 @@ export default function HeatmapPage() {
    - +

    Pro Tip: Focus the next 3 days entirely on Rotational Dynamics — it alone is worth 8–12 marks in JEE and shows an 80% error rate across your last 5 tests.

    diff --git a/src/app/dashboard/ai-coach/mistakes/page.tsx b/src/app/dashboard/ai-coach/mistakes/page.tsx index 5db4ed1..479430a 100644 --- a/src/app/dashboard/ai-coach/mistakes/page.tsx +++ b/src/app/dashboard/ai-coach/mistakes/page.tsx @@ -1,4 +1,4 @@ -"use client" +"use client" import { useEffect, useState } from "react" import { MistakeHeatmap } from "@/components/AI/MistakeHeatmap" @@ -63,8 +63,8 @@ export default function MistakeTrackingPage() {

    - - + + Mistake Review & Spaced Repetition

    @@ -72,7 +72,7 @@ export default function MistakeTrackingPage() { Review logged errors using our AI-powered spaced repetition engine. Questions resurface at optimal intervals to cement long-term retention.

    - + AI Powered
    @@ -84,7 +84,7 @@ export default function MistakeTrackingPage() { {[ { label: "In Today's Queue", value: mistakes.length.toString(), icon: , color: "border-amber-400/20 bg-amber-400/5" }, { label: "Reviewed This Session", value: completedCount.toString(), icon: , color: "border-green-400/20 bg-green-400/5" }, - { label: "Session Progress", value: `${progressPct}%`, icon: , color: "border-[#00F0FF]/20 bg-[#00F0FF]/5" }, + { label: "Session Progress", value: `${progressPct}%`, icon: , color: "border-[var(--cyan-ai-20)] bg-[var(--cyan-ai-10)]" }, { label: "Avg Error Rate", value: avgErrorRate, icon: , color: "border-red-400/20 bg-red-400/5" }, ].map(kpi => ( @@ -103,11 +103,11 @@ export default function MistakeTrackingPage() {
    Session Progress - {completedCount} of {mistakes.length} reviewed + {completedCount} of {mistakes.length} reviewed
    @@ -123,7 +123,7 @@ export default function MistakeTrackingPage() { Active Review Queue
  • {mistakes.length > 0 && ( - + {currentIndex < mistakes.length ? `${currentIndex + 1} / ${mistakes.length}` : "Complete"} )} @@ -131,7 +131,7 @@ export default function MistakeTrackingPage() { {loading ? ( - + Loading your review queue... ) : mistakes.length === 0 ? ( @@ -154,15 +154,15 @@ export default function MistakeTrackingPage() { onSubmitReview={submitReview} /> ) : ( - - + +

    Session Complete! 🎉

    All {mistakes.length} questions reviewed. The AI engine has scheduled your next review intervals.

    -
    diff --git a/src/app/dashboard/ai-coach/page.tsx b/src/app/dashboard/ai-coach/page.tsx index 105abe6..b6fdad2 100644 --- a/src/app/dashboard/ai-coach/page.tsx +++ b/src/app/dashboard/ai-coach/page.tsx @@ -1,4 +1,4 @@ -"use client"; +"use client"; import { useEffect, useState } from "react" import { MistakeHeatmap } from "@/components/AI/MistakeHeatmap" @@ -89,7 +89,7 @@ export default function AICoachDashboard() { return (
    - + Loading AI Coach...
    @@ -99,7 +99,7 @@ export default function AICoachDashboard() { if (!hasAccessTo("ai-mistake-tracking")) { return (
    -
    +
    @@ -110,7 +110,7 @@ export default function AICoachDashboard() {
    - @@ -151,7 +151,7 @@ export default function AICoachDashboard() { {/* ── QUICK STATS ── */}
    {[ - { label: "Questions Solved", value: questionsSolved, color: "text-[#00F0FF]", bg: "bg-[#00F0FF]/5", border: "border-[#00F0FF]/20", icon: }, + { label: "Questions Solved", value: questionsSolved, color: "text-[var(--cyan-ai)]", bg: "bg-[var(--cyan-ai-10)]", border: "border-[var(--cyan-ai-20)]", icon: }, { label: "Overall Accuracy", value: overallAccuracy, color: "text-amber-500", bg: "bg-amber-500/5", border: "border-amber-500/20", icon: }, { label: "Current Streak", value: currentStreakDays, color: "text-yellow-400", bg: "bg-yellow-400/5", border: "border-yellow-400/20", icon: }, { label: "Mistakes Mastered", value: mistakesMastered, color: "text-green-400", bg: "bg-green-400/5", border: "border-green-400/20", icon: }, @@ -170,12 +170,12 @@ export default function AICoachDashboard() { {/* ── PREDICTIVE INTELLIGENCE ROW ── */}
    -
    +
    Predictive Intelligence & Strategy
    - + Full Analytics →
    @@ -192,8 +192,8 @@ export default function AICoachDashboard() {
    -
    - +
    +

    Daily Mistake Review Queue

    @@ -201,10 +201,10 @@ export default function AICoachDashboard() {
    - + Open Full Mistake Vault Page → - + {currentIndex < mistakes.length ? `${currentIndex + 1} / ${mistakes.length}` : "Finished"}
    @@ -241,9 +241,9 @@ export default function AICoachDashboard() {
    - Study Plan + Study Plan
    - + Full Schedule →
    @@ -254,7 +254,7 @@ export default function AICoachDashboard() {
    Mistake Heatmap
    - + Heatmap Vault →
    @@ -265,9 +265,9 @@ export default function AICoachDashboard() {
    - Weekly Progress Overview + Weekly Progress Overview
    - + View Details →
    @@ -278,7 +278,7 @@ export default function AICoachDashboard() {

    24/7 AI Tutor Chat Assistant

    - + Full Desk Mode →
    diff --git a/src/app/dashboard/ai-coach/readiness/page.tsx b/src/app/dashboard/ai-coach/readiness/page.tsx index 9b85b87..dcd5579 100644 --- a/src/app/dashboard/ai-coach/readiness/page.tsx +++ b/src/app/dashboard/ai-coach/readiness/page.tsx @@ -1,4 +1,4 @@ -"use client" +"use client" import { ReadinessGauge } from "@/components/AI/ReadinessGauge" import { Card, CardContent } from "@/components/ui/card" @@ -38,8 +38,8 @@ export default function ReadinessPage() {

    - - + + Exam Readiness Analytics

    @@ -47,7 +47,7 @@ export default function ReadinessPage() { Real-time algorithmic prediction of your exam readiness — based on speed, accuracy, syllabus coverage, and test history.

    - + AI Powered
    @@ -56,12 +56,12 @@ export default function ReadinessPage() { {/* KPI Strip */}
    {[ - { label: "Overall Score", value: isDemo ? "72 / 100" : "0 / 100", trend: isDemo ? "+5 this week" : "Baseline", trendUp: true, icon: }, + { label: "Overall Score", value: isDemo ? "72 / 100" : "0 / 100", trend: isDemo ? "+5 this week" : "Baseline", trendUp: true, icon: }, { label: "Accuracy Rate", value: isDemo ? "88%" : "0%", trend: isDemo ? "+3% vs last week" : "0 attempts", trendUp: isDemo, icon: }, { label: "Avg Speed / Q", value: isDemo ? "45 sec" : "-- sec", trend: isDemo ? "↓ Needs work" : "Not tested", trendUp: false, icon: }, { label: "Syllabus Covered", value: isDemo ? "64%" : "0%", trend: isDemo ? "+8% this month" : "Day 1", trendUp: true, icon: }, ].map((kpi) => ( - +
    {kpi.icon} @@ -83,7 +83,7 @@ export default function ReadinessPage() {

    Composite Readiness Index

    - + {isDemo ? "Updated Daily" : "Day 1 Initializing"}
    @@ -93,12 +93,12 @@ export default function ReadinessPage() { {/* Subject Confidence Matrix */}
    - +

    Subject Confidence Matrix

    {[ - { subject: "Biology / Maths", score: isDemo ? 82 : 0, color: "bg-[#00F0FF]", status: isDemo ? "High Readiness" : "Not Started", statusColor: isDemo ? "text-[#00F0FF]" : "text-muted-foreground" }, + { subject: "Biology / Maths", score: isDemo ? 82 : 0, color: "bg-[var(--cyan-ai)]", status: isDemo ? "High Readiness" : "Not Started", statusColor: isDemo ? "text-[var(--cyan-ai)]" : "text-muted-foreground" }, { subject: "Chemistry", score: isDemo ? 74 : 0, color: "bg-amber-400", status: isDemo ? "Moderate Readiness" : "Not Started", statusColor: isDemo ? "text-amber-400" : "text-muted-foreground" }, { subject: "Physics", score: isDemo ? 61 : 0, color: "bg-red-400", status: isDemo ? "Needs Intensive Drill" : "Not Started", statusColor: isDemo ? "text-red-400" : "text-muted-foreground" }, ].map((sub) => ( @@ -130,7 +130,7 @@ export default function ReadinessPage() { !isDemo ? "bg-white/5 border border-white/10" : i === scoreHistory.length - 1 - ? "bg-gradient-to-t from-[#00F0FF]/60 to-[#00F0FF]" + ? "bg-gradient-to-t from-[var(--cyan-ai-50)] to-[var(--cyan-ai)]" : "bg-gradient-to-t from-white/10 to-white/25" }`} style={{ height: isDemo ? `${(d.score / maxScore) * 80}px` : "4px" }} @@ -170,17 +170,17 @@ export default function ReadinessPage() {

    - Quick Actions + Quick Actions

    {[ - { label: "Practice Physics DPP", href: "/dashboard/ai-coach/cbt-dpp", color: "text-[#00F0FF]" }, + { label: "Practice Physics DPP", href: "/dashboard/ai-coach/cbt-dpp", color: "text-[var(--cyan-ai)]" }, { label: "Review Mistake Queue", href: "/dashboard/ai-coach/mistakes", color: "text-red-400" }, { label: "View Exam Strategy", href: "/dashboard/ai-coach/strategy", color: "text-amber-400" }, { label: "College Predictor", href: "/dashboard/ai-coach/college-predictor", color: "text-emerald-400" }, ].map((a) => ( + className="flex items-center justify-between p-2.5 rounded-xl border border-border/40 hover:border-[var(--cyan-ai-30)] hover:bg-white/5 transition-all group text-sm font-bold"> {a.label} → diff --git a/src/app/dashboard/ai-coach/strategy/page.tsx b/src/app/dashboard/ai-coach/strategy/page.tsx index cad5562..ae65491 100644 --- a/src/app/dashboard/ai-coach/strategy/page.tsx +++ b/src/app/dashboard/ai-coach/strategy/page.tsx @@ -1,4 +1,4 @@ -"use client" +"use client" import { ExamStrategyCard } from "@/components/AI/ExamStrategyCard" import { StudyTimeOptimizationCard } from "@/components/AI/StudyTimeOptimizationCard" @@ -30,8 +30,8 @@ export default function StrategyPage() {

    - - + + Exam Strategy & Time Optimization

    @@ -39,7 +39,7 @@ export default function StrategyPage() { Master time allocation per question, eliminate negative marking traps, and fine-tune your subject sequence for maximum score yield.

    - + AI Powered
    @@ -50,7 +50,7 @@ export default function StrategyPage() { {[ { label: "Time Per Question", value: isDemo ? "45 sec" : "-- sec", note: isDemo ? "Target: 38 sec" : "Not calibrated", icon: , color: "border-red-400/20 bg-red-400/5" }, { label: "Negative Marks Lost", value: isDemo ? "−29" : "0", note: isDemo ? "Last mock test" : "0 negative marks", icon: , color: "border-amber-400/20 bg-amber-400/5" }, - { label: "Attempted Questions", value: isDemo ? "93 / 120" : "0 / 120", note: isDemo ? "+7 vs last test" : "0 attempted", icon: , color: "border-[#00F0FF]/20 bg-[#00F0FF]/5" }, + { label: "Attempted Questions", value: isDemo ? "93 / 120" : "0 / 120", note: isDemo ? "+7 vs last test" : "0 attempted", icon: , color: "border-[var(--cyan-ai-20)] bg-[var(--cyan-ai-10)]" }, { label: "Score Yield", value: isDemo ? "214" : "0", note: isDemo ? "Predicted score" : "Baseline", icon: , color: "border-green-400/20 bg-green-400/5" }, ].map((kpi) => ( @@ -68,7 +68,7 @@ export default function StrategyPage() {
    - + Subject Sequence Strategy
    @@ -131,7 +131,7 @@ export default function StrategyPage() { {/* Strategy Tips */} - +

    AI Strategy Recommendations

    @@ -140,7 +140,7 @@ export default function StrategyPage() { {[ { tip: "Start with Chemistry (highest accuracy) to build momentum and bank easy marks in the first 40 minutes.", color: "text-green-400", label: "Opening Strategy" }, { tip: "Attempt Physics only if you are 80%+ confident per question. Otherwise, mark and skip — recover in last 10 min buffer.", color: "text-red-400", label: "Physics Guard" }, - { tip: "Reserve 10–15 minutes at the end to revisit starred questions. Your review accuracy is historically 20% higher than first-attempt.", color: "text-[#00F0FF]", label: "Review Window" }, + { tip: "Reserve 10–15 minutes at the end to revisit starred questions. Your review accuracy is historically 20% higher than first-attempt.", color: "text-[var(--cyan-ai)]", label: "Review Window" }, ].map((s) => (
    {s.label}
    diff --git a/src/app/dashboard/ai-coach/study-plan/page.tsx b/src/app/dashboard/ai-coach/study-plan/page.tsx index 1ab18cf..a59ff1b 100644 --- a/src/app/dashboard/ai-coach/study-plan/page.tsx +++ b/src/app/dashboard/ai-coach/study-plan/page.tsx @@ -1,4 +1,4 @@ -"use client" +"use client" import { StudyPlanCard } from "@/components/AI/StudyPlanCard" import { WeeklyProgressReport } from "@/components/AI/WeeklyProgressReport" @@ -18,8 +18,8 @@ export default function StudyPlanPage() {

    - - + + Personalized Daily & Weekly Study Plan

    @@ -27,7 +27,7 @@ export default function StudyPlanPage() { AI-generated task schedule dynamically tailored to fix your weak areas and maintain optimal syllabus coverage.

    - + AI Powered
    @@ -37,7 +37,7 @@ export default function StudyPlanPage() {
    {[ { label: "Tasks Today", value: isDemo ? "5" : "3", sub: isDemo ? "2 completed" : "0 completed", icon: , color: "border-green-400/20 bg-green-400/5" }, - { label: "Study Hours Today", value: isDemo ? "3.8 hrs" : "0.0 hrs", sub: "Target: 5 hrs", icon: , color: "border-[#00F0FF]/20 bg-[#00F0FF]/5" }, + { label: "Study Hours Today", value: isDemo ? "3.8 hrs" : "0.0 hrs", sub: "Target: 5 hrs", icon: , color: "border-[var(--cyan-ai-20)] bg-[var(--cyan-ai-10)]" }, { label: "Syllabus Coverage", value: isDemo ? "64%" : "0%", sub: isDemo ? "+8% this week" : "Day 1 Baseline", icon: , color: "border-amber-400/20 bg-amber-400/5" }, { label: "Current Streak", value: `${streakCount} Day${streakCount === 1 ? '' : 's'}`, sub: isDemo ? "Keep it up!" : "Day 1 active", icon: , color: "border-orange-400/20 bg-orange-400/5" }, ].map((kpi) => ( @@ -58,10 +58,10 @@ export default function StudyPlanPage() {
    - + Today's Schedule
    - + {new Date().toLocaleDateString("en-IN", { weekday: "long", day: "numeric", month: "long" })}
    @@ -80,7 +80,7 @@ export default function StudyPlanPage() { {/* Syllabus Coverage */}
    - +

    Subject Coverage Breakdown

    @@ -111,25 +111,25 @@ export default function StudyPlanPage() { {/* Sidebar */}
    - -

    + +

    AI Scheduler Rules

    • - + High-Yield Prioritization: Extra time on topics with heavy exam weightage.
    • - + Error Interleaving: Recent incorrect questions are integrated directly into study blocks.
    • - + Burnout Prevention: 10-minute micro-breaks recommended between intensive problem sets.
    • - + Spaced Repetition: SM-2 algorithm reschedules mistake reviews at optimal intervals.
    @@ -140,7 +140,7 @@ export default function StudyPlanPage() {
    {[ { day: "Tue, Aug 5", task: "Full-Length Mock — JEE Mains Pattern", type: "Test", color: "text-purple-400 bg-purple-400/10" }, - { day: "Wed, Aug 6", task: "Rotational Dynamics Intensive Drill", type: "Practice", color: "text-[#00F0FF] bg-[#00F0FF]/10" }, + { day: "Wed, Aug 6", task: "Rotational Dynamics Intensive Drill", type: "Practice", color: "text-[var(--cyan-ai)] bg-[var(--cyan-ai-10)]" }, { day: "Thu, Aug 7", task: "Chemistry Organic — Mistake Review", type: "Review", color: "text-red-400 bg-red-400/10" }, { day: "Fri, Aug 8", task: "Optics + Wave Optics Revision", type: "Revision", color: "text-yellow-400 bg-yellow-400/10" }, ].map((item) => ( diff --git a/src/app/dashboard/ai-coach/time-optimization/page.tsx b/src/app/dashboard/ai-coach/time-optimization/page.tsx index 4236a39..620f272 100644 --- a/src/app/dashboard/ai-coach/time-optimization/page.tsx +++ b/src/app/dashboard/ai-coach/time-optimization/page.tsx @@ -1,4 +1,4 @@ -"use client" +"use client" import { StudyTimeOptimizationCard } from "@/components/AI/StudyTimeOptimizationCard" import { Clock, Zap, Moon, Sun, AlertCircle, ArrowRight, BarChart2 } from "lucide-react" @@ -75,8 +75,8 @@ export default function TimeOptimizationPage() {

    - - + + Study Time Optimization

    @@ -84,7 +84,7 @@ export default function TimeOptimizationPage() { Understand your peak productive hours and schedule your hardest topics in your highest-efficiency windows.

    - + Chronobiology Analytics
    @@ -94,7 +94,7 @@ export default function TimeOptimizationPage() {
    {[ { label: "Peak Efficiency", value: isDemo ? "95%" : "--", sub: isDemo ? "2–5 PM window" : "Calibrating", color: "border-yellow-400/20 bg-yellow-400/5", icon: }, - { label: "Study Hrs Today", value: isDemo ? "3.8 h" : "0.0 h", sub: "Target: 6 h", color: "border-[#00F0FF]/20 bg-[#00F0FF]/5", icon: }, + { label: "Study Hrs Today", value: isDemo ? "3.8 h" : "0.0 h", sub: "Target: 6 h", color: "border-[var(--cyan-ai-20)] bg-[var(--cyan-ai-10)]", icon: }, { label: "Morning Block", value: isDemo ? "60%" : "0%", sub: "6–9 AM", color: "border-indigo-400/20 bg-indigo-400/5", icon: }, { label: "Evening Block", value: isDemo ? "74%" : "0%", sub: "7–9 PM", color: "border-green-400/20 bg-green-400/5", icon: }, ].map(kpi => ( @@ -113,7 +113,7 @@ export default function TimeOptimizationPage() { {/* Chart — 2/3 */}
    - + Hourly Efficiency Profile
    @@ -131,7 +131,7 @@ export default function TimeOptimizationPage() {
    {slot.slot}
    = 80 ? (slot.highlight ? "bg-yellow-400" : "bg-green-400") : slot.pct >= 60 ? "bg-[#00F0FF]" : isDemo ? "bg-red-400" : "bg-white/10"}`} + className={`h-full rounded-full ${slot.pct >= 80 ? (slot.highlight ? "bg-yellow-400" : "bg-green-400") : slot.pct >= 60 ? "bg-[var(--cyan-ai)]" : isDemo ? "bg-red-400" : "bg-white/10"}`} style={{ width: `${slot.pct}%` }} />
    @@ -158,9 +158,9 @@ export default function TimeOptimizationPage() { ))}
    - + -

    Apply Insights

    +

    Apply Insights

    {[ { label: "Schedule Today's Study Plan", href: "/dashboard/ai-coach/study-plan" }, diff --git a/src/app/dashboard/ai-coach/tutor/page.tsx b/src/app/dashboard/ai-coach/tutor/page.tsx index ce24c8a..2b02797 100644 --- a/src/app/dashboard/ai-coach/tutor/page.tsx +++ b/src/app/dashboard/ai-coach/tutor/page.tsx @@ -1,4 +1,4 @@ -"use client" +"use client" import { TutorChat } from "@/components/AI/TutorChat" import { BrainCircuit, Sparkles, MessageSquare, Lightbulb } from "lucide-react" @@ -6,7 +6,7 @@ import { Card, CardContent } from "@/components/ui/card" const CAPABILITIES = [ { icon: , label: "Concept Explanations", desc: "Step-by-step breakdown of Physics, Chemistry, Maths & Biology topics" }, - { icon: , label: "Problem Solving", desc: "Full worked solutions with formulas, derivations and shortcuts" }, + { icon: , label: "Problem Solving", desc: "Full worked solutions with formulas, derivations and shortcuts" }, { icon: , label: "Doubt Clearing", desc: "Ask follow-up questions — the AI remembers context within the session" }, ] @@ -18,8 +18,8 @@ export default function TutorChatPage() {

    - - + + AI Tutor — 24/7 Doubt Solver

    diff --git a/src/app/dashboard/ai-coach/weekly-progress/page.tsx b/src/app/dashboard/ai-coach/weekly-progress/page.tsx index 89b1ae3..a4ad1c9 100644 --- a/src/app/dashboard/ai-coach/weekly-progress/page.tsx +++ b/src/app/dashboard/ai-coach/weekly-progress/page.tsx @@ -1,4 +1,4 @@ -"use client" +"use client" import { WeeklyProgressReport } from "@/components/AI/WeeklyProgressReport" import { Target, TrendingUp, Calendar, Zap, ArrowRight, BookOpen, CheckCircle2 } from "lucide-react" @@ -47,8 +47,8 @@ export default function WeeklyProgressPage() {

    - - + + Weekly Progress Overview

    @@ -57,7 +57,7 @@ export default function WeeklyProgressPage() {

    - + Live Analytics
    @@ -85,7 +85,7 @@ export default function WeeklyProgressPage() {

    - This Week at a Glance + This Week at a Glance

    @@ -122,9 +122,9 @@ export default function WeeklyProgressPage() {
    {/* Weekly Goals */} - + -

    Weekly Goals

    +

    Weekly Goals

    {isDemo ? ( diff --git a/src/app/dashboard/analytics/page.tsx b/src/app/dashboard/analytics/page.tsx index a7d5086..2a7ab45 100644 --- a/src/app/dashboard/analytics/page.tsx +++ b/src/app/dashboard/analytics/page.tsx @@ -1,4 +1,4 @@ -"use client" +"use client" import { Card, CardContent, CardHeader, CardTitle, CardDescription } from "@/components/ui/card" import { LineChart as LineChartIcon, Activity, BrainCircuit } from "lucide-react" @@ -59,8 +59,8 @@ export default function AnalyticsPage() {

    - - + + Performance Analytics

    @@ -73,7 +73,7 @@ export default function AnalyticsPage() {
    - Projected Score Trajectory + Projected Score Trajectory {isDemo ? "Your mock scores over the last 6 months projected towards the final exam." : "Your mock test trajectory will plot here as you complete tests."} @@ -86,18 +86,18 @@ export default function AnalyticsPage() { - +
    - + - AI Diagnosis + AI Diagnosis

    diff --git a/src/app/dashboard/cbt/history/[attemptId]/page.tsx b/src/app/dashboard/cbt/history/[attemptId]/page.tsx index bfc0f23..f5c9b46 100644 --- a/src/app/dashboard/cbt/history/[attemptId]/page.tsx +++ b/src/app/dashboard/cbt/history/[attemptId]/page.tsx @@ -1,4 +1,4 @@ -"use client"; +"use client"; import { useEffect, useState, use } from "react"; import Link from "next/link"; @@ -100,7 +100,7 @@ export default function AttemptHistoryPage({ params }: { params: Promise<{ attem

    - +
    Score
    = 0.6 ? "text-green-500" : "text-amber-500"}> diff --git a/src/app/dashboard/cbt/page.tsx b/src/app/dashboard/cbt/page.tsx index 0d39a6b..d4ec6ec 100644 --- a/src/app/dashboard/cbt/page.tsx +++ b/src/app/dashboard/cbt/page.tsx @@ -1,4 +1,4 @@ -"use client"; +"use client"; import { useEffect, useState } from "react"; import Link from "next/link"; @@ -118,7 +118,7 @@ export default function CBTPage() { if (userLoading || loading) { return (
    -
    +

    Loading exams...

    ) @@ -129,8 +129,8 @@ export default function CBTPage() {

    - - + + Computer Based Tests (CBT)

    @@ -145,7 +145,7 @@ export default function CBTPage() { type="date" value={dateFilter} onChange={(e) => setDateFilter(e.target.value)} - className="w-full px-4 py-2 bg-background border border-border rounded-xl text-sm focus:ring-2 focus:ring-[#00F0FF] outline-none text-foreground dark:[color-scheme:dark] [color-scheme:light]" + className="w-full px-4 py-2 bg-background border border-border rounded-xl text-sm focus:ring-2 focus:ring-[var(--cyan-ai)] outline-none text-foreground dark:[color-scheme:dark] [color-scheme:light]" />
    @@ -155,7 +155,7 @@ export default function CBTPage() { placeholder="Search exams..." value={search} onChange={(e) => setSearch(e.target.value)} - className="w-full pl-10 pr-4 py-2 bg-background border border-border rounded-xl text-sm focus:ring-2 focus:ring-[#00F0FF] outline-none" + className="w-full pl-10 pr-4 py-2 bg-background border border-border rounded-xl text-sm focus:ring-2 focus:ring-[var(--cyan-ai)] outline-none" />
    @@ -178,7 +178,7 @@ export default function CBTPage() {

    - Upcoming & Active Exams + Upcoming & Active Exams

    {/* BUG-08 fix: Filter out already attempted exams from Upcoming & Active list */} @@ -218,11 +218,11 @@ export default function CBTPage() { const isExpired = endTime ? now > endTime : false; return ( - +
    - + {exam.type} Test {exam.exam_pattern && ( @@ -245,7 +245,7 @@ export default function CBTPage() { ) : null}
    -

    +

    {exam.title}

    @@ -262,7 +262,7 @@ export default function CBTPage() { ) : isLocked ? ( @@ -272,7 +272,7 @@ export default function CBTPage() { ) : ( - @@ -331,7 +331,7 @@ export default function CBTPage() {
    Accuracy
    -
    {Math.round(attempt.accuracy)}%
    +
    {Math.round(attempt.accuracy)}%
    @@ -142,7 +142,7 @@ export default function CommunityPage() { setSearchQuery(e.target.value)} /> @@ -158,11 +158,11 @@ export default function CommunityPage() {
    {filteredDoubts.map((doubt) => ( - + {/* Upvote Sidebar */}
    - {doubt.upvotes} @@ -214,7 +214,7 @@ export default function CommunityPage() { {expandedDoubtId === doubt.id && (
    -
    +
    AI
    @@ -232,9 +232,9 @@ export default function CommunityPage() { -
    @@ -246,7 +246,7 @@ export default function CommunityPage() { ))} {filteredDoubts.length === 0 && (
    - +

    {activeFilter === 'my-doubts' ? "No Doubts Asked Yet" : "No doubts found matching your criteria."}

    @@ -264,7 +264,7 @@ export default function CommunityPage() {

    - Ask a Doubt + Ask a Doubt

    @@ -309,17 +309,17 @@ export default function CommunityPage() {