Add AI, DotNet version 10 upgrade and style home page.
Gitea CI/CD / build (push) Successful in 1m26s

This commit is contained in:
Clive
2026-08-19 18:59:24 +10:00
parent e7c6a579b5
commit 48f0c2b019
10 changed files with 368 additions and 46 deletions
+1 -1
View File
@@ -29,7 +29,7 @@ jobs:
- name: SSH Deploy
uses: appleboy/[email protected]
with:
host: 10.1.1.90
host: 10.10.0.90
username: ${{ secrets.SERVER_USERNAME }}
password: ${{ secrets.SERVER_PASSWORD }}
script: |
+41
View File
@@ -0,0 +1,41 @@
## WORKSPACE EXECUTIVE SUMMARY (YAML)
# Generated: 2026-08-19T18:10:06.0727135+10:00
# Root: C:\Code\Plushealthtech
Architecture:
Type: Backend (C#/.NET)
Scale: 14 relevant source files
Components: 0
Controllers: 0
Models: 0
Services: 0
---
- File: plushealthtech.sln
Preview: " Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 VisualStudioVersion = 17.5.33530.505 MinimumVisualStudioVersio..."
- File: plushealthtech\plushealthtech.csproj
Preview: "<Project Sdk='Microsoft.NET.Sdk.Web'> <PropertyGroup> <TargetFramework>net10.0</TargetFramework> <Nullable>enable</Nullable> <ImplicitUsings>en..."
- File: CLAUDE.md
Preview: "# CLAUDE.md This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. ## Overview plushealthtech is a cor..."
- File: .claude\settings.local.json
Preview: "{ 'permissions': { 'allow': [ 'Bash(git -C /c/Code/Plushealthtech remote -v)', 'Bash(git -C /c/Code/Plushealthtech log --oneline -15)' ] }..."
- File: .vscode\settings.json
Preview: "{}"
- File: plushealthtech\appsettings.Development.json
Preview: "{ 'DetailedErrors': true, 'Logging': { 'LogLevel': { 'Default': 'Information', 'Microsoft.AspNetCore': 'Warning' } } } "
- File: plushealthtech\appsettings.json
Preview: "{ 'Logging': { 'LogLevel': { 'Default': 'Information', 'Microsoft.AspNetCore': 'Warning' } }, 'AllowedHosts': '*' } "
- File: plushealthtech\Program.cs
Preview: "var builder = WebApplication.CreateBuilder(args); // Add services to the container. builder.Services.AddRazorPages(); var app = builder.Build(); // Co..."
- File: .gitea\workflows\default.yml
Preview: "name: Gitea CI/CD on: [push] jobs: build: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v2 - name: Login t..."
- File: plushealthtech\Pages\Error.cshtml.cs
Preview: "using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.RazorPages; using System.Diagnostics; namespace plushealthtech.Pages { [ResponseCache..."
- File: plushealthtech\Pages\Index.cshtml.cs
Symbols: [IndexModel]
Preview: "using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.RazorPages; namespace plushealthtech.Pages { public class IndexModel : PageModel { ..."
- File: plushealthtech\Pages\Privacy.cshtml.cs
Symbols: [PrivacyModel]
Preview: "using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.RazorPages; namespace plushealthtech.Pages { public class PrivacyModel : PageModel ..."
- File: plushealthtech\Properties\launchSettings.json
Preview: "{ 'profiles': { 'http': { 'commandName': 'Project', 'launchBrowser': true, 'environmentVariables': { 'ASPNETCORE_ENVIRONMENT': 'Develo..."
- File: plushealthtech\.gitea\workflows\default.yml
Preview: "name: Gitea CI/CD on: [push] jobs: build: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v2 - name: Login t..."
+1
View File
@@ -0,0 +1 @@
{}
+31
View File
@@ -0,0 +1,31 @@
# CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
## Overview
plushealthtech is a corporate landing site: a single-project ASP.NET Core Razor Pages app on .NET 10 (`net10.0`). There are no controllers, database, auth, or external APIs — all content lives in Razor Pages and static assets under `wwwroot`.
## Commands
Run from the repo root (the solution directory).
- Build: `dotnet build plushealthtech.sln`
- Run locally: `dotnet run --project plushealthtech` → https://localhost:7070 (http: 5047, per the `https` profile in `Properties/launchSettings.json`); use `dotnet watch --project plushealthtech` for hot reload
- Docker image (build context is the repo root, not the project folder): `docker build . -t plushealthtech:latest -f plushealthtech/Dockerfile`
- There is no test project and no linter/formatter configuration.
## Architecture
- `plushealthtech/` is the only project. `Program.cs` is the entire pipeline: `AddRazorPages()`, HTTPS redirect, static files — new services would be registered there.
- Pages use the Razor Pages convention: `Pages/<Name>.cshtml` + `<Name>.cshtml.cs` (a PageModel). Existing: `Index` (logo hero), `Privacy`, `Error`, and the shared `Shared/_Layout.cshtml`. There are no areas or controllers.
- Shared chrome and branding: `Pages/Shared/_Layout.cshtml` (navbar with Home + external blog link, footer) and `wwwroot/css/site.css` (CSS custom properties; `.bg-blue` = `#1c8098` is the brand color used on the navbar). The layout `<head>` loads an external analytics script from analytics.rokoh.com.
- Brand and UI design guidelines live in `Design.MD` (color palette with `#1c8098` as brand core, typography, component/layout conventions) — follow it when adding or restyling pages.
- Client libraries (Bootstrap, jQuery, jquery-validation) are vendored in `wwwroot/lib`; logo and favicon are in `wwwroot/img/`.
## Deployment
- Pushes to Gitea (gitea.rokoh.com) run the Gitea Actions workflow: build the Docker image → push `registry.rokoh.com/plushealthtech:latest` → SSH into `10.10.0.90` and run the container with `-p 7000:80 --restart=always`. Registry and server credentials come from Gitea secrets, not the repo.
- The workflow file exists in **two identical copies**: `.gitea/workflows/default.yml` (the one Gitea reads) and `plushealthtech/.gitea/workflows/default.yml` (referenced from the csproj as `<None Include>`). Keep them in sync when editing either.
- The Dockerfile is multi-stage (restore → build → publish → aspnet runtime), exposes 80/443, entrypoint `dotnet plushealthtech.dll`.
- **Known inconsistency**: the project targets `net10.0`, but the Dockerfile still pins .NET 7 base images (`mcr.microsoft.com/dotnet/{aspnet,sdk}:7.0`), so `docker build` fails as-is. When touching the Dockerfile, bump the base images to .NET 10 to match the TFM.
+22
View File
@@ -0,0 +1,22 @@
# Plus Health Tech - Brand & UI Design System
## Brand Identity
Plus Health Tech specializes in interoperable Clinical Decision Support (CDS), advanced Patient Management software, and cutting-edge Veterinarian tech solutions. The brand identity radiates trust, clinical precision, seamless data interoperability, and compassionate care.
## Color Palette
* **Primary Teal (Brand Core):** `#1c8098` (Used for primary buttons, core headers, and key interactive elements)
* **Dark Slate (Text & Neutrals):** `#0f172a` (Primary text and high-contrast surfaces)
* **Soft Background (Light Theme):** `#f8fafc` (Page background, cards, and clean sections)
* **Accent Cyan/Blue:** `#0ea5e9` (Highlights, links, and secondary accents)
* **Veterinary Emerald (Sub-brand/Vet Section):** `#0d9488` (Accents for veterinary care products)
## Typography
* **Font Family:** Inter, system-ui, -apple-system, sans-serif
* **Headings:** Bold to Extra-Bold, tight letter spacing (`tracking-tight`)
* **Body Text:** Regular (400) and Medium (500), optimized for readability at 16px base size.
## UI Components & Layout Guidelines
* **Navigation:** Sticky top header with glassmorphism blur backdrop (`backdrop-blur-md`), featuring clear navigation links and a primary CTA.
* **Hero Section:** Asymmetric split-screen layout displaying strong value proposition, trust badges, and interactive product preview.
* **Cards & Containers:** Rounded corners (`rounded-2xl`), subtle borders (`border-slate-100`), and soft elevation shadows (`shadow-sm` to `shadow-xl`).
* **Buttons:** Fully rounded or softly curved (`rounded-xl`), featuring smooth hover transitions and focus rings.
+1 -1
View File
@@ -29,7 +29,7 @@ jobs:
- name: SSH Deploy
uses: appleboy/[email protected]
with:
host: 10.1.1.90
host: 10.10.0.90
username: ${{ secrets.SERVER_USERNAME }}
password: ${{ secrets.SERVER_PASSWORD }}
script: |
+2 -2
View File
@@ -1,11 +1,11 @@
#See https://aka.ms/customizecontainer to learn how to customize your debug container and how Visual Studio uses this Dockerfile to build your images for faster debugging.
FROM mcr.microsoft.com/dotnet/aspnet:7.0 AS base
FROM mcr.microsoft.com/dotnet/aspnet:10.0 AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443
FROM mcr.microsoft.com/dotnet/sdk:7.0 AS build
FROM mcr.microsoft.com/dotnet/sdk:10.0 AS build
WORKDIR /src
COPY ["plushealthtech/plushealthtech.csproj", "plushealthtech/"]
RUN dotnet restore "plushealthtech/plushealthtech.csproj"
+176 -4
View File
@@ -4,7 +4,179 @@
ViewData["Title"] = "Home page";
}
<div class="text-center">
<br /><br /><br />
<img src="~/img/plushealthtech-logo.png" alt="plushealthtech" title="plushealthtech" />
</div>
<!-- Hero Section -->
<section class="relative overflow-hidden pt-16 pb-24 lg:pt-24 lg:pb-32 bg-gradient-to-b from-white via-slate-50 to-brand-light/30">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 relative z-10">
<div class="grid grid-cols-1 lg:grid-cols-12 gap-12 items-center">
<!-- Text Content -->
<div class="lg:col-span-7 space-y-6 text-center lg:text-left">
<span class="inline-flex items-center gap-2 px-3 py-1 rounded-full bg-brand-light text-brand text-xs font-bold uppercase tracking-wider">
<i class="fa-solid fa-circle-nodes"></i> Next-Gen Health Interoperability
</span>
<h1 class="text-4xl sm:text-5xl lg:text-6xl font-extrabold text-slate-900 tracking-tight leading-tight">
Empowering <span class="text-[#1c8098]">Clinical Decisions</span> & Patient Care
</h1>
<p class="text-lg text-slate-600 max-w-2xl mx-auto lg:mx-0">
Deliver superior healthcare outcomes with our fully interoperable Clinical Decision Support (CDS), advanced Patient Management software, and specialized veterinary platforms.
</p>
<div class="flex flex-col sm:flex-row items-center justify-center lg:justify-start gap-4 pt-4">
<a href="#contact" class="w-full sm:w-auto bg-[#1c8098] hover:bg-[#145f72] text-white font-semibold px-8 py-4 rounded-xl shadow-lg shadow-brand/25 transition-all text-center">
Explore Platform <i class="fa-solid fa-arrow-right ml-2"></i>
</a>
<a href="#solutions" class="w-full sm:w-auto bg-white hover:bg-slate-50 text-slate-700 font-semibold px-8 py-4 rounded-xl border border-slate-200 transition-all text-center">
View Solutions
</a>
</div>
<!-- Trust Metrics -->
<div class="pt-8 border-t border-slate-200/80 grid grid-cols-3 gap-4 text-left">
<div>
<p class="text-2xl font-bold text-slate-900">99.9%</p>
<p class="text-xs text-slate-500 font-medium">System Uptime</p>
</div>
<div>
<p class="text-2xl font-bold text-slate-900">FHIR®</p>
<p class="text-xs text-slate-500 font-medium">Ready Interoperability</p>
</div>
<div>
<p class="text-2xl font-bold text-slate-900">24/7</p>
<p class="text-xs text-slate-500 font-medium">Clinical Support</p>
</div>
</div>
</div>
<!-- Hero Graphic / UI Mockup Preview -->
<div class="lg:col-span-5">
<div class="bg-white p-6 rounded-2xl shadow-xl border border-slate-100 relative">
<div class="absolute -top-3 -right-3 bg-brand-vet text-white text-xs font-bold px-3 py-1 rounded-full shadow-md">
Live Sync Active
</div>
<div class="flex items-center justify-between pb-4 border-b border-slate-100">
<div class="flex items-center gap-3">
<div class="w-10 h-10 rounded-xl bg-brand-light text-brand flex items-center justify-center font-bold">
<i class="fa-solid fa-heart-pulse"></i>
</div>
<div>
<h4 class="font-bold text-slate-800 text-sm">CDS Core Engine</h4>
<p class="text-xs text-slate-400">Real-time risk analytics</p>
</div>
</div>
<span class="w-3 h-3 rounded-full bg-emerald-500 animate-pulse"></span>
</div>
<div class="space-y-3 py-4">
<div class="p-3 bg-slate-50 rounded-xl border border-slate-100 text-xs flex items-center justify-between">
<span class="font-medium text-slate-700">Patient Data Stream (HL7/FHIR)</span>
<span class="text-brand font-bold">Synced</span>
</div>
<div class="p-3 bg-brand-light/50 rounded-xl border border-brand/20 text-xs">
<p class="font-bold text-brand-dark mb-1"><i class="fa-solid fa-triangle-exclamation mr-1"></i> CDS Alert Recommendation</p>
<p class="text-slate-600">Cross-reference suggests optimal dosage adjustment based on recent lab updates.</p>
</div>
</div>
<div class="pt-2 flex items-center justify-between text-xs text-slate-400">
<span>Secure Cloud Node</span>
<span class="font-semibold text-slate-700">HIPAA Compliant</span>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- Core Solutions Section -->
<section id="solutions" class="py-24 bg-white">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="text-center max-w-3xl mx-auto space-y-4 mb-16">
<h2 class="text-xs font-bold tracking-widest text-brand uppercase">Comprehensive Architecture</h2>
<h3 class="text-3xl font-extrabold text-slate-900 tracking-tight">Engineered for Modern Healthcare Ecosystems</h3>
<p class="text-slate-600">Seamlessly integrate data silos, streamline care pathways, and elevate patient outcomes across multiple disciplines.</p>
</div>
<div class="grid grid-cols-1 md:grid-cols-3 gap-8">
<!-- Card 1 -->
<div class="bg-slate-50 p-8 rounded-2xl border border-slate-100 hover:shadow-xl transition-all group">
<div class="w-14 h-14 rounded-xl bg-brand-light text-brand flex items-center justify-center text-xl font-bold mb-6 group-hover:bg-[#1c8098] group-hover:text-white transition-colors">
<i class="fa-solid fa-brain"></i>
</div>
<h4 class="text-xl font-bold text-slate-900 mb-3">Clinical Decision Support</h4>
<p class="text-slate-600 text-sm leading-relaxed mb-6">
Deliver evidence-based guidance at the point of care with intelligent algorithms built to reduce medical errors and optimize treatment choices.
</p>
<a href="#" class="text-brand font-semibold text-sm inline-flex items-center gap-1 hover:gap-2 transition-all">
Learn more <i class="fa-solid fa-arrow-right text-xs"></i>
</a>
</div>
<!-- Card 2 -->
<div class="bg-slate-50 p-8 rounded-2xl border border-slate-100 hover:shadow-xl transition-all group">
<div class="w-14 h-14 rounded-xl bg-brand-light text-brand flex items-center justify-center text-xl font-bold mb-6 group-hover:bg-[#1c8098] group-hover:text-white transition-colors">
<i class="fa-solid fa-hospital-user"></i>
</div>
<h4 class="text-xl font-bold text-slate-900 mb-3">Patient Management</h4>
<p class="text-slate-600 text-sm leading-relaxed mb-6">
End-to-end patient workflow tools from intake to discharge, maximizing clinic efficiency and keeping communication channels transparent.
</p>
<a href="#" class="text-brand font-semibold text-sm inline-flex items-center gap-1 hover:gap-2 transition-all">
Learn more <i class="fa-solid fa-arrow-right text-xs"></i>
</a>
</div>
<!-- Card 3 -->
<div id="veterinary" class="bg-slate-50 p-8 rounded-2xl border border-slate-100 hover:shadow-xl transition-all group">
<div class="w-14 h-14 rounded-xl bg-teal-50 text-brand-vet flex items-center justify-center text-xl font-bold mb-6 group-hover:bg-brand-vet group-hover:text-white transition-colors">
<i class="fa-solid fa-paw"></i>
</div>
<h4 class="text-xl font-bold text-slate-900 mb-3">Veterinarian Solutions</h4>
<p class="text-slate-600 text-sm leading-relaxed mb-6">
Specialized veterinary software tailored for animal clinics, integrating EHR records, imaging, and tailored diagnostic decision tools.
</p>
<a href="#" class="text-brand-vet font-semibold text-sm inline-flex items-center gap-1 hover:gap-2 transition-all">
Explore Vet Tech <i class="fa-solid fa-arrow-right text-xs"></i>
</a>
</div>
</div>
</div>
</section>
<!-- Interoperability Section -->
<section id="interoperability" class="py-24 bg-slate-900 text-white relative overflow-hidden">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 relative z-10">
<div class="grid grid-cols-1 lg:grid-cols-2 gap-12 items-center">
<div class="space-y-6">
<span class="text-brand-accent text-xs font-bold uppercase tracking-widest bg-brand-accent/10 px-3 py-1 rounded-full">Universal Standards</span>
<h2 class="text-3xl lg:text-4xl font-extrabold tracking-tight">Built on True Interoperability</h2>
<p class="text-slate-300">
Healthcare data shouldn't live in silos. Plus Health Tech connects disparate legacy hospital systems, labs, and modern apps through standardized FHIR APIs and secure messaging protocols.
</p>
<ul class="space-y-3 text-sm text-slate-300">
<li class="flex items-center gap-3">
<i class="fa-solid fa-check text-brand-accent"></i> HL7 & FHIR Standard Compliance
</li>
<li class="flex items-center gap-3">
<i class="fa-solid fa-check text-brand-accent"></i> Secure, Enterprise-Grade API Gateway
</li>
<li class="flex items-center gap-3">
<i class="fa-solid fa-check text-brand-accent"></i> Real-time multi-facility synchronization
</li>
</ul>
</div>
<div class="bg-slate-800/80 p-8 rounded-2xl border border-slate-700 backdrop-blur-sm">
<div class="space-y-4">
<div class="flex items-center justify-between pb-3 border-b border-slate-700 text-xs text-slate-400">
<span>API Bridge Status</span>
<span class="text-emerald-400 font-mono">200 OK (Active)</span>
</div>
<div class="font-mono text-xs bg-slate-950 p-4 rounded-xl text-brand-accent overflow-x-auto">
<code>
{<br>
&nbsp;&nbsp;"resourceType": "Patient",<br>
&nbsp;&nbsp;"interoperable": true,<br>
&nbsp;&nbsp;"system": "PlusHealthTech-CDS-v4"<br>
}
</code>
</div>
<p class="text-xs text-slate-400 text-center">Lightning fast synchronization across multi-platform networks.</p>
</div>
</div>
</div>
</div>
</section>
+92 -37
View File
@@ -3,51 +3,106 @@
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>@ViewData["Title"] - plushealthtech</title>
<link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.min.css" />
<link rel="stylesheet" href="~/css/site.css" asp-append-version="true" />
<link rel="stylesheet" href="~/plushealthtech.styles.css" asp-append-version="true" />
<title>@ViewData["Title"] - Plus Health Tech | Interoperable Clinical Decision Support & Patient Management</title>
<!-- Tailwind CSS CDN -->
<script src="https://cdn.tailwindcss.com"></script>
<script>
tailwind.config = {
theme: {
extend: {
colors: {
brand: {
DEFAULT: '#1c8098',
dark: '#145f72',
light: '#e6f2f5',
accent: '#0ea5e9',
vet: '#0d9488'
}
}
}
}
}
</script>
<!-- FontAwesome for Icons -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<link rel="icon" type="image/x-icon" href="~/img/favicon.ico">
<script defer src="https://analytics.rokoh.com/script.js" data-website-id="1abdd171-c4c5-4785-9029-32407da60056"></script>
</head>
<body>
<header>
<nav class="navbar navbar-expand-sm navbar-toggleable-sm navbar-light bg-blue border-bottom box-shadow mb-3">
<div class="container">
<a class="navbar-brand text-white" asp-area="" asp-page="/Index">plushealthtech</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target=".navbar-collapse" aria-controls="navbarSupportedContent"
aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="navbar-collapse collapse d-sm-inline-flex justify-content-between">
<ul class="navbar-nav flex-grow-1">
<li class="nav-item">
<a class="nav-link text-light" asp-area="" asp-page="/Index">Home</a>
</li>
<li class="nav-item">
<a class="nav-link text-light" href="https://blog.plushealthtech.com">Blog</a>
</li>
</ul>
<body class="bg-slate-50 text-slate-800 font-sans antialiased selection:bg-brand-light selection:text-brand-dark">
<!-- Header / Navigation -->
<header class="sticky top-0 z-50 bg-white/90 backdrop-blur-md border-b border-slate-100 shadow-xs">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 h-20 flex items-center justify-between">
<!-- Logo -->
<a href="#" class="flex items-center gap-3">
<img src="https://www.plushealthtech.com/img/plushealthtech-logo.png" alt="Plus Health Tech Logo" class="h-10 w-auto object-contain">
</a>
<!-- Desktop Nav Links -->
<nav class="hidden md:flex items-center gap-8 font-medium text-sm text-slate-600">
<a href="#solutions" class="hover:text-brand transition-colors">Solutions</a>
<a href="#interoperability" class="hover:text-brand transition-colors">Interoperability</a>
<a href="#veterinary" class="hover:text-brand transition-colors">Veterinary Tech</a>
<a href="#about" class="hover:text-brand transition-colors">About Us</a>
<a href="https://blog.plushealthtech.com" class="hover:text-brand transition-colors">Blog</a>
</nav>
<!-- Action Buttons -->
<div class="hidden md:flex items-center gap-4">
<a href="#contact" class="text-sm font-semibold text-slate-700 hover:text-brand px-4 py-2">Sign In</a>
<a href="#contact" class="bg-[#1c8098] hover:bg-[#145f72] text-white text-sm font-semibold px-5 py-2.5 rounded-xl shadow-sm transition-all shadow-brand/20">
Request Demo
</a>
</div>
<!-- Mobile Menu Toggle -->
<button class="md:hidden text-slate-600 focus:outline-none">
<i class="fa-solid fa-bars text-xl"></i>
</button>
</div>
</header>
@RenderBody()
<!-- Footer -->
<footer id="contact" class="bg-slate-950 text-slate-400 py-16 border-t border-slate-900">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 grid grid-cols-1 md:grid-cols-4 gap-10">
<div class="space-y-4">
<img src="~/img/plushealthtech-logo.png" alt="Plus Health Tech" class="h-8 w-auto brightness-200">
<p class="text-xs text-slate-500">
Interoperable Clinical Decision Support, Patient Management, and Veterinary Software Solutions.
</p>
</div>
<div>
<h5 class="text-white text-sm font-semibold mb-4">Solutions</h5>
<ul class="space-y-2 text-xs">
<li><a href="#" class="hover:text-white transition-colors">Clinical Decision Support</a></li>
<li><a href="#" class="hover:text-white transition-colors">Patient Management</a></li>
<li><a href="#" class="v-tech hover:text-white transition-colors">Veterinarian Tech</a></li>
</ul>
</div>
<div>
<h5 class="text-white text-sm font-semibold mb-4">Company</h5>
<ul class="space-y-2 text-xs">
<li><a href="#" class="hover:text-white transition-colors">About Us</a></li>
<li><a href="#" class="hover:text-white transition-colors">Careers</a></li>
<li><a href="#" class="hover:text-white transition-colors">Contact</a></li>
</ul>
</div>
<div>
<h5 class="text-white text-sm font-semibold mb-4">Connect</h5>
<p class="text-xs text-slate-500 mb-4">Subscribe to our technical updates and newsletter.</p>
<div class="flex gap-2">
<input type="email" placeholder="Enter email" class="bg-slate-900 border border-slate-800 text-xs px-3 py-2 rounded-lg text-white focus:outline-none focus:border-brand w-full">
<button class="bg-[#1c8098] hover:bg-[#145f72] text-white text-xs px-4 py-2 rounded-lg font-semibold transition-colors">Join</button>
</div>
</div>
</nav>
</header>
<div class="container">
<main role="main" class="pb-3">
@RenderBody()
</main>
</div>
<footer class="border-top footer text-muted">
<div class="container">
&copy; 2024 - plushealthtech
</div>
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 mt-12 pt-8 border-t border-slate-900 text-center text-xs text-slate-600">
&copy; @DateTime.Now.Year Plus Health Tech. All rights reserved.
</div>
</footer>
<script src="~/lib/jquery/dist/jquery.min.js"></script>
<script src="~/lib/bootstrap/dist/js/bootstrap.bundle.min.js"></script>
<script src="~/js/site.js" asp-append-version="true"></script>
@await RenderSectionAsync("Scripts", required: false)
</body>
</html>
+1 -1
View File
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>net7.0</TargetFramework>
<TargetFramework>net10.0</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<UserSecretsId>c1fd229b-bd25-4990-823e-51a3a99021dd</UserSecretsId>