2 lines
29 KiB
JavaScript
2 lines
29 KiB
JavaScript
import{a as J}from"./chunk-LA37G65K.js";import{a as H}from"./chunk-B4CGVF35.js";import{b as B}from"./chunk-NIBVQDYD.js";import"./chunk-LLJSP5R2.js";import"./chunk-HMKN2VB2.js";import"./chunk-WI5CBSGS.js";import"./chunk-3NOMFGTV.js";import"./chunk-T6TXUSUP.js";import"./chunk-M5XZ5N2D.js";import{b as j,g as R}from"./chunk-TAS7XC6E.js";import"./chunk-GMUETU5N.js";import"./chunk-3GOV5KJM.js";import{a as I}from"./chunk-TPLZKWZ7.js";import"./chunk-EGL4ZKWQ.js";import"./chunk-GPI43RSU.js";import{a as q,b as T,c as F,f as V,i as N}from"./chunk-6NRCTHHS.js";import"./chunk-RC3JXGN6.js";import{a as Q,b as Y}from"./chunk-N6VRXIQE.js";import"./chunk-GWD5A44H.js";import"./chunk-52JZ5I3Y.js";import{Aa as $,c as w,d as z,e as S,j as k,w as E,wa as L,x as D,ya as A,za as U}from"./chunk-COFYR5MX.js";import{Ec as M,Jb as s,Kb as i,Lb as t,Mb as x,Tb as u,Xb as f,Za as a,Zb as d,da as v,ia as _,ja as p,lc as o,mc as g,nc as O,ob as y,oc as b,ta as P,ub as l,vc as h}from"./chunk-2MUIW2M6.js";var W=()=>["/profile"],G=()=>["/categories"],X=()=>["/bookmarks"];function Z(r,n){r&1&&(i(0,"div",3),x(1,"mat-spinner",4),i(2,"p"),o(3,"Loading your dashboard..."),t()())}function ee(r,n){if(r&1){let e=u();i(0,"div",5)(1,"mat-icon",6),o(2,"error_outline"),t(),i(3,"h2"),o(4,"Failed to Load Dashboard"),t(),i(5,"p"),o(6),t(),i(7,"button",7),f("click",function(){_(e);let m=d();return p(m.loadDashboard())}),i(8,"mat-icon"),o(9,"refresh"),t(),o(10," Try Again "),t()()}if(r&2){let e=d();a(6),g(e.error())}}function te(r,n){if(r&1){let e=u();i(0,"div",17)(1,"mat-icon",18),o(2,"quiz"),t(),i(3,"h2"),o(4,"Start Your Journey!"),t(),i(5,"p"),o(6,"You haven't taken any quizzes yet. Start your first quiz to see your progress here."),t(),i(7,"button",7),f("click",function(){_(e);let m=d(2);return p(m.startNewQuiz())}),i(8,"mat-icon"),o(9,"play_arrow"),t(),o(10," Take Your First Quiz "),t()()}}function ne(r,n){if(r&1&&(i(0,"span",35),o(1),t()),r&2){let e=d().$implicit;a(),g(e.badge)}}function ie(r,n){if(r&1&&(i(0,"mat-card",28)(1,"mat-card-content")(2,"div",29)(3,"mat-icon",30),o(4),t(),l(5,ne,2,1,"span",31),t(),i(6,"div",32),o(7),t(),i(8,"div",33),o(9),t(),i(10,"div",34),o(11),t()()()),r&2){let e=n.$implicit;s("ngClass","card-"+e.color),a(4),g(e.icon),a(),s("ngIf",e.badge),a(2),g(e.value),a(2),g(e.title),a(2),g(e.description)}}function oe(r,n){if(r&1){let e=u();i(0,"div",40),f("click",function(){let m=_(e).$implicit,C=d(4);return p(C.viewCategory(m.category.id))}),i(1,"div",41)(2,"span",42),o(3),t()(),x(4,"div",43),t()}if(r&2){let e=n.$implicit;a(3),g(e.category.name)}}function re(r,n){r&1&&(i(0,"div",44)(1,"p"),o(2,"No category data available yet"),t()())}function ae(r,n){if(r&1&&(i(0,"mat-card",36)(1,"mat-card-header")(2,"mat-card-title")(3,"mat-icon"),o(4,"bar_chart"),t(),o(5," Top Categories Performance "),t()(),i(6,"mat-card-content")(7,"div",37),l(8,oe,5,1,"div",38),t(),l(9,re,3,0,"div",39),t()()),r&2){let e=d(3);a(8),s("ngForOf",e.topCategories()),a(),s("ngIf",e.topCategories().length===0)}}function ce(r,n){r&1&&(i(0,"span",55),o(1,"\u2022"),t())}function se(r,n){if(r&1&&(i(0,"mat-chip",63),o(1),t()),r&2){let e=d().$implicit;a(),O(" ",e.difficulty," ")}}function de(r,n){if(r&1){let e=u();i(0,"div",49),f("click",function(){let m=_(e).$implicit,C=d(4);return p(C.viewQuizResults(m.id))}),i(1,"div",50)(2,"mat-icon"),o(3,"quiz"),t()(),i(4,"div",51)(5,"div",52),o(6),t(),i(7,"div",53)(8,"span",54),o(9),t(),i(10,"span",55),o(11,"\u2022"),t(),i(12,"span",56),o(13),t(),l(14,ce,2,0,"span",57)(15,se,2,1,"mat-chip",58),t()(),i(16,"div",59)(17,"span",60),o(18),t(),i(19,"span",61),o(20),t()(),i(21,"mat-icon",62),o(22,"chevron_right"),t()()}if(r&2){let e=n.$implicit,c=d(4);a(6),g(e.category.name),a(3),g(c.formatDate(e.completedAt)),a(4),g(c.formatDuration(e.timeSpent)),a(),s("ngIf",e.difficulty),a(),s("ngIf",e.difficulty),a(2),s("ngClass",c.getScoreColor(e.score.earned,e.score.total)),a(),b(" ",e.score.total,"/",e.questionsAnswered," "),a(2),O("",e.score.percentage,"%")}}function me(r,n){r&1&&(i(0,"div",44)(1,"p"),o(2,"No recent quiz sessions"),t()())}function le(r,n){if(r&1){let e=u();i(0,"mat-card",45)(1,"mat-card-header")(2,"mat-card-title")(3,"mat-icon"),o(4,"history"),t(),o(5," Recent Quiz Sessions "),t(),i(6,"button",46),f("click",function(){_(e);let m=d(3);return p(m.viewAllHistory())}),o(7," View All "),i(8,"mat-icon"),o(9,"arrow_forward"),t()()(),i(10,"mat-card-content")(11,"div",47),l(12,de,23,9,"div",48),t(),l(13,me,3,0,"div",39),t()()}if(r&2){let e=d(3);a(12),s("ngForOf",e.recentSessions()),a(),s("ngIf",e.recentSessions().length===0)}}function ge(r,n){if(r&1&&(i(0,"div",71),o(1),t()),r&2){let e=d().$implicit,c=d(4);a(),O(" ",c.formatDate(e.completedAt)," ")}}function _e(r,n){if(r&1&&(i(0,"div",67)(1,"div",68)(2,"mat-icon"),o(3),t()(),i(4,"div",69),o(5),t(),l(6,ge,2,1,"div",70),t()),r&2){let e=n.$implicit;s("matTooltip",e.category.name),a(3),g(e.category.icon),a(2),g(e.category.name),a(),s("ngIf",e.completedAt)}}function pe(r,n){r&1&&(i(0,"div",44)(1,"p"),o(2,"No achievements earned yet. Keep taking quizzes to unlock badges!"),t()())}function fe(r,n){if(r&1&&(i(0,"mat-card",64)(1,"mat-card-header")(2,"mat-card-title")(3,"mat-icon"),o(4,"emoji_events"),t(),o(5," Achievements & Badges "),t()(),i(6,"mat-card-content")(7,"div",65),l(8,_e,7,4,"div",66),t(),l(9,pe,3,0,"div",39),t()()),r&2){let e=d(3);a(8),s("ngForOf",e.achievements()),a(),s("ngIf",e.achievements().length===0)}}function Ce(r,n){if(r&1){let e=u();i(0,"div",19)(1,"div",20),l(2,ie,12,6,"mat-card",21),t(),l(3,ae,10,2,"mat-card",22)(4,le,14,2,"mat-card",23)(5,fe,10,2,"mat-card",24),i(6,"div",25)(7,"button",26),f("click",function(){_(e);let m=d(2);return p(m.viewAllHistory())}),i(8,"mat-icon"),o(9,"history"),t(),o(10," View Full History "),t(),i(11,"button",27)(12,"mat-icon"),o(13,"category"),t(),o(14," Browse Categories "),t(),i(15,"button",27)(16,"mat-icon"),o(17,"bookmark"),t(),o(18," My Bookmarks "),t(),i(19,"button",26),f("click",function(){_(e);let m=d(2);return p(m.refresh())}),i(20,"mat-icon"),o(21,"refresh"),t(),o(22," Refresh "),t()()()}if(r&2){let e=d(2);a(2),s("ngForOf",e.statCards()),a(),s("ngIf",e.topCategories().length>0),a(),s("ngIf",e.recentSessions().length>0),a(),s("ngIf",e.achievements().length>0),a(6),s("routerLink",h(6,G)),a(4),s("routerLink",h(7,X))}}function ue(r,n){if(r&1){let e=u();i(0,"div",8)(1,"div",9)(2,"div",10)(3,"h1"),o(4),t(),i(5,"p",11),o(6,"Ready to test your knowledge today?"),t()(),i(7,"div",12)(8,"button",13),f("click",function(){_(e);let m=d();return p(m.startNewQuiz())}),i(9,"mat-icon"),o(10,"play_arrow"),t(),o(11," Start New Quiz "),t(),i(12,"button",14)(13,"mat-icon"),o(14,"settings"),t(),o(15," Profile Settings "),t()()(),l(16,te,11,0,"div",15)(17,Ce,23,8,"div",16),t()}if(r&2){let e=d();a(4),O("Welcome back, ",e.username(),"! \u{1F44B}"),a(8),s("routerLink",h(4,W)),a(4),s("ngIf",e.isEmpty()),a(),s("ngIf",!e.isEmpty())}}var K=class r{userService=v(J);authService=v(I);router=v(E);isLoading=P(!0);dashboard=P(null);error=P(null);username=M(()=>{try{return this.authService.authState()?.user?.username||"User"}catch{return"User"}});isEmpty=M(()=>{let n=this.dashboard();return n?n.stats.totalQuizzes===0:!0});statCards=M(()=>{let n=this.dashboard();return n?[{title:"Total Quizzes",value:n.stats.totalQuizzes,icon:"quiz",color:"primary",description:"Quizzes completed"},{title:"Overall Accuracy",value:`${n.stats.overallAccuracy.toFixed(1)}%`,icon:"percent",color:"success",description:"Correct answers"},{title:"Current Streak",value:n.stats.currentStreak,icon:"local_fire_department",color:"warning",description:"Days in a row",badge:n.stats.longestStreak>0?`Best: ${n.stats.longestStreak}`:void 0},{title:"Questions Answered",value:n.stats.totalQuestionsAnswered,icon:"question_answer",color:"accent",description:"Total questions"}]:[]});topCategories=M(()=>{let n=this.dashboard();return!n||!n.categoryPerformance?[]:[...n.categoryPerformance].sort((e,c)=>c.stats.accuracy-e.stats.accuracy).slice(0,5)});recentSessions=M(()=>{let n=this.dashboard();return!n||!n.recentSessions?[]:n.recentSessions.slice(0,5)});achievements=M(()=>this.dashboard()?.recentSessions||[]);ngOnInit(){this.loadDashboard()}loadDashboard(){let e=this.authService.authState()?.user;if(!e||!e.id){this.router.navigate(["/login"]);return}this.isLoading.set(!0),this.error.set(null),this.userService.getDashboard(e.id).subscribe({next:c=>{this.dashboard.set(c.data),this.isLoading.set(!1)},error:c=>{console.error("Dashboard error:",c),this.error.set("Failed to load dashboard"),this.isLoading.set(!1)}})}startNewQuiz(){this.router.navigate(["/quiz/setup"])}viewCategory(n){n&&this.router.navigate(["/categories",n])}viewQuizResults(n){n&&this.router.navigate(["/quiz",n,"results"])}viewAllHistory(){this.router.navigate(["/history"])}getAccuracyColor(n){return n>=80?"success":n>=60?"warning":"error"}getScoreColor(n,e){let c=n/e*100;return c>=80?"success":c>=60?"warning":"error"}formatDuration(n){if(!n)return"0s";let e=Math.floor(n/60),c=n%60;return e===0?`${c}s`:`${e}m ${c}s`}formatDate(n){if(!n)return"Unknown";let e=new Date(n),c=new Date,m=c.getTime()-e.getTime(),C=Math.floor(m/(1e3*60*60*24));return C===0?"Today":C===1?"Yesterday":C<7?`${C} days ago`:e.toLocaleDateString("en-US",{month:"short",day:"numeric",year:e.getFullYear()!==c.getFullYear()?"numeric":void 0})}refresh(){let e=this.authService.authState()?.user;e&&this.userService.getDashboard(e.id,!0).subscribe({next:c=>{this.dashboard.set(c)}})}static \u0275fac=function(e){return new(e||r)};static \u0275cmp=y({type:r,selectors:[["app-dashboard"]],decls:3,vars:3,consts:[["class","loading-container",4,"ngIf"],["class","error-container",4,"ngIf"],["class","dashboard-container",4,"ngIf"],[1,"loading-container"],["diameter","50"],[1,"error-container"],[1,"error-icon"],["mat-raised-button","","color","primary",3,"click"],[1,"dashboard-container"],[1,"welcome-section"],[1,"welcome-content"],[1,"subtitle"],[1,"welcome-actions"],["mat-raised-button","","color","primary",1,"start-quiz-btn",3,"click"],["mat-stroked-button","",1,"profile-btn",3,"routerLink"],["class","empty-state",4,"ngIf"],["class","content-section",4,"ngIf"],[1,"empty-state"],[1,"empty-icon"],[1,"content-section"],[1,"stats-grid"],["class","stat-card",3,"ngClass",4,"ngFor","ngForOf"],["class","performance-card",4,"ngIf"],["class","recent-quizzes-card",4,"ngIf"],["class","achievements-card",4,"ngIf"],[1,"quick-actions"],["mat-stroked-button","",3,"click"],["mat-stroked-button","",3,"routerLink"],[1,"stat-card",3,"ngClass"],[1,"stat-header"],[1,"stat-icon"],["class","stat-badge",4,"ngIf"],[1,"stat-value"],[1,"stat-title"],[1,"stat-description"],[1,"stat-badge"],[1,"performance-card"],[1,"category-performance"],["class","category-bar",3,"click",4,"ngFor","ngForOf"],["class","empty-section",4,"ngIf"],[1,"category-bar",3,"click"],[1,"category-info"],[1,"category-name"],[1,"progress-bar-container"],[1,"empty-section"],[1,"recent-quizzes-card"],["mat-button","","color","primary",1,"view-all-btn",3,"click"],[1,"sessions-list"],["class","session-item",3,"click",4,"ngFor","ngForOf"],[1,"session-item",3,"click"],[1,"session-icon"],[1,"session-info"],[1,"session-title"],[1,"session-meta"],[1,"session-date"],[1,"session-separator"],[1,"session-time"],["class","session-separator",4,"ngIf"],["class","difficulty-chip",4,"ngIf"],[1,"session-score"],[1,"score-value",3,"ngClass"],[1,"score-percentage"],[1,"session-arrow"],[1,"difficulty-chip"],[1,"achievements-card"],[1,"achievements-grid"],["class","achievement-item",3,"matTooltip",4,"ngFor","ngForOf"],[1,"achievement-item",3,"matTooltip"],[1,"achievement-icon"],[1,"achievement-name"],["class","achievement-date",4,"ngIf"],[1,"achievement-date"]],template:function(e,c){e&1&&l(0,Z,4,0,"div",0)(1,ee,11,1,"div",1)(2,ue,18,5,"div",2),e&2&&(s("ngIf",c.isLoading()),a(),s("ngIf",c.error()&&!c.isLoading()),a(),s("ngIf",!c.isLoading()&&!c.error()))},dependencies:[k,w,z,S,N,q,F,V,T,A,L,$,U,Y,Q,R,j,H,B,D],styles:[".dashboard-container[_ngcontent-%COMP%]{max-width:1400px;margin:0 auto;padding:2rem;animation:_ngcontent-%COMP%_fadeIn .4s ease-in}.loading-container[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:1.5rem}.loading-container[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{color:var(--text-secondary);font-size:1rem}.error-container[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:1rem;text-align:center;padding:2rem}.error-container[_ngcontent-%COMP%] .error-icon[_ngcontent-%COMP%]{font-size:4rem;width:4rem;height:4rem;color:var(--color-error)}.error-container[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{margin:0;color:var(--text-primary)}.error-container[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{color:var(--text-secondary);margin:.5rem 0 1.5rem}.welcome-section[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;padding:2rem;background:linear-gradient(135deg,var(--color-primary-light) 0%,var(--color-primary) 100%);border-radius:12px;color:#fff;animation:_ngcontent-%COMP%_slideDown .5s ease-out}.welcome-section[_ngcontent-%COMP%] .welcome-content[_ngcontent-%COMP%]{flex:1}.welcome-section[_ngcontent-%COMP%] .welcome-content[_ngcontent-%COMP%] h1[_ngcontent-%COMP%]{margin:0 0 .5rem;font-size:2rem;font-weight:600}.welcome-section[_ngcontent-%COMP%] .welcome-content[_ngcontent-%COMP%] .subtitle[_ngcontent-%COMP%]{margin:0;opacity:.9;font-size:1.1rem}.welcome-section[_ngcontent-%COMP%] .welcome-actions[_ngcontent-%COMP%]{display:flex;gap:1rem;flex-wrap:wrap}.welcome-section[_ngcontent-%COMP%] .start-quiz-btn[_ngcontent-%COMP%], .welcome-section[_ngcontent-%COMP%] .profile-btn[_ngcontent-%COMP%]{font-weight:600;padding:0 2rem;height:48px}.welcome-section[_ngcontent-%COMP%] .start-quiz-btn[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%], .welcome-section[_ngcontent-%COMP%] .profile-btn[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{margin-right:.5rem}.welcome-section[_ngcontent-%COMP%] .start-quiz-btn[_ngcontent-%COMP%]:hover, .welcome-section[_ngcontent-%COMP%] .profile-btn[_ngcontent-%COMP%]:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0003}.welcome-section[_ngcontent-%COMP%] .start-quiz-btn[_ngcontent-%COMP%]{background-color:#fff;color:var(--color-primary)}.welcome-section[_ngcontent-%COMP%] .profile-btn[_ngcontent-%COMP%]{background-color:transparent;color:#fff;border-color:#fff}.welcome-section[_ngcontent-%COMP%] .profile-btn[_ngcontent-%COMP%]:hover{background-color:#ffffff1a}@media (max-width: 768px){.welcome-section[_ngcontent-%COMP%]{flex-direction:column;align-items:flex-start;gap:1.5rem}.welcome-section[_ngcontent-%COMP%] .welcome-actions[_ngcontent-%COMP%]{width:100%}.welcome-section[_ngcontent-%COMP%] .welcome-actions[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{flex:1;min-width:0}}.empty-state[_ngcontent-%COMP%]{text-align:center;padding:4rem 2rem;animation:_ngcontent-%COMP%_fadeIn .5s ease-in}.empty-state[_ngcontent-%COMP%] .empty-icon[_ngcontent-%COMP%]{font-size:5rem;width:5rem;height:5rem;color:var(--color-primary);opacity:.5;margin-bottom:1rem}.empty-state[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{margin:0 0 1rem;color:var(--text-primary)}.empty-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{color:var(--text-secondary);margin:0 0 2rem;font-size:1.1rem}.empty-state[_ngcontent-%COMP%] button[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{margin-right:.5rem}.content-section[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:2rem}.stats-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem;margin-bottom:1rem}.stat-card[_ngcontent-%COMP%]{position:relative;overflow:hidden;transition:transform .3s ease,box-shadow .3s ease;animation:_ngcontent-%COMP%_slideUp .5s ease-out;animation-fill-mode:both}.stat-card[_ngcontent-%COMP%]:nth-child(1){animation-delay:.1s}.stat-card[_ngcontent-%COMP%]:nth-child(2){animation-delay:.2s}.stat-card[_ngcontent-%COMP%]:nth-child(3){animation-delay:.3s}.stat-card[_ngcontent-%COMP%]:nth-child(4){animation-delay:.4s}.stat-card[_ngcontent-%COMP%]:hover{transform:translateY(-4px);box-shadow:0 8px 24px #0000001f}.stat-card[_ngcontent-%COMP%] mat-card-content[_ngcontent-%COMP%]{padding:1.5rem}.stat-card[_ngcontent-%COMP%] .stat-header[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.stat-card[_ngcontent-%COMP%] .stat-icon[_ngcontent-%COMP%]{font-size:2.5rem;width:2.5rem;height:2.5rem;opacity:.8}.stat-card[_ngcontent-%COMP%] .stat-badge[_ngcontent-%COMP%]{background-color:#0000001a;padding:.25rem .75rem;border-radius:12px;font-size:.75rem;font-weight:600}.stat-card[_ngcontent-%COMP%] .stat-value[_ngcontent-%COMP%]{font-size:2.5rem;font-weight:700;margin-bottom:.25rem;line-height:1}.stat-card[_ngcontent-%COMP%] .stat-title[_ngcontent-%COMP%]{font-size:.875rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;opacity:.8;margin-bottom:.25rem}.stat-card[_ngcontent-%COMP%] .stat-description[_ngcontent-%COMP%]{font-size:.875rem;opacity:.6}.stat-card.card-primary[_ngcontent-%COMP%]{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.stat-card.card-success[_ngcontent-%COMP%]{background:linear-gradient(135deg,#f093fb,#f5576c);color:#fff}.stat-card.card-warning[_ngcontent-%COMP%]{background:linear-gradient(135deg,#fa709a,#fee140);color:#fff}.stat-card.card-accent[_ngcontent-%COMP%]{background:linear-gradient(135deg,#30cfd0,#330867);color:#fff}.performance-card[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_slideUp .6s ease-out}.performance-card[_ngcontent-%COMP%] mat-card-header[_ngcontent-%COMP%]{display:flex;align-items:center;margin-bottom:1.5rem}.performance-card[_ngcontent-%COMP%] mat-card-header[_ngcontent-%COMP%] mat-card-title[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;font-size:1.25rem;font-weight:600;margin:0}.performance-card[_ngcontent-%COMP%] mat-card-header[_ngcontent-%COMP%] mat-card-title[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{color:var(--color-primary)}.performance-card[_ngcontent-%COMP%] .category-performance[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1.5rem}.performance-card[_ngcontent-%COMP%] .category-bar[_ngcontent-%COMP%]{display:flex;align-items:center;gap:1rem;padding:1rem;border-radius:8px;background-color:var(--bg-secondary);cursor:pointer;transition:all .3s ease}.performance-card[_ngcontent-%COMP%] .category-bar[_ngcontent-%COMP%]:hover{background-color:var(--bg-hover);transform:translate(4px)}.performance-card[_ngcontent-%COMP%] .category-bar[_ngcontent-%COMP%] .category-info[_ngcontent-%COMP%]{min-width:200px;display:flex;flex-direction:column;gap:.25rem}.performance-card[_ngcontent-%COMP%] .category-bar[_ngcontent-%COMP%] .category-info[_ngcontent-%COMP%] .category-name[_ngcontent-%COMP%]{font-weight:600;color:var(--text-primary)}.performance-card[_ngcontent-%COMP%] .category-bar[_ngcontent-%COMP%] .category-info[_ngcontent-%COMP%] .category-stats[_ngcontent-%COMP%]{font-size:.875rem;color:var(--text-secondary)}.performance-card[_ngcontent-%COMP%] .category-bar[_ngcontent-%COMP%] .progress-bar-container[_ngcontent-%COMP%]{flex:1;height:12px;background-color:var(--bg-tertiary);border-radius:6px;overflow:hidden;position:relative}.performance-card[_ngcontent-%COMP%] .category-bar[_ngcontent-%COMP%] .progress-bar-container[_ngcontent-%COMP%] .progress-bar[_ngcontent-%COMP%]{height:100%;border-radius:6px;transition:width .6s ease,background-color .3s ease;animation:_ngcontent-%COMP%_progressFill 1s ease-out}.performance-card[_ngcontent-%COMP%] .category-bar[_ngcontent-%COMP%] .progress-bar-container[_ngcontent-%COMP%] .progress-bar.success[_ngcontent-%COMP%]{background:linear-gradient(90deg,#4caf50,#81c784)}.performance-card[_ngcontent-%COMP%] .category-bar[_ngcontent-%COMP%] .progress-bar-container[_ngcontent-%COMP%] .progress-bar.warning[_ngcontent-%COMP%]{background:linear-gradient(90deg,#ff9800,#ffb74d)}.performance-card[_ngcontent-%COMP%] .category-bar[_ngcontent-%COMP%] .progress-bar-container[_ngcontent-%COMP%] .progress-bar.error[_ngcontent-%COMP%]{background:linear-gradient(90deg,#f44336,#e57373)}.performance-card[_ngcontent-%COMP%] .category-bar[_ngcontent-%COMP%] .accuracy-value[_ngcontent-%COMP%]{min-width:60px;text-align:right;font-weight:600;font-size:1.1rem;color:var(--text-primary)}.recent-quizzes-card[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_slideUp .7s ease-out}.recent-quizzes-card[_ngcontent-%COMP%] mat-card-header[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.recent-quizzes-card[_ngcontent-%COMP%] mat-card-header[_ngcontent-%COMP%] mat-card-title[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;font-size:1.25rem;font-weight:600;margin:0}.recent-quizzes-card[_ngcontent-%COMP%] mat-card-header[_ngcontent-%COMP%] mat-card-title[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{color:var(--color-primary)}.recent-quizzes-card[_ngcontent-%COMP%] mat-card-header[_ngcontent-%COMP%] .view-all-btn[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.25rem}.recent-quizzes-card[_ngcontent-%COMP%] .sessions-list[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.75rem}.recent-quizzes-card[_ngcontent-%COMP%] .session-item[_ngcontent-%COMP%]{display:flex;align-items:center;gap:1rem;padding:1rem;border-radius:8px;background-color:var(--bg-secondary);cursor:pointer;transition:all .3s ease}.recent-quizzes-card[_ngcontent-%COMP%] .session-item[_ngcontent-%COMP%]:hover{background-color:var(--bg-hover);transform:translate(4px)}.recent-quizzes-card[_ngcontent-%COMP%] .session-item[_ngcontent-%COMP%] .session-icon[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:50%;background-color:var(--color-primary-light)}.recent-quizzes-card[_ngcontent-%COMP%] .session-item[_ngcontent-%COMP%] .session-icon[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{color:var(--color-primary)}.recent-quizzes-card[_ngcontent-%COMP%] .session-item[_ngcontent-%COMP%] .session-info[_ngcontent-%COMP%]{flex:1;display:flex;flex-direction:column;gap:.25rem}.recent-quizzes-card[_ngcontent-%COMP%] .session-item[_ngcontent-%COMP%] .session-info[_ngcontent-%COMP%] .session-title[_ngcontent-%COMP%]{font-weight:600;color:var(--text-primary);font-size:1rem}.recent-quizzes-card[_ngcontent-%COMP%] .session-item[_ngcontent-%COMP%] .session-info[_ngcontent-%COMP%] .session-meta[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:var(--text-secondary)}.recent-quizzes-card[_ngcontent-%COMP%] .session-item[_ngcontent-%COMP%] .session-info[_ngcontent-%COMP%] .session-meta[_ngcontent-%COMP%] .session-separator[_ngcontent-%COMP%]{opacity:.5}.recent-quizzes-card[_ngcontent-%COMP%] .session-item[_ngcontent-%COMP%] .session-info[_ngcontent-%COMP%] .session-meta[_ngcontent-%COMP%] .difficulty-chip[_ngcontent-%COMP%]{height:20px;font-size:.75rem;text-transform:capitalize}.recent-quizzes-card[_ngcontent-%COMP%] .session-item[_ngcontent-%COMP%] .session-score[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:flex-end;gap:.25rem}.recent-quizzes-card[_ngcontent-%COMP%] .session-item[_ngcontent-%COMP%] .session-score[_ngcontent-%COMP%] .score-value[_ngcontent-%COMP%]{font-weight:700;font-size:1.25rem}.recent-quizzes-card[_ngcontent-%COMP%] .session-item[_ngcontent-%COMP%] .session-score[_ngcontent-%COMP%] .score-value.success[_ngcontent-%COMP%]{color:#4caf50}.recent-quizzes-card[_ngcontent-%COMP%] .session-item[_ngcontent-%COMP%] .session-score[_ngcontent-%COMP%] .score-value.warning[_ngcontent-%COMP%]{color:#ff9800}.recent-quizzes-card[_ngcontent-%COMP%] .session-item[_ngcontent-%COMP%] .session-score[_ngcontent-%COMP%] .score-value.error[_ngcontent-%COMP%]{color:#f44336}.recent-quizzes-card[_ngcontent-%COMP%] .session-item[_ngcontent-%COMP%] .session-score[_ngcontent-%COMP%] .score-percentage[_ngcontent-%COMP%]{font-size:.875rem;color:var(--text-secondary)}.recent-quizzes-card[_ngcontent-%COMP%] .session-item[_ngcontent-%COMP%] .session-arrow[_ngcontent-%COMP%]{color:var(--text-secondary);opacity:.5;transition:opacity .3s ease}.recent-quizzes-card[_ngcontent-%COMP%] .session-item[_ngcontent-%COMP%]:hover .session-arrow[_ngcontent-%COMP%]{opacity:1}.achievements-card[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_slideUp .8s ease-out}.achievements-card[_ngcontent-%COMP%] mat-card-header[_ngcontent-%COMP%]{display:flex;align-items:center;margin-bottom:1.5rem}.achievements-card[_ngcontent-%COMP%] mat-card-header[_ngcontent-%COMP%] mat-card-title[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;font-size:1.25rem;font-weight:600;margin:0}.achievements-card[_ngcontent-%COMP%] mat-card-header[_ngcontent-%COMP%] mat-card-title[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{color:gold}.achievements-card[_ngcontent-%COMP%] .achievements-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:1rem}.achievements-card[_ngcontent-%COMP%] .achievement-item[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;text-align:center;padding:1rem;border-radius:8px;background-color:var(--bg-secondary);transition:all .3s ease;cursor:pointer}.achievements-card[_ngcontent-%COMP%] .achievement-item[_ngcontent-%COMP%]:hover{background-color:var(--bg-hover);transform:translateY(-4px)}.achievements-card[_ngcontent-%COMP%] .achievement-item[_ngcontent-%COMP%] .achievement-icon[_ngcontent-%COMP%]{width:64px;height:64px;border-radius:50%;background:linear-gradient(135deg,gold,#ffed4e);display:flex;align-items:center;justify-content:center;margin-bottom:.75rem}.achievements-card[_ngcontent-%COMP%] .achievement-item[_ngcontent-%COMP%] .achievement-icon[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:2rem;width:2rem;height:2rem;color:#fff}.achievements-card[_ngcontent-%COMP%] .achievement-item[_ngcontent-%COMP%] .achievement-name[_ngcontent-%COMP%]{font-weight:600;font-size:.875rem;color:var(--text-primary);margin-bottom:.25rem}.achievements-card[_ngcontent-%COMP%] .achievement-item[_ngcontent-%COMP%] .achievement-date[_ngcontent-%COMP%]{font-size:.75rem;color:var(--text-secondary)}.quick-actions[_ngcontent-%COMP%]{display:flex;gap:1rem;flex-wrap:wrap;justify-content:center;padding-top:1rem;animation:_ngcontent-%COMP%_fadeIn .9s ease-out}.quick-actions[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;min-width:160px;justify-content:center}.empty-section[_ngcontent-%COMP%]{text-align:center;padding:2rem;color:var(--text-secondary);font-style:italic}@keyframes _ngcontent-%COMP%_fadeIn{0%{opacity:0}to{opacity:1}}@keyframes _ngcontent-%COMP%_slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes _ngcontent-%COMP%_slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes _ngcontent-%COMP%_progressFill{0%{width:0}}@media (max-width: 1024px){.dashboard-container[_ngcontent-%COMP%]{padding:1.5rem}.stats-grid[_ngcontent-%COMP%]{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.welcome-section[_ngcontent-%COMP%]{flex-direction:column;gap:1.5rem;text-align:center}.welcome-section[_ngcontent-%COMP%] .welcome-content[_ngcontent-%COMP%] h1[_ngcontent-%COMP%]{font-size:1.75rem}.welcome-section[_ngcontent-%COMP%] .start-quiz-btn[_ngcontent-%COMP%]{width:100%}}@media (max-width: 768px){.dashboard-container[_ngcontent-%COMP%]{padding:1rem}.stats-grid[_ngcontent-%COMP%]{grid-template-columns:1fr}.welcome-section[_ngcontent-%COMP%]{padding:1.5rem}.welcome-section[_ngcontent-%COMP%] .welcome-content[_ngcontent-%COMP%] h1[_ngcontent-%COMP%]{font-size:1.5rem}.category-bar[_ngcontent-%COMP%]{flex-direction:column;align-items:flex-start!important}.category-bar[_ngcontent-%COMP%] .category-info[_ngcontent-%COMP%], .category-bar[_ngcontent-%COMP%] .progress-bar-container[_ngcontent-%COMP%]{width:100%}.category-bar[_ngcontent-%COMP%] .accuracy-value[_ngcontent-%COMP%]{width:100%;text-align:left}.session-item[_ngcontent-%COMP%]{flex-wrap:wrap}.session-item[_ngcontent-%COMP%] .session-score[_ngcontent-%COMP%]{width:100%;flex-direction:row;justify-content:space-between;padding-top:.5rem;border-top:1px solid var(--border-color);margin-top:.5rem}.achievements-grid[_ngcontent-%COMP%]{grid-template-columns:repeat(auto-fill,minmax(100px,1fr))}.quick-actions[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{width:100%}}@media (prefers-color-scheme: dark){.stat-card.card-primary[_ngcontent-%COMP%] .stat-badge[_ngcontent-%COMP%], .stat-card.card-success[_ngcontent-%COMP%] .stat-badge[_ngcontent-%COMP%], .stat-card.card-warning[_ngcontent-%COMP%] .stat-badge[_ngcontent-%COMP%], .stat-card.card-accent[_ngcontent-%COMP%] .stat-badge[_ngcontent-%COMP%]{background-color:#fff3}.welcome-section[_ngcontent-%COMP%]{background:linear-gradient(135deg,var(--color-primary-dark) 0%,var(--color-primary) 100%)}}"]})};export{K as DashboardComponent};
|