Dashboard
Messages
Advanced Chatbot
Subscribers
Workshops
Video Resources
Tai Chi Videos
Coach Pei Corner
Johanna Corner
BFSAN Inquiries
Programs
12-Week Risk Reduction
Command Center
Participants
Consent Audit
Baseline Review
Goal Configuration
Weekly Scoring
Interventions
Coach Messages
Analytics
Daily Logs
Email Templates
30-Day Challenge
Nutritional Wellness
Tai Chi Program
Pickleball Program
8-Week Challenge
Soon
Educational Seminar
Soon
System
Cookie Consent Logs
Testimonials
Submissions
Users
System Settings
View Website
Edit Knowledge
Log In
Edit Knowledge Base Item
← Back to List
Title
Category
SubCategory
User Intent
Primary Question
Keywords (comma separated)
Content (Knowledge provided to AI)
@section Styles { /* ══════════════════════════════════════════════════════════════ PREMIUM DASHBOARD DESIGN SYSTEM ══════════════════════════════════════════════════════════════ */ :root { --d-green: #085536; --d-green-light: #0a7a4d; --d-emerald: #10b981; --d-orange: #e86f2a; --d-blue: #3b82f6; --d-indigo: #6366f1; --d-red: #ef4444; --d-amber: #f59e0b; --d-gold: #ecc94b; --d-surface: #ffffff; --d-surface-glass: rgba(255,255,255,0.7); --d-bg: #f0f4f3; --d-border: rgba(0,0,0,0.06); --d-shadow-sm: 0 1px 3px rgba(0,0,0,0.04); --d-shadow: 0 4px 20px rgba(0,0,0,0.06); --d-shadow-lg: 0 8px 40px rgba(0,0,0,0.08); --d-shadow-glow: 0 0 30px rgba(8,85,54,0.12); --d-radius: 16px; --d-radius-sm: 12px; --d-radius-xs: 8px; --d-text: #0f172a; --d-text-secondary: #475569; --d-text-muted: #94a3b8; } .dash-page { animation: dashFadeIn 0.6s ease-out; } @@keyframes dashFadeIn { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: translateY(0); } } /* ─── HERO BANNER ─── */ .hero-banner { background: linear-gradient(135deg, #085536 0%, #0a7a4d 40%, #10b981 100%); border-radius: var(--d-radius); padding: 32px 36px; margin-bottom: 28px; position: relative; overflow: hidden; box-shadow: var(--d-shadow-glow); } .hero-banner::before { content: ''; position: absolute; top: -60%; right: -10%; width: 400px; height: 400px; background: radial-gradient(circle, rgba(255,255,255,0.08) 0%, transparent 70%); border-radius: 12px; animation: heroFloat 8s ease-in-out infinite; } .hero-banner::after { content: ''; position: absolute; bottom: -40%; left: 20%; width: 300px; height: 300px; background: radial-gradient(circle, rgba(255,255,255,0.05) 0%, transparent 70%); border-radius: 12px; animation: heroFloat 12s ease-in-out infinite reverse; } @@keyframes heroFloat { 0%, 100% { transform: translate(0, 0) scale(1); } 50% { transform: translate(20px, -20px) scale(1.05); } } .hero-content { position: relative; z-index: 2; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 20px; } .hero-text h1 { color: white; font-size: 26px; font-weight: 800; margin: 0 0 6px; letter-spacing: -0.5px; } .hero-text p { color: rgba(255,255,255,0.8); font-size: 14px; margin: 0; font-weight: 500; } .hero-actions { display: flex; gap: 10px; flex-wrap: wrap; } .hero-btn { display: inline-flex; align-items: center; gap: 8px; padding: 10px 20px; border-radius: var(--d-radius-sm); font-size: 13px; font-weight: 700; text-decoration: none; transition: all 0.25s ease; cursor: pointer; border: none; } .hero-btn-primary { background: white; color: var(--d-green); box-shadow: 0 4px 12px rgba(0,0,0,0.15); } .hero-btn-primary:hover { transform: translateY(-2px); box-shadow: 0 6px 20px rgba(0,0,0,0.2); } .hero-btn-ghost { background: rgba(255,255,255,0.15); color: white; backdrop-filter: blur(8px); border: 1px solid rgba(255,255,255,0.2); } .hero-btn-ghost:hover { background: rgba(255,255,255,0.25); } /* ─── KPI STRIP ─── */ .kpi-strip { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; margin-bottom: 28px; } .kpi-card { background: var(--d-surface); border-radius: var(--d-radius); padding: 22px; box-shadow: var(--d-shadow); position: relative; overflow: hidden; transition: transform 0.2s ease, box-shadow 0.2s ease; } .kpi-card:hover { transform: translateY(-3px); box-shadow: var(--d-shadow-lg); } .kpi-card::after { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px; border-radius: var(--d-radius) var(--d-radius) 0 0; } .kpi-card:nth-child(1)::after { background: linear-gradient(90deg, var(--d-emerald), #34d399); } .kpi-card:nth-child(2)::after { background: linear-gradient(90deg, var(--d-blue), #60a5fa); } .kpi-card:nth-child(3)::after { background: linear-gradient(90deg, var(--d-indigo), #818cf8); } .kpi-card:nth-child(4)::after { background: linear-gradient(90deg, var(--d-orange), #fb923c); } .kpi-label { font-size: 12px; font-weight: 700; color: var(--d-text-muted); text-transform: uppercase; letter-spacing: 0.8px; margin-bottom: 10px; } .kpi-value { font-size: 36px; font-weight: 800; color: var(--d-text); line-height: 1; margin-bottom: 6px; } .kpi-sub { font-size: 12px; color: var(--d-text-secondary); font-weight: 600; } /* Radial Progress */ .kpi-radial { position: relative; width: 72px; height: 72px; margin: 0 auto 10px; } .kpi-radial svg { transform: rotate(-90deg); } .kpi-radial-bg { fill: none; stroke: #e2e8f0; stroke-width: 6; } .kpi-radial-fill { fill: none; stroke-width: 6; stroke-linecap: round; transition: stroke-dashoffset 1.5s ease; } .kpi-radial-text { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); font-size: 18px; font-weight: 800; color: var(--d-text); } /* ─── FEATURED RR CARD ─── */ .rr-hero-card { background: var(--d-surface); border-radius: var(--d-radius); box-shadow: var(--d-shadow-lg); margin-bottom: 28px; overflow: hidden; } .rr-hero-header { background: linear-gradient(135deg, #085536 0%, #0a7a4d 100%); padding: 24px 30px; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 16px; } .rr-hero-header h2 { color: white; font-size: 20px; font-weight: 800; margin: 0; display: flex; align-items: center; gap: 10px; } .rr-hero-header .rr-badge { display: inline-flex; align-items: center; gap: 6px; padding: 5px 14px; border-radius: var(--d-radius-xs); font-size: 12px; font-weight: 700; } .rr-hero-body { padding: 28px 30px; } /* Score summary bar */ .rr-score-bar { display: flex; align-items: center; gap: 24px; padding: 18px 22px; border-radius: var(--d-radius-sm); margin-bottom: 24px; flex-wrap: wrap; } .rr-score-item { text-align: center; min-width: 80px; } .rr-score-item .score-num { font-size: 28px; font-weight: 800; line-height: 1; } .rr-score-item .score-label { font-size: 11px; font-weight: 600; color: var(--d-text-secondary); text-transform: uppercase; letter-spacing: 0.5px; margin-top: 4px; } .rr-score-divider { width: 1px; height: 40px; background: var(--d-border); } /* Metrics Grid */ .metrics-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-bottom: 24px; } .metric-card { background: #f8faf9; border-radius: var(--d-radius-sm); padding: 18px; transition: all 0.2s ease; } .metric-card:hover { background: #f0f5f3; box-shadow: var(--d-shadow-sm); } .metric-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; } .metric-icon { width: 36px; height: 36px; border-radius: 12px; display: flex; align-items: center; justify-content: center; font-size: 16px; color: white; } .metric-pct { font-size: 14px; font-weight: 800; } .metric-name { font-size: 13px; font-weight: 700; color: var(--d-text); margin-bottom: 10px; } .metric-values { display: flex; justify-content: space-between; font-size: 11px; color: var(--d-text-muted); font-weight: 600; margin-bottom: 8px; } .metric-bar { height: 8px; background: #e2e8f0; border-radius: 4px; overflow: hidden; } .metric-bar-fill { height: 100%; border-radius: 4px; transition: width 1.5s cubic-bezier(0.4, 0, 0.2, 1); } .metric-detail { display: flex; justify-content: space-between; font-size: 11px; color: var(--d-text-secondary); margin-top: 8px; font-weight: 600; } /* Quick Nav */ .rr-quick-nav { display: flex; gap: 10px; flex-wrap: wrap; padding-top: 20px; border-top: 1px solid var(--d-border); } .rr-nav-btn { display: inline-flex; align-items: center; gap: 6px; padding: 9px 18px; border-radius: var(--d-radius-xs); font-size: 12px; font-weight: 700; text-decoration: none; transition: all 0.2s ease; background: var(--d-surface); color: var(--d-text-secondary); } .rr-nav-btn:hover { background: var(--d-green); color: white; border-color: var(--d-green); transform: translateY(-1px); } .rr-nav-btn .badge-count { background: var(--d-red); color: white; font-size: 10px; padding: 1px 6px; border-radius: 12px; font-weight: 800; } /* ─── 30-DAY CHALLENGE HERO CARD ─── */ .tdc-hero-card { background: var(--d-surface); border-radius: var(--d-radius); box-shadow: var(--d-shadow-lg); margin-bottom: 28px; overflow: hidden; } .tdc-hero-header { background: linear-gradient(135deg, #e86f2a 0%, #fb923c 100%); padding: 24px 30px; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 16px; } .tdc-hero-header h2 { color: white; font-size: 20px; font-weight: 800; margin: 0; display: flex; align-items: center; gap: 10px; } .tdc-hero-header .tdc-badge { display: inline-flex; align-items: center; gap: 6px; padding: 5px 14px; border-radius: var(--d-radius-xs); font-size: 12px; font-weight: 700; background: rgba(255,255,255,0.2); color: white; } .tdc-hero-body { padding: 28px 30px; } /* ─── QUICK ACTIONS GRID ─── */ .quick-action-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 16px; margin-top: 24px; } .qa-modern-card { background: white; border: 1px solid var(--d-border); border-radius: var(--d-radius-sm); padding: 20px; display: flex; align-items: center; gap: 16px; text-decoration: none; color: var(--d-text); transition: all 0.2s ease; box-shadow: var(--d-shadow-sm); } .qa-modern-card:hover { transform: translateY(-2px); box-shadow: var(--d-shadow); border-color: var(--d-green); } .qa-modern-card .qa-icon { width: 44px; height: 44px; border-radius: 12px; display: flex; align-items: center; justify-content: center; font-size: 18px; background: var(--d-bg); color: var(--d-text-secondary); transition: all 0.2s ease; } .qa-modern-card:hover .qa-icon { background: var(--d-green-light); color: white; } .qa-modern-card.qa-orange:hover { border-color: var(--d-orange); } .qa-modern-card.qa-orange:hover .qa-icon { background: var(--d-orange); } .qa-modern-info { flex: 1; } .qa-modern-title { font-size: 14px; font-weight: 700; margin-bottom: 4px; } .qa-modern-desc { font-size: 12px; color: var(--d-text-muted); font-weight: 500; } .qa-modern-card .notif-badge { background: var(--d-red); color: white; font-size: 11px; padding: 2px 8px; border-radius: 12px; font-weight: 800; margin-left: auto; } /* ─── PROGRAMS GRID ─── */ .programs-section-title { font-size: 18px; font-weight: 800; color: var(--d-text); margin: 0 0 18px; display: flex; align-items: center; gap: 10px; } .programs-grid { display: grid; grid-template-columns: 1fr; gap: 18px; margin-bottom: 28px; } .program-card { background: var(--d-surface); border-radius: var(--d-radius); padding: 24px; box-shadow: var(--d-shadow); transition: transform 0.2s ease, box-shadow 0.2s ease; position: relative; overflow: hidden; display: flex; flex-direction: row; align-items: center; gap: 24px; } @@media (max-width: 900px) { .program-card { flex-direction: column; align-items: stretch; } } .program-card:hover { transform: translateY(-3px); box-shadow: var(--d-shadow-lg); } .program-card-accent { position: absolute; top: 0; left: 0; right: 0; height: 4px; } .program-top { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 18px; } .program-icon-wrap { width: 48px; height: 48px; border-radius: 12px; display: flex; align-items: center; justify-content: center; font-size: 22px; color: white; } .program-status-badge { font-size: 11px; font-weight: 700; padding: 4px 10px; border-radius: 12px; } .program-name { font-size: 16px; font-weight: 800; color: var(--d-text); margin-bottom: 3px; } .program-subtitle { font-size: 12px; color: var(--d-text-muted); font-weight: 600; margin-bottom: 16px; } /* Circular Progress Ring */ .progress-ring-wrap { display: flex; align-items: center; gap: 16px; margin-bottom: 16px; } .progress-ring { position: relative; width: 60px; height: 60px; flex-shrink: 0; } .progress-ring svg { transform: rotate(-90deg); } .ring-bg { fill: none; stroke: #e2e8f0; stroke-width: 5; } .ring-fill { fill: none; stroke-width: 5; stroke-linecap: round; transition: stroke-dashoffset 1.5s ease; } .ring-text { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); font-size: 14px; font-weight: 800; color: var(--d-text); } .progress-info { flex: 1; } .progress-label { font-size: 12px; font-weight: 600; color: var(--d-text-muted); margin-bottom: 4px; } .progress-score { font-size: 20px; font-weight: 800; line-height: 1; } .progress-score-sub { font-size: 11px; color: var(--d-text-muted); font-weight: 600; } .program-footer { display: flex; justify-content: space-between; align-items: center; padding-top: 14px; border-top: 1px solid var(--d-border); } .program-meta { font-size: 11px; color: var(--d-text-muted); font-weight: 600; } .program-link { font-size: 12px; font-weight: 700; text-decoration: none; padding: 6px 14px; border-radius: var(--d-radius-xs); transition: all 0.2s; display: inline-flex; align-items: center; gap: 4px; } .program-link:hover { transform: translateX(2px); } .program-cert { margin-top: 14px; text-align: center; padding: 12px; border-radius: var(--d-radius-sm); } .program-cert a { display: inline-flex; align-items: center; gap: 6px; padding: 6px 14px; border-radius: var(--d-radius-xs); font-size: 12px; font-weight: 700; text-decoration: none; color: white; } /* ─── QUICK ACTIONS FOOTER ─── */ .quick-actions { display: flex; gap: 12px; flex-wrap: wrap; padding: 20px 24px; background: var(--d-surface); border-radius: var(--d-radius); box-shadow: var(--d-shadow); } .qa-btn { display: inline-flex; align-items: center; gap: 8px; padding: 10px 20px; border-radius: var(--d-radius-sm); font-size: 13px; font-weight: 700; text-decoration: none; transition: all 0.2s; background: var(--d-surface); color: var(--d-text-secondary); } .qa-btn:hover { background: var(--d-green); color: white; border-color: var(--d-green); transform: translateY(-1px); box-shadow: 0 4px 12px rgba(8,85,54,0.2); } .qa-btn i { font-size: 16px; } .qa-btn .notif-badge { background: var(--d-red); color: white; font-size: 10px; padding: 1px 6px; border-radius: 12px; font-weight: 800; } /* ─── No Programs Empty State ─── */ .empty-programs { text-align: center; padding: 48px 24px; background: var(--d-surface); border-radius: var(--d-radius); border: 2px dashed var(--d-border); } .empty-programs i { font-size: 48px; color: var(--d-text-muted); margin-bottom: 16px; } .empty-programs h3 { font-size: 18px; color: var(--d-text); margin: 0 0 8px; } .empty-programs p { font-size: 14px; color: var(--d-text-muted); margin: 0; } /* ─── RESPONSIVE ─── */ @@media (max-width: 1100px) { .kpi-strip { grid-template-columns: repeat(2, 1fr); } .metrics-grid { grid-template-columns: repeat(2, 1fr); } } @@media (max-width: 768px) { .hero-banner { padding: 24px 20px; } .hero-text h1 { font-size: 20px; } .kpi-strip { grid-template-columns: 1fr 1fr; } .metrics-grid { grid-template-columns: 1fr; } .programs-grid { grid-template-columns: 1fr; } .rr-hero-header { padding: 20px; } .rr-hero-body { padding: 20px; } .rr-score-bar { gap: 16px; } } @@media (max-width: 480px) { .kpi-strip { grid-template-columns: 1fr; } .hero-actions { flex-direction: column; width: 100%; } .hero-btn { justify-content: center; } } /* ─── Animations ─── */ .animate-count { transition: all 0.8s ease; } .stagger-1 { animation-delay: 0.1s; } .stagger-2 { animation-delay: 0.2s; } .stagger-3 { animation-delay: 0.3s; } .stagger-4 { animation-delay: 0.4s; } @@keyframes slideUp { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } } .slide-up { animation: slideUp 0.5s ease-out forwards; opacity: 0; } /* ─── GRADUATION BANNER ─── */ @@keyframes trophyFloat { 0%, 100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-12px) rotate(3deg); } } @@keyframes glowPulse { 0%, 100% { box-shadow: 0 0 20px rgba(234, 179, 8, 0.4), 0 0 40px rgba(234, 179, 8, 0.2); } 50% { box-shadow: 0 0 40px rgba(234, 179, 8, 0.8), 0 0 80px rgba(234, 179, 8, 0.4); } } .grad-banner { background: linear-gradient(135deg, #1e293b 0%, #0f172a 100%); border-radius: var(--d-radius); padding: 40px 30px; margin-bottom: 28px; display: flex; align-items: center; gap: 32px; position: relative; overflow: hidden; box-shadow: var(--d-shadow-lg); border: 1px solid rgba(255,255,255,0.1); } @@media (max-width: 768px) { .grad-banner { flex-direction: column; text-align: center; padding: 30px 20px; gap: 20px; } } .grad-banner::before { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: radial-gradient(circle at 20% 50%, rgba(234, 179, 8, 0.15) 0%, transparent 60%); pointer-events: none; } .grad-trophy { width: 120px; height: 120px; background: linear-gradient(135deg, #fef08a 0%, #eab308 100%); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 56px; color: #854d0e; flex-shrink: 0; animation: trophyFloat 4s ease-in-out infinite, glowPulse 3s ease-in-out infinite; position: relative; z-index: 2; } .grad-content { flex: 1; position: relative; z-index: 2; } .grad-title { font-size: 28px; font-weight: 800; color: white; margin: 0 0 8px; line-height: 1.2; } .grad-desc { font-size: 15px; color: #94a3b8; font-weight: 500; margin: 0 0 24px; line-height: 1.5; } .grad-actions { display: flex; gap: 12px; flex-wrap: wrap; } @@media (max-width: 768px) { .grad-actions { justify-content: center; } } .grad-btn { display: inline-flex; align-items: center; gap: 8px; padding: 12px 24px; border-radius: var(--d-radius-sm); font-size: 14px; font-weight: 700; text-decoration: none; transition: all 0.25s ease; border: none; cursor: pointer; } .grad-btn-gold { background: linear-gradient(135deg, #fef08a 0%, #eab308 100%); color: #854d0e; box-shadow: 0 4px 15px rgba(234, 179, 8, 0.3); } .grad-btn-gold:hover { transform: translateY(-2px); box-shadow: 0 6px 20px rgba(234, 179, 8, 0.5); } .grad-btn-ghost { background: rgba(255,255,255,0.1); color: white; border: 1px solid rgba(255,255,255,0.2); backdrop-filter: blur(8px); } .grad-btn-ghost:hover { background: rgba(255,255,255,0.2); transform: translateY(-2px); } } @if (Model.ShowPendingApprovalPopup) { body { overflow: hidden; } .pending-overlay { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(240, 244, 243, 0.95); backdrop-filter: blur(10px); z-index: 9999; display: flex; align-items: center; justify-content: center; padding: 20px; } .pending-card { background: white; border-radius: 20px; box-shadow: 0 20px 60px rgba(8, 85, 54, 0.15); max-width: 600px; width: 100%; text-align: center; padding: 50px 40px; border-top: 8px solid var(--d-orange); animation: dashFadeIn 0.6s ease-out; } .pending-logo { margin: 0 auto 30px; display: block; max-width: 200px; height: auto; } .pending-card h2 { font-size: 32px; font-weight: 800; color: var(--d-green); margin: 0 0 20px; } .pending-card p { font-size: 18px; color: #475569; line-height: 1.6; margin: 0 0 30px; } .pending-card .btn-logout { display: inline-block; background: var(--d-green); color: white; padding: 14px 30px; border-radius: 10px; font-size: 16px; font-weight: 700; text-decoration: none; transition: all 0.3s ease; } .pending-card .btn-logout:hover { background: var(--d-green-light); transform: translateY(-2px); box-shadow: 0 8px 20px rgba(8, 85, 54, 0.2); } Thank You for Your Interest! We have received your registration for BrightPath Foundation. Management is currently reviewing your profile for the @(string.IsNullOrEmpty(Model.CurrentUser.ProgramOfInterest) ? "selected program" : Model.CurrentUser.ProgramOfInterest) . You will be notified by email once you are officially enrolled and can begin your program. Sign Out for Now } @greeting, @Model.CurrentUser.FirstName! 👋 @dateStr · Your wellness command center @if (Model.HasRiskReductionEnrollment) { 12-Week Log Today View Goals } @if (Model.ActiveThirtyDayChallenge != null) { 30-Day Dashboard } Scoring Guide @if (isGraduated) { Congratulations! You've Graduated! 🎉 You've successfully completed the @gradProgramName with an outstanding final score of @gradScoreText! Your dedication to your health journey is truly inspiring. Claim your certificate and consider inspiring others by joining our Ambassador Program. Download Certificate Apply for Ambassadorship } @if (Model.HasRiskReductionEnrollment) { Wellness Score @Model.RRWellnessScore% of weekly target Program Progress @((int)Model.RRProgramProgress)% @Model.RRCompletedWeeks.Count(w => w > 0) of 12 weeks complete Current Week @Model.RRCurrentWeek of 12 weeks @Model.RRPathway Pathway Risk Level @Model.RRRiskLevel Status: @Model.RRStatus 12-Week Risk Reduction Program @Model.RRWeeklyScore.StatusIcon @Model.RRWeeklyScore.StatusLabel @Model.RRDaysLoggedThisWeek / 7 days logged @((int)Model.RRWeeklyScore.TotalRawScore) Weekly Score @Model.RRWeeklyScore.PersonalizedTarget Target @((int)Model.RRWeeklyScore.TargetAttainmentPercent)% Attainment @((int)Model.RRWeeklyScore.Tier1Score) / @((int)Model.RRWeeklyScore.Tier2Score) / @((int)Model.RRWeeklyScore.Tier3Score) Tier 1 / Tier 2 / Tier 3 View Full Dashboard } @if (Model.ActiveThirtyDayChallenge != null) { var progressPct = (int)Math.Round(Model.CurrentThirtyDayChallengePercentage); var isFailing = progressPct 30-Day Challenge @(Model.ActiveThirtyDayChallenge.IsCompleted ? "Completed" : "Active") @Model.CompletedThirtyDayChallengeDays / 30 Days Logged @progressPct /100 Quality Score @Model.CompletedThirtyDayChallengeDays Total Days Logged @Model.ActiveThirtyDayChallenge.TotalScore.ToString("0.##") Total Points Earned @Model.ActiveThirtyDayChallenge.EnrollmentDate.ToString("MMM dd, yyyy") Date Started @if (Model.ActiveThirtyDayChallenge.IsCompleted) { 🎉 Challenge Completed! Great job on your 30-day journey! } View Full Dashboard } @if (hasOtherPrograms) { @(Model.HasRiskReductionEnrollment || Model.ActiveThirtyDayChallenge != null ? "Other Active Programs" : "My Wellness Programs") @if (Model.ActiveNutritionProgram != null) { var dayProgress = (int)Math.Min(100, ((double)(Model.ActiveNutritionProgram.CurrentDay - 1) / 56.0 * 100)); var wellnessScore = Model.ActiveNutritionProgram.CalculateWellnessScore(); var isLow = wellnessScore Active Nutritional Excellence 8-Week Anti-Inflammatory & Habits · Johanna Gaston, PhD(C), MS, RD @wellnessScore% Wellness Score · Day @Model.ActiveNutritionProgram.CurrentDay of 56 @wellnessScore / 100 @(isLow ? "⚠️" : "✓") Dietitian: J. Gaston Wellness Center @if (!string.IsNullOrEmpty(Model.ActiveNutritionProgram.CertificateFilePath)) { 🎉 Certificate of Excellence! Download Certificate } } @if (Model.ActiveTaiChi != null && Model.ActiveTaiChi.OnboardingCompleted) { var tcToday = DateTime.UtcNow.Date; int tcDiff = (7 + (tcToday.DayOfWeek - DayOfWeek.Monday)) % 7; var tcStartOfWeek = tcToday.AddDays(-1 * tcDiff).Date; var tcEndOfWeek = tcStartOfWeek.AddDays(6).Date; var tcWeeklyLogs = Model.ActiveTaiChi.DailyLogs.Where(l => l.Date.Date >= tcStartOfWeek && l.Date.Date l.HoursPracticed > 0).Select(l => l.Date.Date).Distinct().Count(); var tcHoursPracticed = tcWeeklyLogs.Sum(l => l.HoursPracticed); var tcDaysPct = Math.Min(100.0, ((double)tcDaysPracticed / Model.ActiveTaiChi.TargetDaysPerWeek) * 100.0); var tcHoursPct = Math.Min(100.0, (tcHoursPracticed / Model.ActiveTaiChi.TargetHoursPerWeek) * 100.0); var tcOverallPct = (int)Math.Round((tcDaysPct + tcHoursPct) / 2.0); var circumference = 2 * Math.PI * 25; Active Tai Chi Program Yang Style 24 Form · Coach Pei @tcOverallPct% Weekly Target: @Model.ActiveTaiChi.TargetDaysPerWeek Days / @Model.ActiveTaiChi.TargetHoursPerWeek Hrs @tcDaysPracticed days · @tcHoursPracticed hrs Coach: Pei View Logs } @if (Model.ActivePickleball != null && Model.ActivePickleball.OnboardingCompleted) { var pbToday = DateTime.UtcNow.Date; int pbDiff = (7 + (pbToday.DayOfWeek - DayOfWeek.Monday)) % 7; var pbStartOfWeek = pbToday.AddDays(-1 * pbDiff).Date; var pbEndOfWeek = pbStartOfWeek.AddDays(6).Date; var pbWeeklyLogs = Model.ActivePickleball.DailyLogs.Where(l => l.Date.Date >= pbStartOfWeek && l.Date.Date l.HoursPracticed > 0).Select(l => l.Date.Date).Distinct().Count(); var pbHoursPracticed = pbWeeklyLogs.Sum(l => l.HoursPracticed); var pbDaysPct = Math.Min(100.0, ((double)pbDaysPracticed / Model.ActivePickleball.TargetDaysPerWeek) * 100.0); var pbHoursPct = Math.Min(100.0, (pbHoursPracticed / Model.ActivePickleball.TargetHoursPerWeek) * 100.0); var pbOverallPct = (int)Math.Round((pbDaysPct + pbHoursPct) / 2.0); var circumference = 2 * Math.PI * 25; Active Pickleball Program Move Pathway · Director Houston Poem @pbOverallPct% Weekly Target: @Model.ActivePickleball.TargetDaysPerWeek Days / @Model.ActivePickleball.TargetHoursPerWeek Hrs @pbDaysPracticed days · @pbHoursPracticed hrs Director: Houston Poem View Logs } @if (Model.ActiveTwelveWeekProgram != null && !Model.HasRiskReductionEnrollment) { var twProgress = (int)Model.ActiveTwelveWeekProgram.CalculateProgressPercentage(); var circumference = 2 * Math.PI * 25; @Model.ActiveTwelveWeekProgram.Status 12-Week Risk Reduction Week @Model.ActiveTwelveWeekProgram.CurrentWeek of 12 @twProgress% Overall Progress @twProgress / 100% Enrolled @Model.ActiveTwelveWeekProgram.EnrollmentDate.ToString("MMM dd, yyyy") View Logs @if (!string.IsNullOrEmpty(Model.ActiveTwelveWeekProgram.CertificateFilePath)) { 🎉 Program Completed! Download Certificate } } @foreach (var prog in Model.Programs) { var circumference = 2 * Math.PI * 25; var pColor = prog.Status == "Completed" ? "#10b981" : "#6366f1"; @prog.Status @prog.ProgramName Started @prog.StartDate.ToString("MMM dd, yyyy") @prog.ProgressPercentage% Progress @prog.ProgressPercentage / 100% Started @prog.StartDate.ToString("MMM dd") @prog.Status } } @if (!hasAnything) { Welcome to Your Wellness Portal You haven't been enrolled in any programs yet. Contact your administrator to get started on your wellness journey. } @if (Model.HasRiskReductionEnrollment) { Risk Reduction View 12-Week Progress 30-Day Challenge Track Daily Habits My Goals View Action Plan Coach Messages Chat with Health Coach @if(Model.RRUnreadCoachMessageCount>0){ @Model.RRUnreadCoachMessageCount } } Designed and developed by DataCleanHub @section Scripts { document.addEventListener("DOMContentLoaded", function() { const observer = new IntersectionObserver((entries) => { entries.forEach(entry => { if (entry.isIntersecting) { const fills = entry.target.querySelectorAll('.metric-bar-fill'); fills.forEach(fill => { const width = fill.style.width; fill.style.width = '0%'; setTimeout(() => { fill.style.width = width; }, 100); }); observer.unobserve(entry.target); } }); }, { threshold: 0.3 }); document.querySelectorAll('.metrics-grid').forEach(el => observer.observe(el)); document.querySelectorAll('.ring-fill, .kpi-radial-fill').forEach(circle => { const offset = circle.getAttribute('stroke-dashoffset'); const dasharray = circle.getAttribute('stroke-dasharray'); circle.setAttribute('stroke-dashoffset', dasharray); setTimeout(() => { circle.style.transition = 'stroke-dashoffset 1.5s cubic-bezier(0.4, 0, 0.2, 1)'; circle.setAttribute('stroke-dashoffset', offset); }, 200); }); document.querySelectorAll('.slide-up').forEach((el, i) => { el.style.animationDelay = (i * 0.1) + 's'; }); }); × BrightPath Scoring Guide Understanding how your points are calculated helps you maximize your health progress. 12-Week Risk Reduction Program Movement (Tier 1 & 2): Earn 1 point for every 9 minutes of movement (e.g. 30 mins = 3.33 points). Caps applied based on your daily/weekly goals. Nutrition: Max 2 points/day based on servings of fruits, vegetables, whole grains, and lean proteins. Hydration, Sleep, Mental Wellness: Earn 1 point per day for hitting targets. Learning: Earn points for completing daily reflections and learning modules. 30-Day Challenge (400 Point Total) Movement (35 pts/week): Base points for steps/strength, plus bonus points for duration. Nutrition & Hydration (25 pts/week): Points earned by consistently logging meals and water. Restoration & Recovery (20 pts/week): Points earned through sleep and mental wellness tracking. Learning & Awareness (10 pts/week): Points for mental wellness actions and reflection. Weekly Check-In (10 pts/week): Points awarded for submitting logs and social activity. Tip: Consistency is key! The system automatically applies weekly and daily caps, so building sustainable, daily habits will yield the best score. Got it }
Page Title
Page URL
Related Questions (JSON Array of strings)
Recommended Actions (JSON Array of objects)
[]
Active
Save Changes
Cancel