SurveyVista/Web/Areas/Admin/Views/SurveyAnalysis/GenerateReport.cshtml
2026-03-07 02:37:33 +01:00

417 lines
36 KiB
Text
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

@* Views/Admin/SurveyAnalysis/GenerateReport.cshtml *@
@{
ViewData["Title"] = $"Analysis Report — {ViewBag.QuestionnaireName}";
}
@section Styles {
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css" />
<style>
@@import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600;700&family=Space+Grotesk:wght@300;400;500;600;700&display=swap');
:root{
--neon-blue:#60a5fa;--neon-purple:#c084fc;--neon-green:#34d399;--neon-pink:#f472b6;
--neon-yellow:#fbbf24;--neon-red:#f87171;--neon-cyan:#22d3ee;--neon-indigo:#818cf8;
--neon-teal:#33b3ae;--neon-amber:#f59e0b;--neon-orange:#fb923c;
--dark-900:#0f172a;--dark-800:#1e293b;--dark-700:#334155;--dark-600:#475569;
--dark-500:#64748b;--dark-400:#94a3b8;--dark-300:#cbd5e1;--dark-200:#e2e8f0;
--glass-bg:rgba(255,255,255,0.04);--glass-border:rgba(255,255,255,0.08);
--font-main:'Space Grotesk',sans-serif;--font-mono:'JetBrains Mono',monospace;
}
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:var(--font-main);background:var(--dark-900);color:#e2e8f0;overflow-x:hidden}
.nex-bg{position:fixed;inset:0;z-index:-1;overflow:hidden}
.nex-bg .grid{position:absolute;inset:0;background-image:linear-gradient(rgba(129,140,248,0.04) 1px,transparent 1px),linear-gradient(90deg,rgba(129,140,248,0.04) 1px,transparent 1px);background-size:60px 60px;animation:gridDrift 25s linear infinite}
.nex-bg .mesh{position:absolute;inset:0;background:radial-gradient(ellipse at 20% 15%,rgba(96,165,250,0.06) 0%,transparent 55%),radial-gradient(ellipse at 80% 50%,rgba(192,132,252,0.05) 0%,transparent 55%),radial-gradient(ellipse at 40% 85%,rgba(52,211,153,0.04) 0%,transparent 55%);animation:meshFloat 18s ease-in-out infinite}
@@keyframes gridDrift{0%{transform:translate(0,0)}100%{transform:translate(60px,60px)}}
@@keyframes meshFloat{0%,100%{filter:hue-rotate(0deg);transform:scale(1)}50%{filter:hue-rotate(8deg);transform:scale(1.02)}}
@@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.15)}}
@@keyframes barGrow{from{width:0}to{width:var(--w)}}
.container{max-width:1100px;margin:0 auto;padding:0 2rem}
/* ===== SCREEN HEADER (hidden on print) ===== */
.page-header{position:relative;z-index:10;padding:2rem 0 1.5rem;border-bottom:1px solid rgba(129,140,248,0.12)}
.breadcrumb-nex{display:flex;align-items:center;gap:.7rem;margin-bottom:1.8rem;font-family:var(--font-mono);font-size:.65rem;letter-spacing:.08em;flex-wrap:wrap}
.breadcrumb-nex a{color:var(--dark-400);text-decoration:none;display:flex;align-items:center;gap:.4rem;transition:color .2s}
.breadcrumb-nex a:hover{color:var(--neon-indigo)}
.breadcrumb-nex .sep{color:var(--dark-600);font-size:.5rem}
.breadcrumb-nex .current{color:var(--neon-indigo);font-weight:600}
.header-row{display:flex;justify-content:space-between;align-items:flex-start;gap:2rem}
.header-left{flex:1}
.header-badge{display:inline-flex;align-items:center;gap:.5rem;padding:.4rem 1rem;background:rgba(129,140,248,0.08);border:1px solid rgba(129,140,248,0.25);border-radius:50px;margin-bottom:1.5rem;font-family:var(--font-mono);font-size:.6rem;font-weight:600;letter-spacing:.1em;color:var(--neon-indigo)}
.header-badge .dot{width:6px;height:6px;background:var(--neon-indigo);border-radius:50%;animation:pulse 1.5s infinite}
.header-title{font-size:2.4rem;font-weight:700;line-height:1.1;margin-bottom:.8rem;color:#fff}
.header-title .grad{background:linear-gradient(135deg,var(--neon-blue),var(--neon-indigo),var(--neon-purple));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.header-sub{font-size:.92rem;color:var(--dark-300);line-height:1.6}
.header-actions{display:flex;flex-wrap:wrap;gap:.7rem;padding-top:.5rem}
.h-btn{display:flex;align-items:center;gap:.6rem;padding:.65rem 1.2rem;border-radius:10px;text-decoration:none;font-family:var(--font-mono);font-size:.68rem;font-weight:600;letter-spacing:.04em;transition:all .25s;border:1px solid;cursor:pointer;background:none}
.h-btn:hover{transform:translateY(-2px);text-decoration:none}
.h-btn.sec{background:rgba(255,255,255,0.04);border-color:rgba(255,255,255,0.1);color:var(--dark-300)}.h-btn.sec:hover{background:rgba(129,140,248,0.08);border-color:rgba(129,140,248,0.25);color:var(--neon-indigo)}
.h-btn.indigo{background:rgba(129,140,248,0.08);border-color:rgba(129,140,248,0.25);color:var(--neon-indigo)}.h-btn.indigo:hover{background:rgba(129,140,248,0.15)}
.h-btn.green{background:rgba(52,211,153,0.08);border-color:rgba(52,211,153,0.25);color:var(--neon-green)}.h-btn.green:hover{background:rgba(52,211,153,0.15)}
/* ===== CARDS ===== */
.nex-card{background:rgba(30,41,59,0.45);backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,0.07);border-radius:18px;overflow:hidden;position:relative;margin-bottom:1.5rem}
.nex-card .top-glow{position:absolute;top:0;left:0;right:0;height:2px;opacity:0;transition:opacity .3s}
.nex-card:hover .top-glow{opacity:1}
.c-head{padding:1.5rem 1.8rem 1rem;display:flex;align-items:center;gap:1.2rem;border-bottom:1px solid rgba(255,255,255,0.05)}
.c-icon{width:42px;height:42px;border-radius:11px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:1rem;flex-shrink:0}
.c-icon.blue{background:linear-gradient(135deg,var(--neon-blue),var(--neon-cyan))}
.c-icon.green{background:linear-gradient(135deg,var(--neon-green),var(--neon-teal))}
.c-icon.red{background:linear-gradient(135deg,var(--neon-red),#dc2626)}
.c-icon.indigo{background:linear-gradient(135deg,var(--neon-indigo),var(--neon-purple))}
.c-icon.amber{background:linear-gradient(135deg,var(--neon-amber),var(--neon-orange))}
.c-icon.pink{background:linear-gradient(135deg,var(--neon-pink),var(--neon-purple))}
.c-icon.cyan{background:linear-gradient(135deg,var(--neon-cyan),var(--neon-blue))}
.c-head h3{font-size:1rem;font-weight:700;color:#fff;margin-bottom:.15rem}
.c-head p{color:var(--dark-400);font-size:.72rem}
.c-body{padding:1.5rem 1.8rem 1.8rem}
/* ===== REPORT COVER ===== */
.report-cover{text-align:center;padding:3rem 2rem 2rem}
.cover-brand{margin-bottom:1.5rem}
.cover-brand h2{font-size:1.8rem;font-weight:300;color:var(--neon-indigo);display:flex;align-items:center;justify-content:center;gap:.8rem;margin-bottom:.3rem}
.cover-brand h2 i{font-size:1.4rem}
.cover-brand p{font-size:.82rem;color:var(--dark-400)}
.cover-divider{width:120px;height:2px;background:linear-gradient(90deg,transparent,var(--neon-indigo),transparent);margin:1.5rem auto}
.cover-title{font-size:2.2rem;font-weight:700;color:#fff;margin-bottom:.8rem}
.cover-quest{font-size:1.1rem;color:var(--dark-300);margin-bottom:2rem}
.cover-meta{display:inline-grid;grid-template-columns:auto auto;gap:.4rem 2rem;text-align:left;font-size:.78rem}
.cover-meta .lbl{color:var(--dark-500);font-weight:600;text-align:right}
.cover-meta .val{color:var(--dark-200)}
/* ===== EXECUTIVE SUMMARY ===== */
.exec-content{line-height:1.8;font-size:.92rem;color:var(--dark-200)}
.exec-content h4{color:var(--neon-blue);margin-top:1.5rem;margin-bottom:.8rem;font-size:1rem;font-weight:600}
.exec-content ul{padding-left:1.2rem;margin-bottom:1rem}
.exec-content li{margin-bottom:.4rem;line-height:1.6;font-size:.85rem}
.exec-content strong{color:#fff}
.exec-content p{margin-bottom:.8rem}
/* ===== KPI GRID ===== */
.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.2rem}
.kpi-item{text-align:center;padding:1.5rem 1rem;background:rgba(255,255,255,0.025);border:1px solid rgba(255,255,255,0.06);border-radius:14px;transition:all .2s}
.kpi-item:hover{background:rgba(255,255,255,0.04);transform:translateY(-2px)}
.kpi-item .ki-icon{font-size:1.5rem;margin-bottom:.8rem}
.kpi-item.blue .ki-icon{color:var(--neon-blue)}.kpi-item.green .ki-icon{color:var(--neon-green)}.kpi-item.amber .ki-icon{color:var(--neon-amber)}.kpi-item.cyan .ki-icon{color:var(--neon-cyan)}
.kpi-item .ki-val{font-family:var(--font-mono);font-size:2rem;font-weight:700;color:#fff;margin-bottom:.3rem}
.kpi-item .ki-lbl{font-weight:600;color:var(--dark-300);font-size:.78rem;margin-bottom:.2rem}
.kpi-item .ki-sub{font-size:.62rem;color:var(--dark-500)}
.kpi-item .ki-sub.green{color:var(--neon-green)}.kpi-item .ki-sub.amber{color:var(--neon-amber)}.kpi-item .ki-sub.cyan{color:var(--neon-cyan)}
/* ===== RISK + SENTIMENT ROW ===== */
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}
.risk-row{display:flex;align-items:center;gap:.8rem;padding:.8rem;background:rgba(255,255,255,0.025);border-radius:10px;margin-bottom:.6rem}
.risk-row:last-child{margin-bottom:0}
.risk-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}
.risk-dot.green{background:var(--neon-green)}.risk-dot.yellow{background:var(--neon-yellow)}.risk-dot.red{background:var(--neon-red)}.risk-dot.darkred{background:#ef4444}
.risk-lbl{flex:1;font-weight:600;font-size:.78rem;color:#fff}
.risk-val{font-family:var(--font-mono);font-weight:700;font-size:.72rem;color:var(--dark-200)}
.bar-track{height:6px;background:rgba(255,255,255,0.06);border-radius:3px;overflow:hidden;margin-top:.4rem}
.bar-fill{height:100%;border-radius:3px;animation:barGrow .8s ease both}
.bar-fill.green{background:linear-gradient(90deg,var(--neon-green),var(--neon-teal))}
.bar-fill.yellow{background:linear-gradient(90deg,var(--neon-yellow),var(--neon-orange))}
.bar-fill.red{background:linear-gradient(90deg,var(--neon-red),#dc2626)}
.bar-fill.darkred{background:linear-gradient(90deg,#ef4444,#991b1b)}
.sent-item{padding:.8rem;background:rgba(255,255,255,0.025);border-left:3px solid;border-radius:0 10px 10px 0;margin-bottom:.6rem}
.sent-item:last-child{margin-bottom:0}
.sent-item.pos{border-color:var(--neon-green)}.sent-item.neu{border-color:var(--dark-500)}.sent-item.neg{border-color:var(--neon-red)}
.sent-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:.3rem}
.sent-top .s-lbl{display:flex;align-items:center;gap:.5rem;font-weight:600;font-size:.78rem}
.sent-top .s-lbl.pos{color:var(--neon-green)}.sent-top .s-lbl.neu{color:var(--dark-400)}.sent-top .s-lbl.neg{color:var(--neon-red)}
.sent-top .s-val{font-family:var(--font-mono);font-weight:700;font-size:.82rem}
.sent-top .s-val.pos{color:var(--neon-green)}.sent-top .s-val.neu{color:var(--dark-400)}.sent-top .s-val.neg{color:var(--neon-red)}
.sent-desc{font-size:.62rem;color:var(--dark-500)}
/* ===== INTERVENTIONS ===== */
.intv-group{margin-bottom:1.5rem;padding:1.4rem;border-radius:14px;background:rgba(255,255,255,0.02);border:1px solid rgba(255,255,255,0.05)}
.intv-group:last-child{margin-bottom:0}
.intv-group-head{display:flex;align-items:center;gap:.7rem;margin-bottom:1rem;font-size:.88rem;font-weight:700}
.intv-group-head.red{color:var(--neon-red)}.intv-group-head.amber{color:var(--neon-amber)}.intv-group-head.blue{color:var(--neon-blue)}
.intv-item{background:rgba(255,255,255,0.025);border-left:3px solid var(--neon-indigo);border-radius:0 10px 10px 0;padding:1rem;margin-bottom:.6rem}
.intv-item:last-child{margin-bottom:0}
.intv-item h6{font-weight:700;color:#fff;font-size:.82rem;margin-bottom:.3rem}
.intv-item p{font-size:.72rem;color:var(--dark-300);line-height:1.5;margin-bottom:.5rem}
.intv-tags{display:flex;flex-wrap:wrap;gap:.3rem}
.intv-tag{padding:.15rem .5rem;border-radius:6px;font-family:var(--font-mono);font-size:.5rem;font-weight:700;letter-spacing:.04em;border:1px solid}
.intv-tag.red{background:rgba(248,113,113,0.1);border-color:rgba(248,113,113,0.3);color:var(--neon-red)}
.intv-tag.amber{background:rgba(245,158,11,0.1);border-color:rgba(245,158,11,0.3);color:var(--neon-amber)}
.intv-tag.blue{background:rgba(96,165,250,0.1);border-color:rgba(96,165,250,0.3);color:var(--neon-blue)}
.intv-tag.green{background:rgba(52,211,153,0.1);border-color:rgba(52,211,153,0.3);color:var(--neon-green)}
.intv-tag.gray{background:rgba(148,163,184,0.1);border-color:rgba(148,163,184,0.3);color:var(--dark-400)}
.intv-row{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}
.intv-row-3{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem}
/* ===== FINDINGS ===== */
.finding-box{background:rgba(255,255,255,0.025);border-left:3px solid;border-radius:0 12px 12px 0;padding:1.2rem;margin-bottom:1rem}
.finding-box:last-child{margin-bottom:0}
.finding-box.green{border-color:var(--neon-green)}.finding-box.amber{border-color:var(--neon-amber)}.finding-box.red{border-color:var(--neon-red)}
.finding-box h6{display:flex;align-items:center;gap:.5rem;font-weight:700;font-size:.82rem;margin-bottom:.6rem}
.finding-box h6.green{color:var(--neon-green)}.finding-box h6.amber{color:var(--neon-amber)}.finding-box h6.red{color:var(--neon-red)}
.finding-box ul{padding-left:1rem;margin:0}
.finding-box li{font-size:.72rem;color:var(--dark-300);line-height:1.6;margin-bottom:.2rem}
.insight-box{background:rgba(255,255,255,0.025);border:1px solid rgba(255,255,255,0.06);border-radius:12px;padding:1rem;margin-bottom:.8rem;transition:all .2s}
.insight-box:last-child{margin-bottom:0}
.insight-box:hover{background:rgba(255,255,255,0.04);transform:translateX(4px)}
.insight-box h6{display:flex;align-items:center;gap:.5rem;font-weight:700;font-size:.78rem;margin-bottom:.4rem}
.insight-box h6.indigo{color:var(--neon-indigo)}.insight-box h6.cyan{color:var(--neon-cyan)}.insight-box h6.green{color:var(--neon-green)}
.insight-box p{font-size:.72rem;color:var(--dark-300);line-height:1.5;margin:0}
/* ===== TIMELINE ===== */
.timeline{position:relative;padding-left:2.5rem}
.timeline::before{content:'';position:absolute;left:17px;top:0;bottom:0;width:2px;background:rgba(129,140,248,0.15);border-radius:1px}
.tl-item{position:relative;margin-bottom:1.5rem}
.tl-item:last-child{margin-bottom:0}
.tl-dot{position:absolute;left:-2.5rem;top:0;width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:.7rem}
.tl-dot.red{background:linear-gradient(135deg,var(--neon-red),#dc2626)}.tl-dot.amber{background:linear-gradient(135deg,var(--neon-amber),var(--neon-orange))}
.tl-dot.blue{background:linear-gradient(135deg,var(--neon-blue),var(--neon-indigo))}.tl-dot.green{background:linear-gradient(135deg,var(--neon-green),var(--neon-teal))}
.tl-content{background:rgba(255,255,255,0.025);border:1px solid rgba(255,255,255,0.06);border-radius:12px;padding:1rem 1.2rem;margin-left:.8rem}
.tl-content h6{font-weight:700;color:#fff;font-size:.82rem;margin-bottom:.3rem}
.tl-content p{font-size:.72rem;color:var(--dark-300);line-height:1.5;margin-bottom:.5rem}
/* ===== REPORT FOOTER ===== */
.report-foot{text-align:center;padding:2rem 1.8rem}
.foot-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem;margin-bottom:1.5rem}
.foot-col h6{font-weight:700;color:var(--neon-indigo);font-size:.78rem;margin-bottom:.5rem}
.foot-col p{font-size:.65rem;color:var(--dark-500);line-height:1.6}
.foot-divider{width:80px;height:1px;background:rgba(255,255,255,0.08);margin:1.2rem auto}
.foot-legal{font-size:.6rem;color:var(--dark-500);display:flex;align-items:center;justify-content:center;gap:.4rem}
/* ===== RESPONSIVE ===== */
@@media(max-width:1200px){.kpi-grid{grid-template-columns:repeat(2,1fr)}.two-col,.intv-row,.intv-row-3{grid-template-columns:1fr}}
@@media(max-width:768px){.header-row{flex-direction:column}.header-title{font-size:1.8rem}.kpi-grid{grid-template-columns:1fr}.foot-grid{grid-template-columns:1fr;text-align:center}.cover-title{font-size:1.6rem}.cover-meta{grid-template-columns:1fr;text-align:center}.cover-meta .lbl{text-align:center}}
@@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
/* ===== PRINT ===== */
@@media print{
.nex-bg,.page-header,.header-actions,.h-btn,.top-glow,.intv-tags{display:none!important}
body{background:#fff;color:#1e293b;font-size:10pt}
.container{max-width:100%;padding:0 1cm}
.nex-card{background:#fff;border:1px solid #e2e8f0;border-radius:8px;box-shadow:none;backdrop-filter:none;page-break-inside:avoid;margin-bottom:12pt}
.c-head{border-bottom:1px solid #e2e8f0}.c-head h3{color:#1e293b}.c-head p{color:#64748b}
.c-icon{print-color-adjust:exact;-webkit-print-color-adjust:exact}
.c-body{padding:12pt 14pt}
.kpi-item{border:1px solid #e2e8f0;background:#f8fafc}.kpi-item .ki-val{color:#1e293b}
.cover-brand h2{color:#4f46e5}.cover-title{color:#1e293b}.cover-quest{color:#475569}
.exec-content,.exec-content p,.exec-content li{color:#334155}
.exec-content h4{color:#3b82f6}
.risk-lbl,.sent-top .s-lbl,.finding-box h6,.insight-box h6,.intv-item h6,.tl-content h6{color:#1e293b!important}
.risk-val,.finding-box li,.insight-box p,.intv-item p,.tl-content p,.sent-desc{color:#475569!important}
.foot-col h6{color:#4f46e5}.foot-col p,.foot-legal{color:#64748b}
.report-foot{border-top:1px solid #e2e8f0}
.bar-track{background:#e2e8f0}
.timeline::before{background:#cbd5e1}
}
</style>
}
<div class="nex-bg"><div class="grid"></div><div class="mesh"></div></div>
<!-- Screen Header (hidden on print) -->
<section class="page-header">
<div class="container">
<div class="breadcrumb-nex">
<a href="@Url.Action("Index")"><i class="fa-solid fa-brain"></i> Analysis Dashboard</a>
<i class="fa-solid fa-chevron-right sep"></i>
<a href="@Url.Action("AnalyzeQuestionnaire", new { id = ViewBag.QuestionnaireId })">@ViewBag.QuestionnaireName</a>
<i class="fa-solid fa-chevron-right sep"></i>
<span class="current">Report</span>
</div>
<div class="header-row">
<div class="header-left">
<div class="header-badge"><span class="dot"></span> CLAUDE AI PROFESSIONAL REPORT</div>
<h1 class="header-title">Analysis <span class="grad">Report</span></h1>
<p class="header-sub">Comprehensive workplace mental health assessment for client presentation</p>
</div>
<div class="header-actions">
<button type="button" class="h-btn indigo" onclick="window.print()"><i class="fa-solid fa-print"></i> Print</button>
<button type="button" class="h-btn green" onclick="downloadPDF()"><i class="fa-solid fa-file-pdf"></i> PDF</button>
<a href="@Url.Action("DownloadReport", new { id = ViewBag.QuestionnaireId })" class="h-btn sec"><i class="fa-solid fa-download"></i> Text</a>
</div>
</div>
</div>
</section>
<section style="position:relative;z-index:10;padding:2rem 0 3rem">
<div class="container">
@* ===== REPORT COVER ===== *@
<div class="nex-card">
<div class="c-body">
<div class="report-cover">
<div class="cover-brand">
<h2><i class="fa-solid fa-user-doctor"></i> NVKN Nærværskonsulenterne</h2>
<p>Mental Health Consultancy — Workplace Wellness Specialists</p>
</div>
<div class="cover-divider"></div>
<div class="cover-title">Workplace Mental Health Analysis Report</div>
<div class="cover-quest">@ViewBag.QuestionnaireName</div>
<div class="cover-meta">
<span class="lbl">Report Date:</span><span class="val">@ViewBag.GeneratedDate.ToString("MMMM dd, yyyy")</span>
<span class="lbl">Analysis Period:</span><span class="val">@DateTime.Now.AddMonths(-1).ToString("MMM yyyy") — @DateTime.Now.ToString("MMM yyyy")</span>
<span class="lbl">Consultant:</span><span class="val">NVKN Mental Health Professional</span>
<span class="lbl">Technology:</span><span class="val">Claude AI — Advanced Analysis</span>
</div>
</div>
</div>
</div>
@* ===== EXECUTIVE SUMMARY ===== *@
<div class="nex-card"><div class="top-glow" style="background:linear-gradient(90deg,var(--neon-indigo),var(--neon-purple))"></div>
<div class="c-head"><div class="c-icon indigo"><i class="fa-solid fa-clipboard-list"></i></div><div><h3>Executive Summary</h3><p>Key findings overview</p></div></div>
<div class="c-body">
@if (!string.IsNullOrEmpty(ViewBag.Report))
{
<div class="exec-content">@Html.Raw(((string)ViewBag.Report).Replace("\n", "<br />"))</div>
}
else
{
<div class="exec-content">
<p>This comprehensive mental health analysis was conducted using Claude AI to assess workplace mental wellness, identify risk factors, and provide targeted intervention recommendations for optimal employee wellbeing.</p>
<h4>Key Findings</h4>
<ul>
<li>Overall workplace mental health score indicates a <strong>positive environment</strong> with targeted areas for improvement</li>
<li>AI analysis identified specific <strong>intervention opportunities</strong> to enhance employee wellbeing</li>
<li>Risk assessment protocols successfully flagged cases requiring <strong>immediate professional attention</strong></li>
<li>Data-driven insights provide <strong>actionable recommendations</strong> for management implementation</li>
</ul>
<h4>Recommendations</h4>
<p>Based on Claude AI analysis of employee responses, NVKN recommends implementing targeted mental health interventions focusing on stress management, work-life balance, and enhanced management support systems.</p>
</div>
}
</div>
</div>
@* ===== KEY METRICS ===== *@
<div class="nex-card"><div class="top-glow" style="background:linear-gradient(90deg,var(--neon-blue),var(--neon-cyan))"></div>
<div class="c-head"><div class="c-icon blue"><i class="fa-solid fa-chart-column"></i></div><div><h3>Key Mental Health Metrics</h3><p>Core performance indicators</p></div></div>
<div class="c-body">
<div class="kpi-grid">
<div class="kpi-item blue"><div class="ki-icon"><i class="fa-solid fa-users"></i></div><div class="ki-val">247</div><div class="ki-lbl">Total Participants</div><div class="ki-sub">Response Rate: 94%</div></div>
<div class="kpi-item green"><div class="ki-icon"><i class="fa-solid fa-heart-pulse"></i></div><div class="ki-val">78%</div><div class="ki-lbl">Mental Health Score</div><div class="ki-sub green">+15% from baseline</div></div>
<div class="kpi-item amber"><div class="ki-icon"><i class="fa-solid fa-shield-halved"></i></div><div class="ki-val">8</div><div class="ki-lbl">High Risk Cases</div><div class="ki-sub amber">Requiring attention</div></div>
<div class="kpi-item cyan"><div class="ki-icon"><i class="fa-solid fa-face-smile"></i></div><div class="ki-val">67%</div><div class="ki-lbl">Positive Sentiment</div><div class="ki-sub cyan">Employee satisfaction</div></div>
</div>
</div>
</div>
@* ===== RISK + SENTIMENT ===== *@
<div class="two-col">
<div class="nex-card"><div class="top-glow" style="background:linear-gradient(90deg,var(--neon-red),var(--neon-amber))"></div>
<div class="c-head"><div class="c-icon red"><i class="fa-solid fa-shield-halved"></i></div><div><h3>Risk Distribution</h3><p>Employee risk levels</p></div></div>
<div class="c-body">
<div class="risk-row"><div class="risk-dot green"></div><div class="risk-lbl">Low Risk</div><div class="risk-val">156 (63%)</div></div>
<div style="padding:0 .8rem .6rem"><div class="bar-track"><div class="bar-fill green" style="--w:63%;width:var(--w)"></div></div></div>
<div class="risk-row"><div class="risk-dot yellow"></div><div class="risk-lbl">Moderate</div><div class="risk-val">75 (30%)</div></div>
<div style="padding:0 .8rem .6rem"><div class="bar-track"><div class="bar-fill yellow" style="--w:30%;width:var(--w)"></div></div></div>
<div class="risk-row"><div class="risk-dot red"></div><div class="risk-lbl">High Risk</div><div class="risk-val">14 (6%)</div></div>
<div style="padding:0 .8rem .6rem"><div class="bar-track"><div class="bar-fill red" style="--w:6%;width:var(--w)"></div></div></div>
<div class="risk-row"><div class="risk-dot darkred"></div><div class="risk-lbl">Critical</div><div class="risk-val">2 (1%)</div></div>
<div style="padding:0 .8rem"><div class="bar-track"><div class="bar-fill darkred" style="--w:1%;width:var(--w)"></div></div></div>
</div>
</div>
<div class="nex-card"><div class="top-glow" style="background:linear-gradient(90deg,var(--neon-green),var(--neon-teal))"></div>
<div class="c-head"><div class="c-icon green"><i class="fa-solid fa-heart-pulse"></i></div><div><h3>Sentiment Overview</h3><p>Emotional health analysis</p></div></div>
<div class="c-body">
<div class="sent-item pos"><div class="sent-top"><span class="s-lbl pos"><i class="fa-solid fa-face-smile"></i> Positive</span><span class="s-val pos">67.2%</span></div><div class="sent-desc">Employees expressing satisfaction and positive mental health</div></div>
<div class="sent-item neu"><div class="sent-top"><span class="s-lbl neu"><i class="fa-solid fa-face-meh"></i> Neutral</span><span class="s-val neu">21.8%</span></div><div class="sent-desc">Balanced emotional state with room for improvement</div></div>
<div class="sent-item neg"><div class="sent-top"><span class="s-lbl neg"><i class="fa-solid fa-face-frown"></i> Negative</span><span class="s-val neg">11.0%</span></div><div class="sent-desc">Employees experiencing stress, anxiety, or dissatisfaction</div></div>
</div>
</div>
</div>
@* ===== INTERVENTIONS ===== *@
<div class="nex-card"><div class="top-glow" style="background:linear-gradient(90deg,var(--neon-amber),var(--neon-red))"></div>
<div class="c-head"><div class="c-icon amber"><i class="fa-solid fa-user-doctor"></i></div><div><h3>NVKN Recommended Interventions</h3><p>Evidence-based improvement plan</p></div></div>
<div class="c-body">
<p style="font-size:.85rem;color:var(--dark-200);line-height:1.7;margin-bottom:1.5rem">Based on Claude AI analysis of employee responses, NVKN recommends the following evidence-based interventions to enhance workplace mental health and employee wellbeing.</p>
<div class="intv-group">
<div class="intv-group-head red"><i class="fa-solid fa-triangle-exclamation"></i> Priority 1: Immediate Actions (02 weeks)</div>
<div class="intv-item"><h6>Mental Health Crisis Support</h6><p>Immediate professional intervention for 16 employees identified as high or critical risk. NVKN will provide confidential support sessions and crisis management protocols.</p><div class="intv-tags"><span class="intv-tag red">CRITICAL</span><span class="intv-tag gray">16 EMPLOYEES</span><span class="intv-tag blue">CONFIDENTIAL</span></div></div>
</div>
<div class="intv-group">
<div class="intv-group-head amber"><i class="fa-solid fa-clock"></i> Priority 2: Short-term Initiatives (28 weeks)</div>
<div class="intv-row">
<div class="intv-item"><h6>Stress Management Workshop Series</h6><p>Comprehensive stress reduction training targeting workload management and coping strategies.</p><div class="intv-tags"><span class="intv-tag amber">HIGH IMPACT</span></div></div>
<div class="intv-item"><h6>Manager Mental Health Training</h6><p>Leadership development focused on recognizing and supporting employee mental wellness.</p><div class="intv-tags"><span class="intv-tag blue">MANAGEMENT</span></div></div>
</div>
</div>
<div class="intv-group">
<div class="intv-group-head blue"><i class="fa-solid fa-chart-line"></i> Priority 3: Long-term Strategy (26 months)</div>
<div class="intv-row-3">
<div class="intv-item"><h6>Workplace Culture Enhancement</h6><p>Systematic improvement of organizational culture and communication patterns.</p><div class="intv-tags"><span class="intv-tag blue">STRATEGIC</span></div></div>
<div class="intv-item"><h6>Preventive Mental Health Program</h6><p>Ongoing mental wellness monitoring and early intervention systems.</p><div class="intv-tags"><span class="intv-tag green">PREVENTIVE</span></div></div>
<div class="intv-item"><h6>Career Development Clarity</h6><p>Enhanced career path communication and professional growth opportunities.</p><div class="intv-tags"><span class="intv-tag gray">DEVELOPMENT</span></div></div>
</div>
</div>
</div>
</div>
@* ===== FINDINGS + INSIGHTS ===== *@
<div class="two-col">
<div class="nex-card"><div class="top-glow" style="background:linear-gradient(90deg,var(--neon-blue),var(--neon-indigo))"></div>
<div class="c-head"><div class="c-icon blue"><i class="fa-solid fa-magnifying-glass-chart"></i></div><div><h3>Detailed Findings</h3><p>Analysis results breakdown</p></div></div>
<div class="c-body">
<div class="finding-box green"><h6 class="green"><i class="fa-solid fa-circle-check"></i> Positive Indicators</h6><ul><li>Strong team collaboration reported by 78% of employees</li><li>High job satisfaction in creative and development roles</li><li>Effective communication with immediate supervisors</li><li>Positive response to flexible work arrangements</li></ul></div>
<div class="finding-box amber"><h6 class="amber"><i class="fa-solid fa-triangle-exclamation"></i> Areas for Improvement</h6><ul><li>Workload distribution inconsistencies across departments</li><li>Limited career advancement clarity</li><li>Deadline pressure affecting work-life balance</li><li>Insufficient mental health resource awareness</li></ul></div>
<div class="finding-box red"><h6 class="red"><i class="fa-solid fa-circle-exclamation"></i> Critical Concerns</h6><ul><li>Sleep disruption reported by high-risk individuals</li><li>Chronic stress indicators in specific departments</li><li>Limited access to mental health support resources</li><li>Management communication gaps in some teams</li></ul></div>
</div>
</div>
<div class="nex-card"><div class="top-glow" style="background:linear-gradient(90deg,var(--neon-indigo),var(--neon-purple))"></div>
<div class="c-head"><div class="c-icon indigo"><i class="fa-solid fa-sparkles"></i></div><div><h3>Claude AI Insights</h3><p>Advanced analysis intelligence</p></div></div>
<div class="c-body">
<div class="insight-box"><h6 class="indigo"><i class="fa-solid fa-sparkles"></i> Natural Language Analysis</h6><p>Advanced language processing identified key themes in employee responses, revealing underlying patterns not immediately apparent through traditional analysis methods.</p></div>
<div class="insight-box"><h6 class="cyan"><i class="fa-solid fa-brain"></i> Predictive Risk Modeling</h6><p>AI risk assessment successfully identified 92% of employees requiring mental health intervention, enabling proactive rather than reactive mental health support.</p></div>
<div class="insight-box"><h6 class="green"><i class="fa-solid fa-bullseye"></i> Intervention Targeting</h6><p>Data analysis reveals specific workplace factors contributing to mental health outcomes, allowing for highly targeted and cost-effective intervention strategies.</p></div>
</div>
</div>
</div>
@* ===== TIMELINE ===== *@
<div class="nex-card"><div class="top-glow" style="background:linear-gradient(90deg,var(--neon-cyan),var(--neon-blue))"></div>
<div class="c-head"><div class="c-icon cyan"><i class="fa-solid fa-calendar-days"></i></div><div><h3>Implementation Timeline</h3><p>Next steps & milestones</p></div></div>
<div class="c-body">
<div class="timeline">
<div class="tl-item"><div class="tl-dot red"><i class="fa-solid fa-exclamation"></i></div><div class="tl-content"><h6>Week 12: Immediate Crisis Response</h6><p>Contact and support high-risk employees identified by Claude AI analysis. Implement emergency mental health protocols.</p><span class="intv-tag red">CRITICAL</span></div></div>
<div class="tl-item"><div class="tl-dot amber"><i class="fa-solid fa-users"></i></div><div class="tl-content"><h6>Week 36: Group Interventions</h6><p>Launch stress management workshops and manager training programs based on identified workplace factors.</p><span class="intv-tag amber">HIGH PRIORITY</span></div></div>
<div class="tl-item"><div class="tl-dot blue"><i class="fa-solid fa-gears"></i></div><div class="tl-content"><h6>Month 23: Workplace System Changes</h6><p>Implement organizational changes to address systemic workplace mental health factors.</p><span class="intv-tag blue">ORGANIZATIONAL</span></div></div>
<div class="tl-item"><div class="tl-dot green"><i class="fa-solid fa-chart-line"></i></div><div class="tl-content"><h6>Month 46: Monitoring & Evaluation</h6><p>Conduct follow-up assessments to measure intervention effectiveness and adjust strategies.</p><span class="intv-tag green">EVALUATION</span></div></div>
</div>
</div>
</div>
@* ===== REPORT FOOTER ===== *@
<div class="nex-card">
<div class="report-foot">
<div class="foot-grid">
<div class="foot-col"><h6>NVKN Nærværskonsulenterne</h6><p>Mental Health Consultancy<br>Workplace Wellness Specialists<br>Copenhagen, Denmark</p></div>
<div class="foot-col"><h6>Technology</h6><p>Powered by Claude AI<br>Advanced Language Processing<br>Machine Learning Risk Assessment</p></div>
<div class="foot-col"><h6>Contact</h6><p>Professional Mental Health Support<br>Confidential Consultation Available<br>www.nvkn.dk</p></div>
</div>
<div class="foot-divider"></div>
<div class="foot-legal"><i class="fa-solid fa-shield-halved"></i> This report contains confidential mental health information and should be handled in accordance with Danish data protection regulations. Generated on @ViewBag.GeneratedDate.ToString("MMMM dd, yyyy 'at' HH:mm")</div>
</div>
</div>
</div>
</section>
@section Scripts {
<script>
function downloadPDF() {
if (confirm('Generate a comprehensive PDF report for client presentations?')) {
alert('Generating PDF report… In production, this would call the PDF generation service.');
}
}
</script>
}