v3-opsv / index.html
JayStormX8's picture
Add 3 files
aff294d verified
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>One Page Strategic Vision</title>
<script src="https://cdn.tailwindcss.com"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/2.5.1/jspdf.umd.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/html2canvas/1.4.1/html2canvas.min.js"></script>
<style>
.section-card {
transition: all 0.3s ease;
}
.section-card:hover {
transform: translateY(-2px);
box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.1);
}
textarea {
min-height: 80px;
}
.owner-input {
position: relative;
}
.owner-input:after {
content: "Owner";
position: absolute;
right: 10px;
top: 50%;
transform: translateY(-50%);
color: #6b7280;
font-size: 0.75rem;
}
</style>
</head>
<body class="bg-gray-50">
<div class="container mx-auto px-4 py-8 max-w-6xl">
<div class="text-center mb-8">
<h1 class="text-3xl md:text-4xl font-bold text-indigo-800 mb-2">One Page Strategic Vision</h1>
<p class="text-gray-600">Define your company's strategic direction in one comprehensive document</p>
<div class="flex justify-center space-x-4 mt-6">
<button id="savePdf" class="bg-indigo-600 hover:bg-indigo-700 text-white px-4 py-2 rounded-md flex items-center">
<svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5 mr-2" fill="none" viewBox="0 0 24 24" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M7 16a4 4 0 01-.88-7.903A5 5 0 1115.9 6L16 6a5 5 0 011 9.9M9 19l3 3m0 0l3-3m-3 3V10" />
</svg>
Save to PDF
</button>
<button id="saveJson" class="bg-emerald-600 hover:bg-emerald-700 text-white px-4 py-2 rounded-md flex items-center">
<svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5 mr-2" fill="none" viewBox="0 0 24 24" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-4l-4 4m0 0l-4-4m4 4V4" />
</svg>
Download as JSON
</button>
</div>
</div>
<div id="formContainer" class="space-y-6">
<!-- 1. Core Purpose & Values -->
<div class="section-card bg-white p-6 rounded-lg shadow-md">
<h2 class="text-xl font-semibold text-indigo-700 mb-4 border-b pb-2">1. Core Purpose & Values</h2>
<div class="grid md:grid-cols-2 gap-6">
<div>
<label class="block text-sm font-medium text-gray-700 mb-1">Core Purpose</label>
<textarea name="corePurpose" class="w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500" placeholder="Why does your company exist? (e.g., 'To empower small businesses through technology')"></textarea>
</div>
<div>
<label class="block text-sm font-medium text-gray-700 mb-1">Core Values</label>
<div class="space-y-3">
<input type="text" name="value1" class="w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500" placeholder="Value 1 (e.g., Integrity)">
<input type="text" name="value2" class="w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500" placeholder="Value 2 (e.g., Innovation)">
<input type="text" name="value3" class="w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500" placeholder="Value 3 (e.g., Customer Focus)">
</div>
</div>
</div>
<div class="mt-4">
<label class="block text-sm font-medium text-gray-700 mb-1">Overall Owner</label>
<input type="text" name="corePurposeOwner" class="w-full md:w-1/2 px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500" placeholder="Name of responsible person">
</div>
</div>
<!-- 2. 2024 Revenue Goal -->
<div class="section-card bg-white p-6 rounded-lg shadow-md">
<h2 class="text-xl font-semibold text-indigo-700 mb-4 border-b pb-2">2. 2024 Revenue Goal</h2>
<div class="grid md:grid-cols-3 gap-4">
<div>
<label class="block text-sm font-medium text-gray-700 mb-1">Monthly Revenue ($)</label>
<div class="flex">
<input type="number" name="monthlyRevenue" class="flex-1 px-3 py-2 border border-gray-300 rounded-l-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500" placeholder="10000">
<input type="text" name="monthlyRevenueOwner" class="w-32 px-3 py-2 border-t border-r border-b border-gray-300 rounded-r-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500" placeholder="Owner">
</div>
</div>
<div>
<label class="block text-sm font-medium text-gray-700 mb-1">Quarterly Revenue ($)</label>
<div class="flex">
<input type="number" name="quarterlyRevenue" class="flex-1 px-3 py-2 border border-gray-300 rounded-l-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500" placeholder="30000">
<input type="text" name="quarterlyRevenueOwner" class="w-32 px-3 py-2 border-t border-r border-b border-gray-300 rounded-r-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500" placeholder="Owner">
</div>
</div>
<div>
<label class="block text-sm font-medium text-gray-700 mb-1">Yearly Revenue ($)</label>
<div class="flex">
<input type="number" name="yearlyRevenue" class="flex-1 px-3 py-2 border border-gray-300 rounded-l-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500" placeholder="120000">
<input type="text" name="yearlyRevenueOwner" class="w-32 px-3 py-2 border-t border-r border-b border-gray-300 rounded-r-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500" placeholder="Owner">
</div>
</div>
</div>
</div>
<!-- 3. 2024 Profit Goal -->
<div class="section-card bg-white p-6 rounded-lg shadow-md">
<h2 class="text-xl font-semibold text-indigo-700 mb-4 border-b pb-2">3. 2024 Profit Goal</h2>
<div class="grid md:grid-cols-3 gap-4">
<div>
<label class="block text-sm font-medium text-gray-700 mb-1">Monthly Profit ($)</label>
<div class="flex">
<input type="number" name="monthlyProfit" class="flex-1 px-3 py-2 border border-gray-300 rounded-l-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500" placeholder="5000">
<input type="text" name="monthlyProfitOwner" class="w-32 px-3 py-2 border-t border-r border-b border-gray-300 rounded-r-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500" placeholder="Owner">
</div>
</div>
<div>
<label class="block text-sm font-medium text-gray-700 mb-1">Quarterly Profit ($)</label>
<div class="flex">
<input type="number" name="quarterlyProfit" class="flex-1 px-3 py-2 border border-gray-300 rounded-l-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500" placeholder="15000">
<input type="text" name="quarterlyProfitOwner" class="w-32 px-3 py-2 border-t border-r border-b border-gray-300 rounded-r-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500" placeholder="Owner">
</div>
</div>
<div>
<label class="block text-sm font-medium text-gray-700 mb-1">Yearly Profit ($)</label>
<div class="flex">
<input type="number" name="yearlyProfit" class="flex-1 px-3 py-2 border border-gray-300 rounded-l-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500" placeholder="60000">
<input type="text" name="yearlyProfitOwner" class="w-32 px-3 py-2 border-t border-r border-b border-gray-300 rounded-r-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500" placeholder="Owner">
</div>
</div>
</div>
</div>
<!-- 4. 10-Year Sky's the Limit Goal -->
<div class="section-card bg-white p-6 rounded-lg shadow-md">
<h2 class="text-xl font-semibold text-indigo-700 mb-4 border-b pb-2">4. 10-Year Sky's the Limit Goal</h2>
<div class="space-y-4">
<div>
<label class="block text-sm font-medium text-gray-700 mb-1">Vision Statement</label>
<input type="text" name="visionStatement" class="w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500" placeholder="Become #1 in our market">
</div>
<div>
<label class="block text-sm font-medium text-gray-700 mb-1">Description</label>
<textarea name="visionDescription" class="w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500" placeholder="Describe your ambitious 10-year vision in detail"></textarea>
</div>
</div>
</div>
<!-- 5. 3-Year Goal -->
<div class="section-card bg-white p-6 rounded-lg shadow-md">
<h2 class="text-xl font-semibold text-indigo-700 mb-4 border-b pb-2">5. 3-Year Goal</h2>
<div class="space-y-4">
<div>
<label class="block text-sm font-medium text-gray-700 mb-1">Goal Summary</label>
<input type="text" name="threeYearGoal" class="w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500" placeholder="Expand to 3 new markets">
</div>
<div>
<label class="block text-sm font-medium text-gray-700 mb-1">Description</label>
<textarea name="threeYearDescription" class="w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500" placeholder="Detailed plan for achieving 3-year goal"></textarea>
</div>
</div>
</div>
<!-- 6. 1-Year Goals -->
<div class="section-card bg-white p-6 rounded-lg shadow-md">
<h2 class="text-xl font-semibold text-indigo-700 mb-4 border-b pb-2">6. 1-Year Goals</h2>
<div class="space-y-4">
<div>
<label class="block text-sm font-medium text-gray-700 mb-1">Goal 1</label>
<div class="flex">
<input type="text" name="oneYearGoal1" class="flex-1 px-3 py-2 border border-gray-300 rounded-l-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500" placeholder="Launch new product line">
<input type="text" name="oneYearGoal1Owner" class="w-32 px-3 py-2 border-t border-r border-b border-gray-300 rounded-r-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500" placeholder="Owner">
</div>
</div>
<div>
<label class="block text-sm font-medium text-gray-700 mb-1">Goal 2</label>
<div class="flex">
<input type="text" name="oneYearGoal2" class="flex-1 px-3 py-2 border border-gray-300 rounded-l-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500" placeholder="Increase customer retention by 20%">
<input type="text" name="oneYearGoal2Owner" class="w-32 px-3 py-2 border-t border-r border-b border-gray-300 rounded-r-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500" placeholder="Owner">
</div>
</div>
<div>
<label class="block text-sm font-medium text-gray-700 mb-1">Goal 3</label>
<div class="flex">
<input type="text" name="oneYearGoal3" class="flex-1 px-3 py-2 border border-gray-300 rounded-l-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500" placeholder="Build team of 10 employees">
<input type="text" name="oneYearGoal3Owner" class="w-32 px-3 py-2 border-t border-r border-b border-gray-300 rounded-r-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500" placeholder="Owner">
</div>
</div>
</div>
</div>
<!-- 7. 90-Day Goals -->
<div class="section-card bg-white p-6 rounded-lg shadow-md">
<h2 class="text-xl font-semibold text-indigo-700 mb-4 border-b pb-2">7. 90-Day Goals</h2>
<div class="space-y-4">
<div>
<label class="block text-sm font-medium text-gray-700 mb-1">Goal 1</label>
<div class="flex">
<input type="text" name="ninetyDayGoal1" class="flex-1 px-3 py-2 border border-gray-300 rounded-l-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500" placeholder="Complete product prototype">
<input type="text" name="ninetyDayGoal1Owner" class="w-32 px-3 py-2 border-t border-r border-b border-gray-300 rounded-r-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500" placeholder="Owner">
</div>
</div>
<div>
<label class="block text-sm font-medium text-gray-700 mb-1">Goal 2</label>
<div class="flex">
<input type="text" name="ninetyDayGoal2" class="flex-1 px-3 py-2 border border-gray-300 rounded-l-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500" placeholder="Hire 2 new team members">
<input type="text" name="ninetyDayGoal2Owner" class="w-32 px-3 py-2 border-t border-r border-b border-gray-300 rounded-r-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500" placeholder="Owner">
</div>
</div>
<div>
<label class="block text-sm font-medium text-gray-700 mb-1">Goal 3</label>
<div class="flex">
<input type="text" name="ninetyDayGoal3" class="flex-1 px-3 py-2 border border-gray-300 rounded-l-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500" placeholder="Secure 3 new clients">
<input type="text" name="ninetyDayGoal3Owner" class="w-32 px-3 py-2 border-t border-r border-b border-gray-300 rounded-r-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500" placeholder="Owner">
</div>
</div>
</div>
</div>
<!-- 8. Quarterly Planning -->
<div class="section-card bg-white p-6 rounded-lg shadow-md">
<h2 class="text-xl font-semibold text-indigo-700 mb-4 border-b pb-2">8. Quarterly Planning</h2>
<div class="grid md:grid-cols-2 gap-6">
<div class="space-y-4">
<div>
<label class="block text-sm font-medium text-gray-700 mb-1">Quarterly Theme</label>
<input type="text" name="quarterlyTheme" class="w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500" placeholder="e.g., 'Product Launch Quarter'">
</div>
<div>
<label class="block text-sm font-medium text-gray-700 mb-1">Quarterly Team Reward</label>
<input type="text" name="quarterlyReward" class="w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500" placeholder="e.g., 'Team retreat to Hawaii'">
</div>
</div>
<div>
<label class="block text-sm font-medium text-gray-700 mb-1">Critical #</label>
<input type="text" name="criticalNumber" class="w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500 mb-2" placeholder="e.g., '25 new customers'">
<label class="block text-sm font-medium text-gray-700 mb-1">Description</label>
<textarea name="criticalNumberDescription" class="w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500" placeholder="Why this number is critical"></textarea>
</div>
</div>
</div>
<!-- 9. Monthly Goals -->
<div class="section-card bg-white p-6 rounded-lg shadow-md">
<h2 class="text-xl font-semibold text-indigo-700 mb-4 border-b pb-2">9. Monthly Goals</h2>
<div class="space-y-4">
<div>
<label class="block text-sm font-medium text-gray-700 mb-1">Goal 1</label>
<div class="flex">
<input type="text" name="monthlyGoal1" class="flex-1 px-3 py-2 border border-gray-300 rounded-l-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500" placeholder="Complete market research">
<input type="text" name="monthlyGoal1Owner" class="w-32 px-3 py-2 border-t border-r border-b border-gray-300 rounded-r-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500" placeholder="Owner">
</div>
</div>
<div>
<label class="block text-sm font-medium text-gray-700 mb-1">Goal 2</label>
<div class="flex">
<input type="text" name="monthlyGoal2" class="flex-1 px-3 py-2 border border-gray-300 rounded-l-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500" placeholder="Increase social media following by 10%">
<input type="text" name="monthlyGoal2Owner" class="w-32 px-3 py-2 border-t border-r border-b border-gray-300 rounded-r-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500" placeholder="Owner">
</div>
</div>
<div>
<label class="block text-sm font-medium text-gray-700 mb-1">Goal 3</label>
<div class="flex">
<input type="text" name="monthlyGoal3" class="flex-1 px-3 py-2 border border-gray-300 rounded-l-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500" placeholder="Generate 50 qualified leads">
<input type="text" name="monthlyGoal3Owner" class="w-32 px-3 py-2 border-t border-r border-b border-gray-300 rounded-r-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500" placeholder="Owner">
</div>
</div>
</div>
</div>
<!-- 10. Branding & Differentiation -->
<div class="section-card bg-white p-6 rounded-lg shadow-md">
<h2 class="text-xl font-semibold text-indigo-700 mb-4 border-b pb-2">10. Branding & Differentiation</h2>
<div class="grid md:grid-cols-2 gap-6">
<div>
<label class="block text-sm font-medium text-gray-700 mb-1">Differentiating Activities</label>
<div class="space-y-3">
<input type="text" name="differentiatingActivity1" class="w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500" placeholder="Activity 1 (e.g., '24/7 customer support')">
<input type="text" name="differentiatingActivity2" class="w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500" placeholder="Activity 2 (e.g., 'Lifetime guarantee')">
<input type="text" name="differentiatingActivity3" class="w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500" placeholder="Activity 3 (e.g., 'Personalized onboarding')">
</div>
</div>
<div>
<label class="block text-sm font-medium text-gray-700 mb-1">X-Factor</label>
<textarea name="xFactor" class="w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500" placeholder="What makes your company truly unique?"></textarea>
</div>
</div>
</div>
<!-- 11. Strategic Context -->
<div class="section-card bg-white p-6 rounded-lg shadow-md">
<h2 class="text-xl font-semibold text-indigo-700 mb-4 border-b pb-2">11. Strategic Context</h2>
<div class="grid md:grid-cols-3 gap-4">
<div>
<label class="block text-sm font-medium text-gray-700 mb-1">Trends</label>
<textarea name="trends" class="w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500" placeholder="Industry trends affecting your business"></textarea>
</div>
<div>
<label class="block text-sm font-medium text-gray-700 mb-1">Strengths</label>
<textarea name="strengths" class="w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500" placeholder="Your company's key strengths"></textarea>
</div>
<div>
<label class="block text-sm font-medium text-gray-700 mb-1">Weaknesses</label>
<textarea name="weaknesses" class="w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500" placeholder="Areas needing improvement"></textarea>
</div>
</div>
</div>
<!-- 12. Ideal Client Profile -->
<div class="section-card bg-white p-6 rounded-lg shadow-md">
<h2 class="text-xl font-semibold text-indigo-700 mb-4 border-b pb-2">12. Ideal Client Profile</h2>
<div class="grid md:grid-cols-2 gap-6">
<div>
<label class="block text-sm font-medium text-gray-700 mb-1">Who & Where</label>
<textarea name="idealClientWho" class="w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500" placeholder="Demographics, location, industry, etc."></textarea>
</div>
<div>
<label class="block text-sm font-medium text-gray-700 mb-1">Description of Ideal Client</label>
<textarea name="idealClientDescription" class="w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500" placeholder="Psychographics, needs, pain points"></textarea>
</div>
</div>
</div>
<!-- 13. Problem We Solve & Product/Service -->
<div class="section-card bg-white p-6 rounded-lg shadow-md">
<h2 class="text-xl font-semibold text-indigo-700 mb-4 border-b pb-2">13. Problem We Solve & Product/Service</h2>
<div class="grid md:grid-cols-2 gap-6">
<div>
<label class="block text-sm font-medium text-gray-700 mb-1">Problem Description</label>
<textarea name="problemDescription" class="w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500" placeholder="What problem does your company solve?"></textarea>
</div>
<div>
<label class="block text-sm font-medium text-gray-700 mb-1">Offer / Service Description</label>
<textarea name="serviceDescription" class="w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500" placeholder="How your product/service solves the problem"></textarea>
</div>
</div>
</div>
<!-- 14. Brand Promise -->
<div class="section-card bg-white p-6 rounded-lg shadow-md">
<h2 class="text-xl font-semibold text-indigo-700 mb-4 border-b pb-2">14. Brand Promise</h2>
<div class="grid md:grid-cols-2 gap-6">
<div>
<label class="block text-sm font-medium text-gray-700 mb-1">What Clients Get</label>
<textarea name="clientBenefits" class="w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500" placeholder="The guaranteed outcome clients can expect"></textarea>
</div>
<div>
<label class="block text-sm font-medium text-gray-700 mb-1">Brand Promise KPIs</label>
<div class="space-y-3">
<div class="flex">
<input type="text" name="brandKpi1" class="flex-1 px-3 py-2 border border-gray-300 rounded-l-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500" placeholder="KPI 1 (e.g., '95% satisfaction')">
<input type="text" name="brandKpi1Owner" class="w-32 px-3 py-2 border-t border-r border-b border-gray-300 rounded-r-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500" placeholder="Owner">
</div>
<div class="flex">
<input type="text" name="brandKpi2" class="flex-1 px-3 py-2 border border-gray-300 rounded-l-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500" placeholder="KPI 2 (e.g., '24h response time')">
<input type="text" name="brandKpi2Owner" class="w-32 px-3 py-2 border-t border-r border-b border-gray-300 rounded-r-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500" placeholder="Owner">
</div>
<div class="flex">
<input type="text" name="brandKpi3" class="flex-1 px-3 py-2 border border-gray-300 rounded-l-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500" placeholder="KPI 3 (e.g., 'Money-back guarantee')">
<input type="text" name="brandKpi3Owner" class="w-32 px-3 py-2 border-t border-r border-b border-gray-300 rounded-r-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500" placeholder="Owner">
</div>
</div>
</div>
</div>
</div>
<!-- 15. One-Phrase Strategy -->
<div class="section-card bg-white p-6 rounded-lg shadow-md">
<h2 class="text-xl font-semibold text-indigo-700 mb-4 border-b pb-2">15. One-Phrase Strategy</h2>
<div>
<label class="block text-sm font-medium text-gray-700 mb-1">Strategy Statement</label>
<input type="text" name="strategyStatement" class="w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500" placeholder="e.g., 'Dominate the premium segment through superior service'">
</div>
</div>
<!-- 16. Economic Engine -->
<div class="section-card bg-white p-6 rounded-lg shadow-md">
<h2 class="text-xl font-semibold text-indigo-700 mb-4 border-b pb-2">16. Economic Engine</h2>
<div>
<label class="block text-sm font-medium text-gray-700 mb-1">Profit per X</label>
<input type="text" name="profitPerX" class="w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-indigo-500 focus:border-indigo-500" placeholder="e.g., 'Profit per customer', 'Profit per location'">
</div>
</div>
</div>
<div class="flex justify-center space-x-4 mt-10 mb-10">
<button id="savePdfBottom" class="bg-indigo-600 hover:bg-indigo-700 text-white px-4 py-2 rounded-md flex items-center">
<svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5 mr-2" fill="none" viewBox="0 0 24 24" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M7 16a4 4 0 01-.88-7.903A5 5 0 1115.9 6L16 6a5 5 0 011 9.9M9 19l3 3m0 0l3-3m-3 3V10" />
</svg>
Save to PDF
</button>
<button id="saveJsonBottom" class="bg-emerald-600 hover:bg-emerald-700 text-white px-4 py-2 rounded-md flex items-center">
<svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5 mr-2" fill="none" viewBox="0 0 24 24" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-4l-4 4m0 0l-4-4m4 4V4" />
</svg>
Download as JSON
</button>
</div>
</div>
<script>
document.addEventListener('DOMContentLoaded', function() {
// PDF Generation
const { jsPDF } = window.jspdf;
function saveAsPdf() {
const element = document.getElementById('formContainer');
const opt = {
margin: 10,
filename: 'Strategic_Vision.pdf',
image: { type: 'jpeg', quality: 0.98 },
html2canvas: { scale: 2 },
jsPDF: { unit: 'mm', format: 'a4', orientation: 'portrait' }
};
html2canvas(element, {
scale: 2,
logging: true,
useCORS: true
}).then(canvas => {
const imgData = canvas.toDataURL('image/jpeg');
const pdf = new jsPDF('p', 'mm', 'a4');
const imgProps = pdf.getImageProperties(imgData);
const pdfWidth = pdf.internal.pageSize.getWidth() - 20;
const pdfHeight = (imgProps.height * pdfWidth) / imgProps.width;
pdf.addImage(imgData, 'JPEG', 10, 10, pdfWidth, pdfHeight);
pdf.save('Strategic_Vision.pdf');
});
}
function saveAsJson() {
const formData = {};
const inputs = document.querySelectorAll('input, textarea');
inputs.forEach(input => {
if (input.name) {
formData[input.name] = input.value;
}
});
const dataStr = JSON.stringify(formData, null, 2);
const dataUri = 'data:application/json;charset=utf-8,'+ encodeURIComponent(dataStr);
const exportFileDefaultName = 'Strategic_Vision.json';
const linkElement = document.createElement('a');
linkElement.setAttribute('href', dataUri);
linkElement.setAttribute('download', exportFileDefaultName);
linkElement.click();
}
// Event listeners for buttons
document.getElementById('savePdf').addEventListener('click', saveAsPdf);
document.getElementById('saveJson').addEventListener('click', saveAsJson);
document.getElementById('savePdfBottom').addEventListener('click', saveAsPdf);
document.getElementById('saveJsonBottom').addEventListener('click', saveAsJson);
});
</script>
<p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 🧬 <a href="https://enzostvs-deepsite.hf.space?remix=JayStormX8/v3-opsv" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
</html>