PageSourceSearch

https://www.idcardscannerpro.com/p/contact.html

html idcardscannerpro.com collected 2026-09-27 09:32:30 UTC 659,128 bytes, 12,121 lines download raw bytes

1<!DOCTYPE html>
2<html lang='en' xmlns='http://www.w3.org/1999/xhtml' xmlns:b='http://www.google.com/2005/gml/b' xmlns:data='http://www.google.com/2005/gml/data' xmlns:expr='http://www.google.com/2005/gml/expr'><head>
3<!-- 1. BASIC META TAGS & VERIFICATION -->
4<meta content='width=device-width, initial-scale=1, maximum-scale=5, user-scalable=yes' name='viewport'/>
5<meta content='ea0ea3208809cf24' name='yandex-verification'/>
6<meta content='dbad6840504c4e2206ac6e10bb3df8a8' name='p:domain_verify'/>
7<meta content='t-t9Ikf50LpD5Jm9ow2sDvxjwM85ivSzj4vQ4UIdsHk' name='google-site-verification'/>
8<meta content='VzRzQXNyZmg0ZjVRV1hCZ0krNUx2eElFV3VYc1U0WWxIS2pVY2NXV2M3TT01' name='dmca-site-verification'/>
9<meta content='#4f46e5' name='theme-color'/>
10<meta content='blogger' name='generator'/>
11<!-- Author & Application Meta Tags (UPDATED) -->
12<meta content='ID Card Scanner Pro Team' name='author'/>
13<meta content='ID Card Scanner Pro' name='application-name'/>
14<!-- 2. SPEED OPTIMIZATION -->
15<link href='https://blogger.googleusercontent.com' rel='preconnect'/>
16<link href='https://fonts.googleapis.com' rel='preconnect'/>
17<link href='https://fonts.gstatic.com' rel='preconnect'/>
18<link href='https://cdnjs.cloudflare.com' rel='preconnect'/>
19<link href='https://i.imgur.com' rel='preconnect'/>
20<!-- এট&#2495; য&#2507;গ কর&#2497;ন -->
21<link href='https://blogger.googleusercontent.com' rel='dns-prefetch'/>
22<link href='https://cdnjs.cloudflare.com' rel='dns-prefetch'/>
23<link href='https://i.imgur.com' rel='dns-prefetch'/>
24<!-- এট&#2495; য&#2507;গ কর&#2497;ন -->
25<!-- 3. TITLE & DESCRIPTION -->
26<title>
27Contact - ID Card Scanner Pro 
28</title>
29<!-- Meta Description -->
30<meta content='For Studio, Photocopy, and Online Computer Shop Owners: Use all professional tools for your Digital Studio, 100% free.' name='description'/>
31<!-- Keywords & Robots -->
32<meta content='id card scanner pro, idcardscannerpro, idcardscannerpro com, id card scanner, nid scanner pro, id scanner, id scanner pro, nid card scanner pro, nid scanner, idskanpro, idskan pro, id card pro, idscan pro, scanner pro, nid card scanner, id card scaner pro, idcardscannerpro.com, আইডি কার্ড স্ক্যানার প্রো, it scanner pro, id card scanner free, id card pro scanner, nid card scanner online, id card scanner pro bd, card scanner pro, id scanner professional app, nid scanner online, nid pro, id card scanner pro.com, nid scanner bd, id card scan, id card scanner app, id card scaner, id scaner pro, idcardpro, free id card scanner, id scanner to pdf, id card scanner pro apk, idscannerpro, id card scan pro, nid card pro, idscanner, online id card scanner, id card scanner project, id card scan online, id scanner free, scanerpro, idcardscanerpro, id scaner, ic card scanner pro, idscan. pro, id card scanner pro family card, nid scan, id card scanner - pro apk, pro scanner, in card scanner pro, scaner pro, scanner id card, id card scanner pro download, id card scanner front and back, idcard scanner pro, scan id card, idscan.pro, id scan pro, nid scanner online free, id card scanner pdf, free online id card scanner, id card screener pro, scanner id, scan id card to pdf online, id card scanner online, id card scan to pdf, আইডি কার্ড স্ক্যান, আইডি কার্ড স্ক্যানার, এনআইডি স্ক্যানার প্রো, আইডি স্ক্যানার, এনআইডি কার্ড স্ক্যানার প্রো, এনআইডি স্ক্যানার, আইডিস্ক্যানপ্রো, আইডিস্ক্যান প্রো, আইডি কার্ড প্রো, id card scan copy, smart card scanner, scan nid card, idcard scanner, ic scanner pro, scan pro, scannerpro, idcardscanner, id card scanning, scan id' name='keywords'/>
33<meta content='index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1' name='robots'/>
34<!-- 4. CANONICAL URL -->
35<link href='https://www.idcardscannerpro.com/p/contact.html' rel='canonical'/>
36<!-- 5. FAVICON & APP ICONS (Updated for Google) -->
37<link href='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmBGaG0kNclic7Y93de1HsabQzd_SIcBJdnQ65L4nhcmDMBX-SaimBukzQywe7XRZyHeYqGTteN2R0TyVwpblx_ErtKYAU0GBhZfJaKP0biJVIy9V27_XTx1aMXszgCcgHkPzdgEcbpvTc_0-bguaCjXWVL8um6DdRkY4rSBEnKvtDRGI66_1-1j2lg0E/s144/logo.png' rel='icon' sizes='144x144' type='image/png'/>
38<link href='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmBGaG0kNclic7Y93de1HsabQzd_SIcBJdnQ65L4nhcmDMBX-SaimBukzQywe7XRZyHeYqGTteN2R0TyVwpblx_ErtKYAU0GBhZfJaKP0biJVIy9V27_XTx1aMXszgCcgHkPzdgEcbpvTc_0-bguaCjXWVL8um6DdRkY4rSBEnKvtDRGI66_1-1j2lg0E/s192/logo.png' rel='shortcut icon' type='image/png'/>
39<link href='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmBGaG0kNclic7Y93de1HsabQzd_SIcBJdnQ65L4nhcmDMBX-SaimBukzQywe7XRZyHeYqGTteN2R0TyVwpblx_ErtKYAU0GBhZfJaKP0biJVIy9V27_XTx1aMXszgCcgHkPzdgEcbpvTc_0-bguaCjXWVL8um6DdRkY4rSBEnKvtDRGI66_1-1j2lg0E/s180/logo.png' rel='apple-touch-icon'/>
40<!-- Windows / Microsoft Tiles -->
41<meta content='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmBGaG0kNclic7Y93de1HsabQzd_SIcBJdnQ65L4nhcmDMBX-SaimBukzQywe7XRZyHeYqGTteN2R0TyVwpblx_ErtKYAU0GBhZfJaKP0biJVIy9V27_XTx1aMXszgCcgHkPzdgEcbpvTc_0-bguaCjXWVL8um6DdRkY4rSBEnKvtDRGI66_1-1j2lg0E/s150/logo.png' name='msapplication-TileImage'/>
42<!-- ======================================================= MASTER SOCIAL MEDIA CARDS (FB, TW, WA, TG, INSTA) ======================================================= -->
43<!-- 1. OPEN GRAPH (Works for Facebook, WhatsApp, Telegram, Instagram, YouTube) -->
44<meta content='website' property='og:type'/>
45<meta content='https://www.idcardscannerpro.com/p/contact.html' property='og:url'/>
46<meta content='ID Card Scanner Pro: Contact' property='og:title'/>
47<meta content='ID Card Scanner Pro' property='og:site_name'/>
48<meta content='en_US' property='og:locale'/>
49<!-- Smart Description Logic -->
50<meta content='Scan ID cards and Passports online. Convert to A4 PDF instantly with smart crop & magic filter. 100% Free & Secure tool for NID and Passport scanning.' property='og:description'/>
51<!-- 2. TWITTER CARDS (Works for X/Twitter) -->
52<meta content='summary_large_image' name='twitter:card'/>
53<meta content='ID Card Scanner Pro' name='twitter:domain'/>
54<meta content='https://www.idcardscannerpro.com/p/contact.html' name='twitter:url'/>
55<meta content='ID Card Scanner Pro: Contact' name='twitter:title'/>
56<meta content='Scan ID cards and Passports online. Convert to A4 PDF instantly with smart crop & magic filter. 100% Free & Secure tool for NID and Passports.' name='twitter:description'/>
57<!-- 3. UNIVERSAL IMAGE LOGIC (Smart Resize & WhatsApp Fix) -->
58<!-- For Homepage or No Image Posts: Use Default Cover -->
59<meta content='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQyj6J7MvS-_qeLQYlb09EZGqAnIRv3-ziMC5UY3LFuLSpOlqkUmvj-EF9pGR7rUSJxsmjRhvmMVEg7oj1oolwdYvngqInsvNgW0l7Xqr67WxP2hSYWxK_Gc5CgGJxDsv_r79UkE9v8XYuB9yEGn6WOnOgXSGLg4SFBB6EtHBNXxZPJl-fKQfMbBdFSP0/s1600/cover.webp' property='og:image'/>
60<meta content='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQyj6J7MvS-_qeLQYlb09EZGqAnIRv3-ziMC5UY3LFuLSpOlqkUmvj-EF9pGR7rUSJxsmjRhvmMVEg7oj1oolwdYvngqInsvNgW0l7Xqr67WxP2hSYWxK_Gc5CgGJxDsv_r79UkE9v8XYuB9yEGn6WOnOgXSGLg4SFBB6EtHBNXxZPJl-fKQfMbBdFSP0/s1600/cover.webp' name='twitter:image'/>
61<meta content='ID Card Scanner Pro - Free Online Tool' property='og:image:alt'/>
62<meta content='ID Card Scanner Pro - Free Online Tool' name='twitter:image:alt'/>
63<!-- Image Dimensions (Helps WhatsApp & FB load image faster) -->
64<meta content='1200' property='og:image:width'/>
65<meta content='630' property='og:image:height'/>
66<!-- RSS & ATOM FEEDS -->
67<link href='https://www.idcardscannerpro.com/feeds/posts/default' rel='alternate' title='Atom' type='application/atom+xml'/>
68<link href='https://www.idcardscannerpro.com/feeds/posts/default?alt=rss' rel='alternate' title='RSS' type='application/rss+xml'/>
69<link href='https://www.blogger.com/feeds/8079864016398607630/posts/default' rel='service.post' title='Atom' type='application/atom+xml'/>
70<!-- 7. GOOGLE ANALYTICS -->
vendor: 72 bytes, lines 70-71
70
71<script async='async' src='https://www.googletagmanager.com/gtag/js?id=
71G-7B73VX1KPT
vendor: 12 bytes, line 71
71'></script>
72<script>
73      
vendor: 145 bytes, lines 73-76
73window.dataLayer = window.dataLayer || [];
74      function gtag(){dataLayer.push(arguments);}
75      gtag('js', new Date());
76      gtag('config', '
76G-7B73VX1KPT
vendor: 8 bytes, lines 76-77
76');
77    
77</script>
77
78<!-- 8. SCHEMA MARKUP (ALL-IN-ONE & FIXED) -->
79<!-- 9. BREADCRUMB SCHEMA (For All Pages) -->
80<script type='application/ld+json'>
81      {
82        "@context": "https://schema.org",
83        "@type": "BreadcrumbList",
84        "itemListElement": [{
85          "@type": "ListItem",
86          "position": 1,
87          "name": "Home",
88          "item": "https://www.idcardscannerpro.com/"
89        }
90        
91        ]
92      }
93    </script>
93
94<!-- 10. EXTERNAL FONTS & LIBS -->
95<link href='https://fonts.googleapis.com' rel='preconnect'/>
96<link crossorigin='' href='https://fonts.gstatic.com' rel='preconnect'/>
97<!-- Optimized Google Fonts Loading -->
98<link href='https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap' media='print' onload='this.media="all"' rel='stylesheet'/>
99<link href='https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.0/css/all.min.css' rel='stylesheet'/>
100<!-- External Tools CSS Hosted on GitHub via JSDelivr -->
101<link href='https://cdn.jsdelivr.net/gh/fyzalkarimbd-web/scanner@main/tools03.css' rel='stylesheet' type='text/css'/>
102<link href='https://cdn.jsdelivr.net/gh/fyzalkarimbd-web/scanner@main/pp2.css' rel='stylesheet' type='text/css'/>
103<link href='https://cdn.jsdelivr.net/gh/fyzalkarimbd-web/scanner@main/stamp00.css' rel='stylesheet' type='text/css'/>
104<noscript>
105<link href='https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap' rel='stylesheet'/>
106</noscript>
107<script src='https://cdnjs.cloudflare.com/ajax/libs/jspdf/2.5.1/jspdf.umd.min.js'></script>
107
108<style id='page-skin-1' type='text/css'><!--
109/*
110******************************************************************
111*                                                                *
112*   ID CARD SCANNER PRO - ULTIMATE EDITION                       *
113*   ----------------------------------------------------------   *
114*   Theme Name      : ID Card Scanner Pro                        *
115*   Type            : Web Application / Tool                     *
116*   Release Date    : December 2025                              *
117*   Official Website: https://www.idcardscannerpro.com           *
118*                                                                *
119*   [ OWNER AND DEVELOPER INFO ]                                 *
120*   Designed By     : Admin of ID Card Scanner Pro               *
121*   Owner Name      : Md. Fyzal Karim                            *
122*   Contact Email   : [email protected]                     *
123*   Phone           : +880 1834 030544 - Call or WhatsApp        *
124*                                                                *
125*   [ TECHNOLOGY STACK ]                                         *
126*   > OpenCV Integration                                         *
127*   > Smart Crop Engine                                          *
128*   > Responsive Layout                                          *
129*                                                                *
130*   ----------------------------------------------------------   *
131*   Copyright: 2025 ID Card Scanner Pro. All rights reserved.    *
132*                                                                *
133*   NOTE: Proprietary code. This site is protected by DMCA.      *
134*   Unauthorized copying or redistribution of this website's     *
135*   code is strictly prohibited without permission.              *
136*                                                                *
137******************************************************************
138*/
139.logo,.nav-menu a.active,.nav-menu a:hover{color:var(--brand)}#id-scanner-wrapper,:root{--bg-card:#ffffff;--border:#e5e7eb}#info-section,body{font-family:'Inter','SolaimanLipi',sans-serif}.footer-links a,.logo,a{text-decoration:none}:root{--brand:#4f46e5;--brand-dark:#4338ca;--text-main:#111827;--text-sub:#4b5563;--bg-body:#f3f4f6}body{margin:0;padding:0;background-color:var(--bg-body);color:var(--text-main);display:flex;flex-direction:column;min-height:100vh}a{color:inherit;transition:.2s}*{box-sizing:border-box;outline:0}.site-header{background:var(--bg-card);box-shadow:0 1px 3px rgba(0,0,0,.05);position:sticky;top:0;z-index:1000;padding:16px 0}.header-container{max-width:1200px;margin:0 auto;padding:0 20px;display:flex;justify-content:space-between;align-items:center}.logo{font-size:32px;font-weight:800;display:flex;align-items:center;gap:10px}.logo img{height:50px;width:auto;display:block}.logo span{line-height:1;color:#4f46e5}@media (max-width:480px){.logo span{font-size:16px}.logo img{height:40px}}.nav-menu a{color:var(--text-sub);font-weight:500;font-size:15px;margin-left:20px}
140.main-wrapper{flex:1;width:100%;margin:-15px auto;padding:20px}.custom-ad-slot{width:100%;margin:0;padding:0;text-align:center;display:flex;justify-content:center;align-items:center;min-height:0;overflow:hidden}.custom-ad-slot .adsbygoogle,.custom-ad-slot iframe,.custom-ad-slot img{margin:20px 0}
141#fav-tools-section{display:none;grid-column:1 / -1}.fav-header{display:flex;align-items:center;gap:10px;font-size:14px;font-weight:800;color:#f59e0b;text-transform:uppercase;margin-bottom:15px;padding-left:5px}.fav-star-btn{position:absolute;top:8px;right:8px;z-index:100;color:#cbd5e1;font-size:16px;cursor:pointer;transition:0.3s ease;padding:5px}.fav-star-btn:hover{transform:scale(1.3)}.fav-star-btn.is-fav{color:#f59e0b!important}.fav-separator{grid-column:1 / -1;height:1px;background:#e2e8f0;margin:20px 0;display:none}
142.hero-info-wrapper{text-align:center;font-family:'Inter',sans-serif}.hero-container{margin:20px auto}.hero-badge{display:inline-flex;align-items:center;gap:8px;background:#fff;color:#4f46e5;padding:10px 20px;border-radius:50px;font-size:14px;font-weight:800;box-shadow:0 4px 15px rgb(0 0 0 / .05);border:1px solid #eef2ff}.pulse-icon{width:10px;height:10px;background:#10b981;border-radius:50%;position:relative}.pulse-icon::after{content:'';position:absolute;top:0;left:0;width:100%;height:100%;background:inherit;border-radius:inherit;animation:heroPulse 2s infinite}@keyframes heroPulse{0%{transform:scale(1);opacity:.8}100%{transform:scale(3.5);opacity:0}
142}
143.hero-title{font-size:54px;font-weight: 800 !important;line-height: 1.3 !important;color:#111827;letter-spacing:-1.5px}.text-gradient{background:linear-gradient(135deg,#4f46e5,#06b6d4);-webkit-background-clip:text;-webkit-text-fill-color:#fff0}.hero-subtitle{font-size:19px;color:#4b5563;line-height:1.7;max-width:1200px;margin:0 auto 40px}.hero-subtitle b{color:#1e293b;font-weight:700}.hero-features{display:flex;justify-content:center;gap:25px;flex-wrap:wrap;margin-bottom:35px}.h-feat-item{display:flex;align-items:center;gap:12px;font-size:15px;font-weight:700;color:#0062ff;padding:12px 20px;border-radius:14px;box-shadow:0 4px 6px rgb(0 0 0 / .02);border:1px solid #f1f5f9}.h-feat-item i{color:#4f46e5;font-size:18px}.hero-tool-hint{font-size:14px;color:#64748b;font-weight:500}.highlight{color:#4f46e5;font-weight:700;border-bottom:2px solid #eef2ff}@media (max-width:768px){.hero-title{font-size:34px;letter-spacing:-.5px}.hero-subtitle{font-size:15px}.hero-features{gap:10px}.h-feat-item{font-size:13px;padding:10px 15px;width:100%;justify-content:center}}
144.bhero-divider {
145display: block;
146height: 1px;
147margin: 15px 0;
148background: linear-gradient(90deg, transparent, #6366f1, #25D366, transparent);
149border: none;
150flex-shrink: 0;
151}
152/* Trust Stats Bar */
153.trust-stats-bar {
154background: #ffffff; padding: 30px 20px; display: flex; justify-content: space-around;
155align-items: center; flex-wrap: wrap; gap: 20px; border-top: 1px solid #e2e8f0; margin: 20px 0;
156}
157.stat-item { text-align: center; min-width: 120px; }
158.stat-number { display: block; font-size: 30px; font-weight: 900; color: #1e3a8a; }
159.stat-label { font-size: 14px; color: #64748b; font-weight: 600; }
160/* Sales Notification (Fixed) */
161.sales-notification {
162position: fixed;
163bottom: 110px;
164left: 20px;
165background: #ffffff;
166border-radius: 15px;
167padding: 15px;
168box-shadow: 0 10px 40px rgba(0,0,0,0.2);
169display: flex;
170align-items: center;
171gap: 15px;
172z-index: 10000;
173transform: translateX(-160%);
174transition: all 0.7s cubic-bezier(0.68, -0.55, 0.265, 1.55);
175border-left: 6px solid #059669;
176width: 360px;
177max-width: 90vw;
178box-sizing: border-box;
179}
180.sales-notification.active { transform: translateX(0); }
181.buyer-img { width: 55px; height: 55px; border-radius: 10px; object-fit: cover; flex-shrink: 0; }
182.buyer-details { flex: 1; overflow: hidden; }
183.buyer-name { font-size: 16px; font-weight: 800; color: #0f172a; display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
184.buyer-action { font-size: 14px; color: #2200d1; font-weight: 600; display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
185.time-ago { font-size: 14px; color: #008311; font-weight: 600; display: block; margin-top: 5px; }
186@media (max-width: 600px) {
187.sales-notification { left: 10px; bottom: 120px; width: 300px; }
188}
189/* Premium Store Wrapper Styles */
190.premium-store-wrapper {
191font-family: 'SolaimanLipi', 'Inter', sans-serif !important;
192box-sizing: border-box;
193margin: 0 auto;
194border-radius: 20px;
195overflow: hidden;
196box-shadow: 0 10px 30px rgba(0,0,0,0.05);
197}
198/* Premium Header Section */
199.store-hero-header {
200background: linear-gradient(135deg, #0f172a, #1e3a8a, #3b82f6);
201padding: 35px 20px;
202text-align: center;
203position: relative;
204overflow: hidden;
205}
206.store-hero-header::before {
207content: '';
208position: absolute;
209top: -50%; left: -50%; width: 200%; height: 200%;
210background: radial-gradient(circle, rgba(255,255,255,0.1) 10%, transparent 20%);
211background-size: 20px 20px;
212opacity: 0.3;
213animation: moveBackground 20s linear infinite;
214}
215@keyframes moveBackground {
2160% { transform: translate(0, 0); }
217100% { transform: translate(20px, 20px); }
218}
219.store-badge {
220background: linear-gradient(90deg, #f59e0b, #fbbf24);
221color: #78350f;
222padding: 6px 20px;
223border-radius: 50px;
224font-size: 14px;
225font-weight: 800;
226display: inline-block;
227margin-bottom: 20px;
228position: relative;
229z-index: 2;
230box-shadow: 0 4px 15px rgba(245, 158, 11, 0.4);
231}
232.store-hero-header h1 {
233font-size: clamp(24px, 5vw, 90px);
234color: #ffffff;
235font-weight: 900;
236margin: 0 0 15px 0;
237position: relative;
238z-index: 2;
239line-height: 1.3;
240}
241.store-hero-header p {
242color: #cbd5e1;
243font-size: 17px;
244margin: 0 auto;
245max-width: 770px;
246position: relative;
247z-index: 2;
248line-height: 1.6;
249}
250/* Grid Layout Container */
251.store-product-container {
252padding: 25px 15px;
253}
254/* Responsive Grid System */
255.product-grid {
256display: grid;
257grid-template-columns: 1fr;
258gap: 20px;
259}
260@media (min-width: 600px) {
261.product-grid {
262grid-template-columns: repeat(2, 1fr);
263}
264}
265@media (min-width: 900px) {
266.product-grid {
267grid-template-columns: repeat(3, 1fr);
268}
269}
270@media (min-width: 1200px) {
271.product-grid {
272grid-template-columns: repeat(4, 1fr);
273gap: 25px;
274}
275}
276/* Product Card Styling */
277.product-grid > div, .product-card {
278background: #ffffff;
279border-radius: 16px;
280overflow: hidden;
281box-shadow: 0 4px 10px rgba(0, 0, 0, 0.04);
282border: 1px solid #e2e8f0;
283transition: all 0.3s ease;
284display: flex;
285flex-direction: column;
286height: 100%;
287position: relative;
288}
289.product-grid > div:hover, .product-card:hover {
290transform: translateY(-6px);
291box-shadow: 0 15px 30px rgba(0, 0, 0, 0.1);
292border-color: #cbd5e1;
293}
294/* Product Image */
295.product-img-wrap {
296position: relative;
297width: 100%;
298padding-top: 100%; /* Perfect 1:1 Square */
299overflow: hidden;
300background: #f8fafc;
301}
302.product-img-wrap img {
303position: absolute;
304top: 0; left: 0;
305width: 100%; height: 100%;
306object-fit: cover;
307transition: transform 0.5s ease;
308}
309.product-grid > div:hover .product-img-wrap img, .product-card:hover .product-img-wrap img {
310transform: scale(1.02);
311}
312/* Product Info */
313.product-info {
314padding: 15px;
315display: flex;
316flex-direction: column;
317flex-grow: 1;
318}
319.product-title {
320font-size: 17px;
321color: #0f172a;
322font-weight: 700;
323line-height: 1.5;
324margin: 0 0 12px 0;
325display: -webkit-box;
326-webkit-line-clamp: 2;
327-webkit-box-orient: vertical;
328overflow: hidden;
329text-overflow: ellipsis;
330min-height: 51px;
331}
332/* Pricing */
333.price-wrap {
334margin-top: auto;
335display: flex;
336align-items: center;
337gap: 10px;
338margin-bottom: 15px;
339}
340.current-price {
341font-size: 19px;
342color: #059669;
343font-weight: 900;
344}
345.original-price {
346font-size: 14px;
347color: #94a3b8;
348text-decoration: line-through;
349font-weight: 600;
350}
351/* Order Button */
352.btn-order {
353font-family: 'SolaimanLipi', sans-serif !important;
354background: linear-gradient(135deg, #2563eb, #1d4ed8);
355color: #ffffff !important;
356text-align: center;
357padding: 12px 15px;
358border-radius: 10px;
359font-size: 16px;
360font-weight: 700;
361border: none;
362cursor: pointer;
363transition: all 0.3s;
364width: 100%;
365display: flex;
366align-items: center;
367justify-content: center;
368gap: 8px;
369box-shadow: 0 4px 12px rgba(37, 99, 235, 0.2);
370text-decoration: none;
371}
372.btn-order:hover {
373background: linear-gradient(135deg, #1d4ed8, #1e3a8a);
374box-shadow: 0 6px 15px rgba(37, 99, 235, 0.4);
375transform: translateY(-2px);
376}
377/* Trust Stats Bar Styling */
378.trust-stats-bar {
379background: #ffffff;
380padding: 30px 20px;
381display: flex;
382justify-content: space-around;
383align-items: center;
384flex-wrap: wrap;
385gap: 20px;
386border-top: 1px solid #e2e8f0;
387margin: 20px 0;
388border-radius: 16px;
389}
390.stat-item {
391text-align: center;
392min-width: 120px;
393}
394.stat-number {
395display: block;
396font-size: 30px;
397font-weight: 900;
398color: #1e3a8a;
399margin-bottom: 5px;
400}
401.stat-label {
402font-size: 14px;
403color: #64748b;
404font-weight: 600;
405}
406/* ======== Footer Trust Boxes CSS ======== */
407.store-footer {
408background: linear-gradient(135deg, #0f172a, #1e293b);
409color: #cbd5e1;
410padding: 50px 20px 30px 20px;
411margin-top: 20px;
412border-top: 4px solid #3b82f6;
413border-radius: 0 0 20px 20px;
414font-family: 'SolaimanLipi', sans-serif;
415}
416.footer-grid {
417display: grid;
418grid-template-columns: 1fr;
419gap: 30px;
420margin: 0 auto;
421text-align: center;
422}
423@media (min-width: 768px) {
424.footer-grid {
425grid-template-columns: repeat(3, 1fr);
426text-align: left;
427gap: 40px;
428}
429}
430.footer-box {
431background: rgba(255, 255, 255, 0.03);
432padding: 25px;
433border-radius: 16px;
434border: 1px solid rgba(255, 255, 255, 0.05);
435transition: all 0.3s ease;
436}
437.footer-box:hover {
438background: rgba(255, 255, 255, 0.06);
439transform: translateY(-5px);
440}
441.footer-icon {
442width: 50px;
443height: 50px;
444background: #1e3a8a;
445color: #60a5fa;
446display: flex;
447align-items: center;
448justify-content: center;
449font-size: 24px;
450border-radius: 12px;
451margin: 0 auto 20px auto;
452}
453@media (min-width: 768px) {
454.footer-icon { margin: 0 0 20px 0; }
455}
456.footer-box h3 {
457color: #ffffff;
458font-size: 18px;
459font-weight: 700;
460margin: 0 0 12px 0;
461}
462.footer-box p {
463font-size: 14.5px;
464line-height: 1.6;
465margin: 0;
466color: #cbd5e1;
467}
468/* Mobile Optimizations */
469@media (max-width: 600px) {
470.store-hero-header { padding: 25px 10px; }
471.store-hero-header h1 { font-size: 18px; }
472.store-hero-header p { font-size: 14px; }
473.store-product-container { padding: 15px 5px; }
474.product-title { font-size: 15px; min-height: auto; margin-bottom: 10px; }
475.current-price { font-size: 17px; }
476.original-price { font-size: 13px; }
477.btn-order { padding: 10px; font-size: 15px; border-radius: 8px; }
478.trust-stats-bar { padding: 20px 10px; gap: 15px; }
479.stat-number { font-size: 24px; }
480.stat-label { font-size: 12px; }
481.store-footer { padding: 35px 15px 25px 15px; }
482.footer-box { padding: 20px; }
483.footer-box h3 { font-size: 17px; }
484.footer-box p { font-size: 13.5px; }
485}
486/* Demo Buttons Style */
487.vl-demo-container {
488display: flex;
489flex-wrap: wrap;
490gap: 15px;
491justify-content: center;
492margin: 20px 0 10px 0;
493width: 100%;
494}
495.vl-demo-btn {
496flex: 1;
497min-width: 240px;
498max-width: 300px;
499padding: 12px 20px;
500border-radius: 50px;
501font-size: 15px;
502font-weight: 800;
503text-decoration: none;
504display: inline-flex;
505align-items: center;
506justify-content: center;
507gap: 8px;
508transition: 0.3s;
509box-shadow: 0 4px 15px rgba(0, 0, 0, 0.05);
510}
511/* View Button - Blue Outline */
512.vl-demo-btn.btn-view {
513background: #ffffff;
514color: #1e3a8a !important;
515border: 2px solid #1e3a8a;
516}
517.vl-demo-btn.btn-view:hover {
518background: #1e3a8a;
519color: #ffffff !important;
520transform: translateY(-2px);
521box-shadow: 0 8px 20px rgba(30, 58, 138, 0.2);
522}
523/* Download Button - Gold Outline */
524.vl-demo-btn.btn-download {
525background: #ffffff;
526color: #d97706 !important;
527border: 2px solid #d97706;
528}
529.vl-demo-btn.btn-download:hover {
530background: #d97706;
531color: #ffffff !important;
532transform: translateY(-2px);
533box-shadow: 0 8px 20px rgba(217, 119, 6, 0.2);
534}
535@media (max-width: 768px) {
536.vl-demo-container .vl-demo-btn {
537width: 100%;
538max-width: 100%;
539}
540}
541
542--></style>
543<link href='https://www.blogger.com/dyncss/8079864016398607630/authorization.css?zx=bbdcc944-a1dc-4d37-985f-4398914f9d57' media='none' onload='if(media!=&#39;all&#39;)media=&#39;all&#39;' rel='stylesheet'/><noscript><link href='https://www.blogger.com/dyncss/8079864016398607630/authorization.css?zx=bbdcc944-a1dc-4d37-985f-4398914f9d57' rel='stylesheet'/></noscript>
544<meta name='google-adsense-platform-account' content='ca-host-pub-1556223355139109'/>
545<meta name='google-adsense-platform-domain' content='blogspot.com'/>
546
547</head>
548<body>
549<!-- Background Particles Container -->
550<div id='particles-container'></div>
551<!-- HEADER -->
552<header class='site-header'>
553<div class='header-container'>
554<a class='logo' href='/'>
555<!-- Logo Image (Optimized for Speed) -->
556<img alt='ID Card Scanner Pro' height='60' loading='eager' src='https://i.imgur.com/eq1AlwA.png' style='height: 50px; width: auto;' title='ID Card Scanner Pro' width='300'/>
557<!-- Text -->
558<span>ID Card Scanner Pro</span>
559</a>
560<nav class='nav-menu'>
561<a href='/p/e-commerce-store.html'>Digital Product</a>
562<a href='/p/contact.html'>Contact</a>
563</nav>
564</div>
565</header>
566<!-- Social Bar with BN/EN Ticker (Mobile Desktop-Style Fixed) -->
567<div class='social-bar-wrapper'>
568<div class='social-bar-container'>
569<!-- Ticker Section -->
570<div class='ticker-box'>
571<div class='ticker-text line-bn'>
572<i class='fa-solid fa-bell'></i> আম&#2494;দ&#2503;র এই ওয&#2492;&#2503;বস&#2494;ইট&#2503;র য&#2503; ক&#2507;ন&#2507; নত&#2497;ন আপড&#2503;ট প&#2503;ত&#2503; আম&#2494;দ&#2503;র চ&#2509;য&#2494;ন&#2503;ল&#2503; গ&#2497;ল&#2507;ত&#2503; জয&#2492;&#2503;ন কর&#2497;ন&#2404; 👉
573      </div>
574<div class='ticker-text line-en'>
575<i class='fa-solid fa-bell'></i> আম&#2494;দ&#2503;র এই চ&#2509;য&#2494;ন&#2503;লগ&#2497;ল&#2507;ত&#2503; জয&#2492;&#2503;ন থ&#2494;কল&#2503; আপন&#2495; য&#2494; অর&#2509;ড&#2494;র করছ&#2503;ন সকল প&#2509;রড&#2494;ক&#2509;ট এর আপড&#2503;ট জ&#2494;নত&#2503; প&#2494;ব&#2503;ন&#2404; 👉
576      </div>
577</div>
578<!-- Social Links Section -->
579<div class='social-links'>
580<!-- WhatsApp -->
581<a class='social-link-item sl-wa' href='https://whatsapp.com/channel/0029VbDRAJm9xVJYWzQNFY1G' target='_blank'>
582<i class='fa-brands fa-whatsapp'></i>
583<span>WhatsApp</span>
584</a>
585<!-- Facebook -->
586<a class='social-link-item sl-fb' href='https://www.facebook.com/idcardscannerpro' target='_blank'>
587<i class='fa-brands fa-facebook-f'></i>
588<span>Facebook</span>
589</a>
590<!-- YouTube -->
591<a class='social-link-item sl-yt' href='https://www.youtube.com/@idcardscannerpro' target='_blank'>
592<i class='fa-brands fa-youtube'></i>
593<span>YouTube</span>
594</a>
595<!-- Telegram -->
596<a class='social-link-item sl-tg' href='https://t.me/idcardscannerpro' target='_blank'>
597<i class='fa-brands fa-telegram'></i>
598<span>Telegram</span>
599</a>
600</div>
601</div>
602</div>
603<!-- Social Bar End -->
604<style>
605 /* Professional Social Bar with Auto-Changing Text */
606.social-bar-wrapper {
607    border-bottom: 1px solid #e2e8f0;
608    padding: 10px 0;
609    overflow: hidden;
610}
611.social-bar-container {
612    max-width: 1200px;
613    margin: 0 auto;
614    padding: 0 20px;
615    display: flex;
616    justify-content: space-between;
617    align-items: center;
618}
619
620/* Left Side: Text Ticker Animation */
621.ticker-box {
622    flex: 1;
623    display: flex;
624    align-items: center;
625    height: 24px;
626    position: relative;
627    overflow: hidden;
628}
629.ticker-text {
630    position: absolute;
631    font-size: 14px;
632    font-weight: 700;
633    color: #4f46e5;
634    white-space: nowrap;
635    opacity: 0;
636    transform: translateY(20px);
637    animation: tickerRotate 8s infinite;
638    font-family: 'SolaimanLipi', sans-serif;
639}
640.line-bn { animation-delay: 0s; }
641.line-en { animation-delay: 4s; }
642
643@keyframes tickerRotate {
644    0% { opacity: 0; transform: translateY(20px); }
645    5% { opacity: 1; transform: translateY(0); }
646    45% { opacity: 1; transform: translateY(0); }
647    50% { opacity: 0; transform: translateY(-20px); }
648    100% { opacity: 0; }
649}
650
651/* Right Side: Social Icons */
652.social-links {
653    display: flex;
654    gap: 10px;
655}
656.social-link-item {
657    display: flex;
658    align-items: center;
659    gap: 6px;
660    text-decoration: none;
661    font-size: 13px;
662    font-weight: 800;
663    padding: 6px 14px;
664    border-radius: 50px;
665    transition: all 0.3s ease;
666}
667
668.sl-wa { color: #25D366; background: #e8fdf0; border: 1px solid #25D366; }
669.sl-fb { color: #1877F2; background: #f0f7ff; border: 1px solid #1877F2; }
670.sl-yt { color: #FF0000; background: #fff1f1; border: 1px solid #FF0000; }
671.sl-tg { color: #0088cc; background: #e6f6ff; border: 1px solid #0088cc; }
672
673.social-link-item:hover { transform: translateY(-2px); box-shadow: 0 4px 10px rgba(0,0,0,0.1); }
674
675/* --- Mobile Version Responsive CSS Fixes --- */
676@media (max-width: 768px) {
677    .ticker-box { display: none; } /* ম&#2507;ব&#2494;ইল&#2503; ব&#2494;ম&#2503;র স&#2509;ল&#2494;ইড&#2495;&#2434; ট&#2503;ক&#2509;সট বন&#2509;ধ থ&#2494;কব&#2503; */
678    .social-bar-container { justify-content: center; padding: 0 5px; } /* দ&#2497;ই প&#2494;শ&#2503; ম&#2494;র&#2509;জ&#2495;ন কম&#2494;ন&#2507; হয়&#2503;ছ&#2503; */
679    
680    .social-links {
681        gap: 5px; /* ব&#2494;টনগ&#2497;ল&#2507;র ম&#2494;ঝ&#2503;র দ&#2498;রত&#2509;ব কম&#2494;ন&#2507; হয়&#2503;ছ&#2503; */
682        width: 100%;
683        justify-content: center;
684    }
685    
686    .social-link-item {
687        padding: 5px 8px; /* ব&#2494;টনগ&#2497;ল&#2507; ড&#2503;ক&#2509;সটপ&#2503;র মত&#2507;ই দ&#2503;খত&#2503; থ&#2494;কব&#2503; ক&#2495;ন&#2509;ত&#2497; আক&#2494;র&#2503; ছ&#2507;ট দ&#2503;খ&#2494;ব&#2503; */
688        font-size: 10.5px; /* ল&#2503;খ&#2494;র স&#2494;ইজ ছ&#2507;ট কর&#2494; হয়&#2503;ছ&#2503; য&#2503;ন এক ল&#2494;ইন&#2503; ধর&#2503; য&#2494;য় */
689        gap: 4px;
689 /* আইকন এব&#2434; ল&#2503;খ&#2494;র মধ&#2509;যক&#2494;র দ&#2498;রত&#2509;ব কম&#2494;ন&#2507; হয়&#2503;ছ&#2503; */
690        border-radius: 20px; /* ছ&#2507;ট ব&#2494;টন&#2503;র স&#2494;থ&#2503; স&#2494;মঞ&#2509;জস&#2509;যপ&#2498;র&#2509;ণ র&#2494;উন&#2509;ড বর&#2509;ড&#2494;র */
691    }
692}
693</style>
694<style>
695  /* ULTIMATE HERO HEADER */
696.bhero-subtitle {
697  font-family: 'SolaimanLipi', Arial, sans-serif !important;
698  line-height: 3;
699}
700
701.bhero-title {
702  font-family: 'SolaimanLipi' !important;
703  font-size: clamp(24px, 5vw, 60px);
704  line-height: 1.6;
705}
706@media (max-width: 768px) {
707  .bhero-subtitle {
708    line-height: 1.6;
709  }
710@media (max-width: 600px) {
711  .bhero-title {
712    font-size: 40px !important;
713  }
714</style>
715<style>
716    @import url('//fonts.maateen.me/solaiman-lipi/font.css');
717    #bn-output,#bn-output::placeholder{font-family:'SolaimanLipi',sans-serif!important}
718
719    #aiPassportModal .cp-box { font-family: 'Inter', sans-serif; }
720
721    #aiPassportModal i.fa-solid,
722    #aiPassportModal .fa-robot,
723    #aiPassportModal .ai-option-card i,
724    #aiPassportModal .close-ai-demo i {
725        font-family: "Font Awesome 6 Free" !important;
726        font-weight: 900 !important;
727        display: inline-block !important;
728        font-style: normal !important;
729    }
730
731    #aiPassportModal.lang-bn #ai-title,
732    #aiPassportModal.lang-bn #ai-sub,
733    #aiPassportModal.lang-bn .ai-option-card strong,
734    #aiPassportModal.lang-bn .ai-option-card span,
735    #aiPassportModal.lang-bn .ai-demo-trigger,
736    #aiPassportModal.lang-bn #ins-head,
737    #aiPassportModal.lang-bn #ins-body,
738    #ai-tab-bn {
739        font-family: 'SolaimanLipi', sans-serif !important;
740    }
741   .wdm-modal-width { max-width: 950px !important; width: 95% !important; }
742  .wdm-container {
743      background: #fff; border-radius: 20px; padding: 20px;
744      font-family: 'SolaimanLipi', sans-serif !important;
745  }
746
747  /* Force Font for Input Preview */
748.ep-select, .ep-btn-action, .ep-main-box, .ep-input, .ep-poster-export, .mode-selector, .card-title, .st-input-group textarea, .st-input-group input, .cp-box, .related-title, .fc-blog-btn, .fc-blog-wrapper, .wdm-container input, .wdm-container textarea, .wdm-container select, #wdm-card-preview {
749      font-family: 'SolaimanLipi', Arial, sans-serif !important;
750  }
751    .sheet-header-box, .sheet-sub-header-box, .sheet-footer-box {
752      font-family: 'SolaimanLipi', Arial, sans-serif !important;
753      outline: none;
754      word-wrap: break-word;
755  }
756    .pro-table-sheet {
757      font-family: 'SolaimanLipi', Arial, sans-serif !important;
758  }
759  
760  .cal-today-btn, .cal-main-box {
761      font-family: "SolaimanLipi", sans-serif !important;
762  }
763  
764  .fc-main-box,.fc-input,.fc-select,.fc-a4-paper,.fc-btn-action {
765      font-family: "SolaimanLipi", sans-serif !important;
766  }
767
768  .ph-tab, .cat-btn, .prompt-card h4, .btn-copy-ph span, #ph-subtitle, .ph-search input {
769      font-family: 'SolaimanLipi', sans-serif !important;
770  }
771
772    .page-body {
773      font-family: 'SolaimanLipi', Arial, sans-serif !important;}
774
775        .stamp-page-unit {
776        background-image: url('https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghnPHQn8kAA2LcpuoPy0d9ujtIP_iGhAci7QeIBhRLrXQHO7eI8hY965RFs5v3NjFC0IaorLQuJKOiZ1IZUwWWccbwv1mQEjY78I_WwmJKoZJrpn-1jhqlAlYMDQpsx3s22CToDD3QUcti02ByupHj3OxWkOpnRW75OjWgt24pcj7ctUnYASJLx8a433o/s1600/stamp.webp');
777        .stamp-body {
778      font-family: 'SolaimanLipi', Arial, sans-serif !important;
779        }
780
781  .stamp-body:empty:before {
782      content: "Start your writing in Bengali or English...";
783</style>
784<style>
785  .ad-image-wrapper {
786    position: relative;
787    overflow: hidden;
788    border-radius: 8px;
789    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
790    margin-top: 15px;
791      margin-bottom: 10px;
792    border: 1px solid #e0e0e0;
793    transition: transform 0.3s ease-in-out; /* নত&#2497;ন: হ&#2507;ভ&#2494;র এফ&#2503;ক&#2509;ট&#2503;র জন&#2509;য ট&#2509;র&#2494;নজ&#2495;শন */
794  }
795  
796  .ad-image-wrapper:hover { /* নত&#2497;ন: হ&#2507;ভ&#2494;র স&#2509;ট&#2503;ট */
797    transform: scale(1.00); /* ছব&#2495;ক&#2503; 2% বড&#2492; করব&#2503; */
798  }
799
800  .ad-image-wrapper img {
801    display: block;
802    max-width: 100%;
803    height: auto;
804    border-radius: 8px;
805  }
806
807  /* Common styles for light sweep effect */
808  .ad-image-wrapper::before {
809    content: '';
810    position: absolute;
811    top: 0;
812    height: 100%;
813    background: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.3) 50%, rgba(255, 255, 255, 0) 100%);
814    transform: skewX(-20deg);
815  }
816
817  /* Light sweep for Image 0 */
818  .ad-image-wrapper.effect-0::before {
819    width: 20%;
820    animation: lightSweep1 2.5s infinite ease-in-out;
821  }
822      
823      
824      /* Light sweep for Image 1 */
825  .ad-image-wrapper.effect-1::before {
826    width: 20%;
827    animation: lightSweep1 3.5s infinite ease-in-out;
828  }
829
830  /* Light sweep for Image 2 */
831  .ad-image-wrapper.effect-2::before {
832    width: 20%;
833    animation: lightSweep2 4s infinite ease-in-out;
834  }
835   
836   /* Light sweep for Image 3 */
837  .ad-image-wrapper.effect-3::before {
838    width: 20%;
839    animation: lightSweep2 3s infinite ease-in-out;
840  }
841      
842  /* Light sweep for Image 4 */
843  .ad-image-wrapper.effect-4::before {
844    width: 20%;
845    animation: lightSweep2 2.5s infinite ease-in-out;
846  }
847
848  @keyframes lightSweep1 {
849    0% {
850      left: -100%;
851    }
852    60% {
853      left: 100%;
854    }
855    100% {
856      left: -100%;
857    }
858  }
859
860  @keyframes lightSweep2 {
861    0% {
862      left: -150%;
863    }
864    70% {
865      left: 150%;
866    }
867    100% {
868      left: -150%;
869    }
870  }
871</style>
872<!-- MAIN WRAPPER -->
873<div class='main-wrapper'>
874<!-- Header Ad-->
875<div class='ad-container no-items section' id='header-ads-section'>
876</div>
877<!-- ULTIMATE HERO HEADER START -->
878<!-- ULTIMATE HERO HEADER END -->
879<!-- TOOL SECTION (MODAL VERSION) -->
880<div class='section' id='tool-section'><div class='widget HTML' data-version='2' id='HTML1'>
881</div></div>
882<!-- Middle Ad -->
883<div class='ad-container no-items section' id='middle-ads-section'>
884</div>
885<!-- ARTICLE SECTION Start -->
886<div class='section' id='article-section'><div class='widget HTML' data-version='2' id='HTML2'>
887</div></div>
888<!-- ARTICLE SECTION End -->
889<!-- Bottom Ad -->
890<div class='ad-container no-items section' id='bottom-ads-section'>
891</div>
892<!-- BLOG POSTS -->
893<div class='section' id='blog-content'><div class='widget Blog' data-version='2' id='Blog1'>
894<article class='blog-post-single'>
895<div class='post-body'><!--ID Card Scanner Pro Contact Page START-->
896<style>
897  @import url('https://fonts.googleapis.com/css2?family=Hind+Siliguri:wght@300;400;500;600;700&amp;display=swap');
898
899  :root {
900    --primary: #6366f1;
901    --accent: #25D366;
902    --dark: #0f172a;
903    --text-main: #1e293b;
904    --text-muted: #64748b;
905    --bg-light: #f8fafc;
906  }
907
908  .contact-section-container {
909    font-family: 'SolaimanLipi', 'Plus Jakarta Sans', sans-serif !important;
910    margin: 40px auto;
911    padding: 0 20px;
912  }
913
914  .ui-wrapper {
915    display: grid;
916    grid-template-columns: 1fr 1.2fr;
917    gap: 40px;
918    align-items: center;
919  }
920
921  /* Image Section */
922  .ui-visual-side {
923    position: relative;
924    display: flex;
925    flex-direction: column;
926    justify-content: center;
927    align-items: center;
928    width: 100%;
929  }
930
931  .ui-image-box {
932    position: relative;
933    z-index: 2;
934    width: 100%;
935    max-width: 450px;
936    -webkit-mask-image: linear-gradient(to bottom, black 85%, transparent 100%);
937    mask-image: linear-gradient(to bottom, black 85%, transparent 100%);
938  }
939
940  .ui-portfolio-img {
941    width: 100%;
942    height: auto;
943    display: block;
944    object-fit: cover;
945  }
946
947  /* Developer Label Style */
948  .ui-dev-label {
949    font-size: clamp(12px, 2vw, 18px);
950    font-weight: 800;
951    color: var(--dark);
952    letter-spacing: 1.5px;
953    background: linear-gradient(135deg, var(--dark), var(--primary));
954    -webkit-background-clip: text;
955    -webkit-text-fill-color: transparent;
956    text-align: center;
957  }
958
959  .ui-dev-label::after {
960    content: '';
961    display: block;
962    width: 250px;
963    height: 1px;
964    background: var(--primary);
965    margin: 8px auto 0;
966    border-radius: 10px;
967  }
968
969  /* Content Side */
970  .ui-badge {
971    background: rgba(99, 102, 241, 0.1);
972    color: var(--primary);
973    padding: 6px 14px;
974    border-radius: 50px;
975    font-size: 12px;
976    font-weight: 700;
977    text-transform: uppercase;
978    display: inline-block;
979    margin-bottom: 20px;
980  }
981
982  .ui-main-title {
983    font-size: clamp(32px, 5vw, 56px);
984    font-weight: 800;
985    line-height: 1.1;
986    color: var(--dark);
987    margin-bottom: 20px;
988  }
989
990  .ui-desc {
991    font-size: clamp(16px, 1.5vw, 19px);
992    color: var(--text-muted);
993    line-height: 1.6;
994    margin-bottom: 35px;
995  }
996
997  .ui-contact-list {
998    display: flex;
999    flex-wrap: wrap;
1000    gap: 30px;
1001    margin-bottom: 40px;
1002  }
1003
1004  .ui-item h4 {
1005    font-size: 11px;
1006    color: var(--text-muted);
1007    text-transform: uppercase;
1008    margin-bottom: 8px;
1009  }
1010
1011  .ui-item p {
1012    font-size: 16px;
1013    font-weight: 600;
1014    color: var(--dark);
1015  }
1016
1017  /* Form UI */
1018  .ui-form {
1019    background: #24ff552b;
1020    padding: clamp(20px, 4vw, 40px);
1021    border-radius: 24px;
1022    box-shadow: 0 20px 50px rgba(0,0,0,0.03);
1023    border: 1px solid rgba(0,0,0,0.05);
1024  }
1025
1026  .ui-input-group {
1027    display: grid;
1028    grid-template-columns: repeat(2, 1fr);
1029    gap: 20px;
1030  }
1031
1032  .ui-field { display: flex; flex-direction: column; gap: 8px; margin-bottom: 20px; }
1033  .ui-field.ui-full { grid-column: span 2; }
1034
1035  .ui-field label { font-size: 13px; font-weight: 600; color: var(--text-main); }
1036
1037  .ui-field input, .ui-field textarea {
1038    padding: 12px 16px;
1039    background: #f1f5f9;
1040    border: 2px solid transparent;
1041    border-radius: 12px;
1042    font-size: 15px;
1043    font-family: inherit;
1044    transition: 0.3s;
1045    outline: none;
1046    width: 100%;
1047    resize: vertical;
1048    max-width: 100%;
1049  }
1050
1051  .ui-field input:focus, .ui-field textarea:focus {
1052    background: #fff;
1053    border-color: var(--primary);
1054    box-shadow: 0 5px 15px rgba(99, 102, 241, 0.1);
1055  }
1056
1057  .ui-submit-btn {
1058    width: 100%;
1059    padding: 16px;
1060    background: var(--dark);
1061    color: #fff;
1062    border: none;
1063    border-radius: 14px;
1064    font-size: 16px;
1065    font-weight: 700;
1066    cursor: pointer;
1067    display: flex;
1068    align-items: center;
1069    justify-content: center;
1070    gap: 10px;
1071    transition: 0.3s;
1072    font-family: 'SolaimanLipi', sans-serif !important;
1073  }
1074
1075  .ui-submit-btn:hover {
1076    background: var(--accent);
1077    transform: translateY(-2px);
1078    box-shadow: 0 10px 20px rgba(37, 211, 102, 0.2);
1079  }
1080
1081  /* Custom Validation Modal Style */
1082  .val-overlay {
1083    position: fixed;
1084    top: 0; left: 0; right: 0; bottom: 0;
1085    background: rgba(15, 23, 42, 0.65);
1086    backdrop-filter: blur(8px);
1087    -webkit-backdrop-filter: blur(8px);
1088    z-index: 100000;
1089    display: flex;
1090    align-items: center;
1091    justify-content: center;
1092    opacity: 0;
1093    visibility: hidden;
1094    transition: all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);
1095  }
1096  .val-overlay.val-active {
1097    opacity: 1;
1098    visibility: visible;
1099  }
1100  .val-card {
1101    background: #ffffff;
1102    width: 90%;
1103    max-width: 400px;
1104    border-radius: 24px;
1105    padding: 35px 25px;
1106    text-align: center;
1107    position: relative;
1108    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
1109    transform: scale(0.85) translateY(30px);
1110    transition: all 0.5s cubic-bezier(0.34, 1.56, 0.64, 1);
1111    font-family: 'SolaimanLipi', 'Plus Jakarta Sans', sans-serif !important;
1112    border-top: 6px solid #f59e0b; /* Amber warning stripe */
1113    box-sizing: border-box;
1114  }
1115  .val-overlay.val-active .val-card {
1116    transform: scale(1) translateY(0);
1117  }
1118  .val-close-btn {
1119    position: absolute;
1120    top: 15px; right: 15px;
1121    background: #f1f5f9;
1122    border: none;
1123    width: 32px; height: 32px;
1124    border-radius: 50%;
1125    font-size: 16px;
1126    cursor: pointer;
1127    color: #64748b;
1128    display: flex;
1129    align-items: center;
1130    justify-content: center;
1131    transition: 0.3s;
1132  }
1133  .val-close-btn:hover {
1134    background: #fee2e2;
1135    color: #ef4444;
1136    transform: rotate(90deg);
1137  }
1138  .val-icon-box {
1139    width: 70px;
1140    height: 70px;
1141    background: rgba(245, 158, 11, 0.1);
1142    color: #f59e0b;
1143    border-radius: 50%;
1144    display: flex;
1145    align-items: center;
1146    justify-content: center;
1147    font-size: 32px;
1148    margin: 0 auto 20px auto;
1149    box-shadow: 0 8px 16px rgba(245, 158, 11, 0.15);
1150  }
1151  .val-title {
1152    font-size: 20px;
1153    font-weight: 800;
1154    color: var(--dark);
1155    margin: 0 0 10px 0;
1156  }
1157  .val-text {
1158    font-size: 14.5px;
1159    color: var(--text-muted);
1160    line-height: 1.6;
1161    margin: 0 0 25px 0;
1162  }
1163  .val-action-btn {
1164    width: 100%;
1165    background: var(--dark);
1166    color: #fff;
1167    border: none;
1168    padding: 14px;
1169    border-radius: 12px;
1170    font-size: 15px;
1171    font-weight: 700;
1172    cursor: pointer;
1173    transition: 0.3s;
1174    font-family: 'SolaimanLipi', sans-serif !important;
1175  }
1176  .val-action-btn:hover {
1177    background: var(--primary);
1178    transform: translateY(-2px);
1179    box-shadow: 0 8px 15px rgba(99, 102, 241, 0.25);
1180  }
1181
1182  /* --- New Direct WhatsApp Button Style for Developer --- */
1183  .ui-dev-wa-btn {
1184    margin-top: 15px;
1185    display: inline-flex;
1186    align-items: center;
1187    justify-content: center;
1188    gap: 8px;
1189    background-color: var(--accent);
1190    color: #ffffff !important;
1191    padding: 10px 22px;
1192    border-radius: 50px;
1193    font-weight: 700;
1194    font-size: 14px;
1195    text-decoration: none !important;
1196    box-shadow: 0 4px 15px rgba(37, 211, 102, 0.2);
1197    transition: 0.3s;
1198    border: none;
1199    cursor: pointer;
1200  }
1201  .ui-dev-wa-btn:hover {
1202    background-color: #1eb155;
1203    transform: translateY(-2px);
1204    box-shadow: 0 6px 20px rgba(37, 211, 102, 0.3);
1205  }
1206
1207  /* Responsive Queries */
1208  @media (max-width: 850px) {
1209    .ui-wrapper { grid-template-columns: 1fr; text-align: center; }
1210    .ui-visual-side { order: 2; margin-top: 30px; }
1211    .ui-content-side { order: 1; }
1212    .ui-contact-list { justify-content: center; }
1213    .ui-image-box { margin: 0 auto; }
1214  }
1215
1216  @media (max-width: 550px) {
1217    .ui-input-group { grid-template-columns: 1fr; }
1218    .ui-field.ui-full { grid-column: span 1; }
1219    .ui-dev-wa-btn { width: 80%; }
1220  }
1221</style>
1222
1223<div class="contact-section-container">
1224  <div class="ui-wrapper">
1225    <!--Left: Image & Developer Label & New Direct WhatsApp Button-->
1226    <div class="ui-visual-side">
1227      <div class="ui-image-box">
1228        <img alt="Md Fyzal Karim" class="ui-portfolio-img" loading="lazy" src="https://image.zinipay.com/u/o4GlSf.webp" />
1229      </div>
1230      <div class="ui-dev-label">ড&#2503;ভ&#2503;লপ&#2494;র - ম&#2507;&#2435; ফয়জ&#2497;ল কর&#2495;ম</div>
1231      
1232      <!--New Direct WhatsApp Chat Button (XHTML Compliant)-->
1233      <a class="ui-dev-wa-btn" href="https://api.whatsapp.com/se
1233nd?phone=8801834030544&amp;text=হ&#2509;য&#2494;ল&#2507;.. আম&#2495; আপন&#2494;দ&#2503;র ওয&#2492;&#2503;বস&#2494;ইট&#2503;র ব&#2495;ষয&#2492;&#2503; ক&#2495;ছ&#2497; গ&#2497;র&#2497;ত&#2509;বপ&#2498;র&#2509;ণ আল&#2507;চন&#2494; করত&#2503; চ&#2494;ই!" target="_blank">
1234        <i class="fa-brands fa-whatsapp"></i> সর&#2494;সর&#2495; ম&#2503;স&#2503;জ কর&#2497;ন!
1235      </a>
1236    </div>
1237
1238    <!--Right: Support & Contact Content-->
1239    <div class="ui-content-side">
1240      <span class="ui-badge">স&#2494;প&#2507;র&#2509;ট ও ইনক&#2507;য&#2492;&#2494;র&#2495;</span>
1241      <h1 class="ui-main-title">প&#2509;রফ&#2503;শন&#2494;ল <span style="color: #19a900;">স&#2494;প&#2507;র&#2509;ট</span> ন&#2495;ন&#2404;</h1>
1242      <p class="ui-desc">
1243        আপন&#2494;র য&#2503;ক&#2507;ন&#2507; তথ&#2509;য ব&#2495;শদভ&#2494;ব&#2503; জ&#2494;নত&#2503; ব&#2494; য&#2503;ক&#2507;ন&#2507; ট&#2503;কন&#2495;ক&#2509;য&#2494;ল সহ&#2494;য়ত&#2494;র জন&#2509;য সর&#2494;সর&#2495; আম&#2494;দ&#2503;র স&#2494;প&#2507;র&#2509;ট ট&#2495;ম&#2503;র স&#2494;থ&#2503; য&#2507;গ&#2494;য&#2507;গ কর&#2497;ন&#2404; আম&#2494;দ&#2503;র ট&#2495;ম ২৪/৭ আপন&#2494;ক&#2503; স&#2494;হ&#2494;য&#2509;য করত&#2503; প&#2509;রস&#2509;ত&#2497;ত&#2404; 
1244      </p>
1245
1246      <div class="ui-contact-list">
1247        <div class="ui-item">
1248          <h4>ফ&#2507;ন ন&#2494;ম&#2509;ব&#2494;র:</h4>
1249          <p><a href="tel:+8809696130544">+8809696130544</a></p>
1250        </div>
1251        <div class="ui-item">
1252          <h4>ইম&#2503;ইল এড&#2509;র&#2503;স:</h4>
1253          <p><a href="mailto:[email protected]">[email protected]</a></p>
1254        </div>
1255      </div>
1256
1257      <!--Modern Form-->
1258      <div class="ui-form">
1259        <div class="ui-input-group">
1260          <div class="ui-field">
1261            <label>সম&#2509;প&#2498;র&#2509;ণ ন&#2494;ম</label>
1262            <input id="ui-name" type="text" />
1263          </div>
1264          <div class="ui-field">
1265            <label>ইম&#2503;ইল এড&#2509;র&#2503;স</label>
1266            <input id="ui-email" type="email" />
1267          </div>
1268          <div class="ui-field ui-full">
1269            <label>ব&#2495;ষয়</label>
1270            <input id="ui-subject" placeholder="স&#2494;প&#2507;র&#2509;ট" type="text" />
1271          </div>
1272          <div class="ui-field ui-full">
1273            <label>ম&#2503;স&#2503;জ</label>
1274            <textarea id="ui-message" placeholder="আপন&#2494;ক&#2503; ক&#2496;ভ&#2494;ব&#2503; স&#2494;হ&#2494;য&#2509;য করত&#2503; প&#2494;র&#2495;?" rows="3"></textarea>
1275          </div>
1276        </div>
1277
1278        <button class="ui-submit-btn" onclick="sendToWhatsApp()">
1279          <i class="fa-brands fa-whatsapp"></i>
1280          <span>হ&#2507;য়&#2494;টসঅ&#2509;য&#2494;প&#2503; প&#2494;ঠ&#2494;ন</span>
1281        </button>
1282      </div>
1283    </div>
1284  </div>
1285</div>
1286
1287<!--Custom Validation Modal-->
1288<div class="val-overlay" id="valOverlay">
1289  <div class="val-card">
1290    <button class="val-close-btn" onclick="closeValModal()"><i class="fa-solid fa-xmark"></i></button>
1291    <div class="val-icon-box">
1292      <i class="fa-solid fa-triangle-exclamation"></i>
1293    </div>
1294    <h3 class="val-title">প&#2509;রয়&#2507;জন&#2496;য় তথ&#2509;য খ&#2494;ল&#2495; রয়&#2503;ছ&#2503;!</h3>
1295    <p class="val-text">দয়&#2494; কর&#2503; ম&#2503;স&#2503;জ প&#2494;ঠ&#2494;ন&#2507;র আগ&#2503; প&#2509;রয়&#2507;জন&#2496;য় সব তথ&#2509;য (ন&#2494;ম, ইম&#2503;ইল এব&#2434; ম&#2503;স&#2503;জ) প&#2498;রণ কর&#2497;ন&#2404;</p>
1296    <button class="val-action-btn" onclick="closeValModal()">ঠ&#2495;ক আছ&#2503;</button>
1297  </div>
1298</div>
1299
1300<script>
1301  // Modal controllers (XHTML Compliant)
1302  function openValModal() {
1303    document.getElementById("valOverlay").classList.add("val-active");
1304  }
1305  function closeValModal() {
1306    document.getElementById("valOverlay").classList.remove("val-active");
1307  }
1308
1309  function sendToWhatsApp() {
1310      const name = document.getElementById("ui-name").value.trim();
1311      const email = document.getElementById("ui-email").value.trim();
1312      const subject = document.getElementById("ui-subject").value.trim();
1313      const message = document.getElementById("ui-message").value.trim();
1314
1315      // Custom popup warning modal instead of standard browser alert
1316      if (!name || !email || !message) {
1317          openValModal();
1318          return;
1319      }
1320
1321      const myNumber = "01834030544";
1322
1323      const rawMessage =
1324          "*ID Card Scanner Pro - Support*" + "\n\n" +
1325          "*Name:* " + name + "\n" +
1326          "*Email:* " + email + "\n" +
1327          "*Subject:* " + (subject ? subject : "Support") + "\n\n" +
1328          "*Message:*" + "\n" + message;
1329
1330      const encodedText = encodeURIComponent(rawMessage);
1331
1332      const waUrl = "https://wa.me/" + myNumber + "?text=" + encodedText;
1333
1334      window.open(waUrl, '_blank').focus();
1335  }
1336</script>
1336
1337<!--ID Card Scanner Pro Contact Page END--></div>
1338</article>
1339</div></div>
1340</div>
1341<!-- FOOTER -->
1342<footer class='site-footer'>
1343<div class='footer-container'>
1344<div class='footer-links'>
1345<a href='/p/about.html'>About</a>
1346<a href='/p/policy.html'>Privacy</a>
1347<a href='/p/terms.html'>Terms</a>
1348<a href='/p/refund.html'>Refund</a>
1349<a href='/p/copyright.html'>Copyright</a>
1350<a href='/p/contact.html'>Contact</a>
1351<a href='/p/faq.html'>FAQ</a>
1352</div>
1353<div class='copyright' style='display: flex; align-items: center; justify-content: center; gap: 10px; flex-wrap: wrap; margin-top: 20px;'>
1354<span>&#169; 2025 ID Card Scanner Pro</span>
1355<!-- DMCA Badge (Opens in New Tab) -->
1356<a class='dmca-badge' href='//www.dmca.com/Protection/Status.aspx?ID=85a80b11-0988-4ae2-9113-4a0fb2aae934' target='_blank' title='DMCA.com Protection Status'>
1357<img alt='DMCA.com Protection Status' height='24' loading='lazy' src='https://images.dmca.com/Badges/dmca_protected_sml_120m.png?ID=85a80b11-0988-4ae2-9113-4a0fb2aae934' style='vertical-align: middle;' title='DMCA.com Protection Status' width='121'/>
1358</a>
1359<script src='https://images.dmca.com/Badges/DMCABadgeHelper.min.js'></script>
1359
1360</div>
1361</div>
1362</footer>
1363<!-- pppp,nnnnn -->
1364<script src='https://cdn.jsdelivr.net/gh/fyzalkarimbd-web/scanner@main/scanner10.js'></script>
1364
1365<!-- Custom Popup HTML & CSS -->
1366<!-- HTML Structure -->
1367<div class='popup-overlay' id='customPopup'>
1368<div class='popup-box'>
1369<span class='popup-icon'>&#9888;&#65039;</span>
1370<h3 class='popup-title'>Action Required</h3>
1371<p class='popup-text' id='popupMessage'></p>
1372<!-- JS will fill this -->
1373<button class='popup-btn' onclick='closePopup()'>Okay, Got it</button>
1374</div>
1375</div>
1376<!-- RELATED POSTS CSS -->
1377<!-- RELATED POSTS SCRIPT -->
1378<!-- URL, UTM & Mobile Parameter Cleaner -->
1379<script src='https://cdn.jsdelivr.net/gh/fyzalkarimbd-web/scanner@main/m-url.js'></script>
1379
1380<!-- Smooth Back to Top Button -->
1381<button id='backToTop' title='Go to top'>
1382<i class='fa-solid fa-arrow-up'></i>
1383</button>
1384<!-- Back to Top Button js -->
1385<script src='https://cdn.jsdelivr.net/gh/fyzalkarimbd-web/scanner@main/top-button.js'></script>
1385
1386<!-- WhatsApp Support Floating Card -->
1387<div class='wa-support-container' id='waSupportBox'>
1388<button class='wa-close-btn' onclick='closeWaChat()' title='Close Support Box'>
1389<i class='fa-solid fa-xmark'></i>
1390</button>
1391<a class='wa-support-link' href='/p/contact.html'>
1392<div class='wa-icon-box'>
1393<img alt='WhatsApp Support' height='45' loading='eager' src='https://i.imgur.com/ifoAPIq.png' width='45'/>
1394</div>
1395<div class='wa-text-box'>
1396<span class='wa-label'>Contact Support</span>
1397<span class='wa-desc'>on WhatsApp</span>
1398</div>
1399</a>
1400</div>
1401<!-- WhatsApp Support -->
1402<script src='https://cdn.jsdelivr.net/gh/fyzalkarimbd-web/scanner@main/wp0.js'></script>
1402
1403<!-- Image Crop Tool Modal Overlay -->
1404<div class='crop-modal-overlay' id='imageCropModal'>
1405<div class='crop-modal-content'>
1406<span class='close-crop-modal' onclick='closeCropModal()'>&#215;</span>
1407<div class='cp-box'>
1408<h2>
1409<i class='fa-solid fa-camera-retro'></i> Advanced Image Cropping Tool
1410      </h2>
1411<div class='status-msg-cp' id='cp-status'>
1412<i class='fa-solid fa-spinner fa-spin'></i> Loading System...
1413      </div>
1414<div class='cp-how-to'>
1415<strong><i class='fa-solid fa-circle-info'></i> How to Use This Tool:</strong>
1416<ul>
1417<li>
1418            Upload your photo by tapping the upload area or dragging a file.
1419          </li>
1420<li>
1421            Select a preset <b>Photo/Paper size</b> or keep it
1422            <b>Dynamic</b> for free cropping.
1423          </li>
1424<li>
1425            Drag the <b>Blue Corner Points</b> to align the borders of your
1426            document or photo.
1427          </li>
1428<li>
1429            Click <b>"Straighten & Crop"</b> and save your file as
1430            PNG, JPG, or PDF.
1431          </li>
1432</ul>
1433</div>
1434<div class='cp-upload-area' id='drop-zone-cp'>
1435<i class='fa-solid fa-cloud-arrow-up' style='font-size: 35px; color: var(--cp-brand); margin-bottom: 10px;'></i>
1436<p>Tap to Upload or Drag & Drop Image</p>
1437<label for='file-input-cp' style='display:none;'>Upload Image for Cropping</label>
1438<input accept='image/*' id='file-input-cp' style='display:none;' type='file'/>
1439</div>
1440<div class='canvas-wrap' id='canvas-container-cp'>
1441<canvas id='main-canvas'></canvas>
1442<canvas class='magnifier' id='magnifier-cp'></canvas>
1443</div>
1444<div class='size-panel'>
1445<div class='size-tabs'>
1446<button class='tab-btn active' id='tab-photo' onclick='switchTab_CP(&#39;photo&#39;)'>
1447            Photo Sizes
1448          </button>
1449<button class='tab-btn' id='tab-paper' onclick='switchTab_CP(&#39;paper&#39;)'>
1450            Paper Sizes
1451          </button>
1452</div>
1453<div class='size-grid' id='photo-sizes'>
1454<div class='size-card selected' onclick='setSize_CP(0, 0, &#39;Dynamic&#39;, this)'>
1455<strong>Dynamic</strong><span>Free Ratio</span>
1456</div>
1457</div>
1458<div class='size-grid' id='paper-sizes' style='display:none;'></div>
1459</div>
1460<div class='controls'>
1461<button class='cp-btn locked' id='crop-btn-cp' onclick='checkAndAction_CP(&#39;crop&#39;)'>
1462<i class='fa-solid fa-crop-simple'></i> Straighten & Crop
1463        </button>
1464<button class='cp-btn locked' id='rotate-btn-cp' onclick='checkAndAction_CP(&#39;rotate&#39;)' style='background:#64748b;'>
1465<i class='fa-solid fa-rotate-right'></i> Rotate
1466        </button>
1467<button class='cp-btn locked delete-btn' id='delete-btn-cp' onclick='checkAndAction_CP(&#39;delete&#39;)'>
1468<i class='fa-solid fa-trash-can'></i> Delete
1469        </button>
1470</div>
1471<div id='preview-section-cp'>
1472<h3>
1473<i class='fa-solid fa-circle-check' style='color:var(--cp-success)'></i>
1474          Cropped Result:
1475        </h3>
1476<p id='size-info-cp' style='font-size: 12px; color: #64748b; margin-bottom: 10px;'></p>
1477<img alt='Preview' id='cp-preview-img'/>
1478<div class='action-grid'>
1479<button class='cp-btn btn-png' onclick='downloadImage_CP(&#39;png&#39;)'>
1480<i class='fa-solid fa-image'></i> Save as PNG
1481          </button>
1482<button class='cp-btn btn-jpg' onclick='downloadImage_CP(&#39;jpg&#39;)'>
1483<i class='fa-solid fa-file-image'></i> Save as JPG
1484          </button>
1485<button class='cp-btn btn-pdf' onclick='downloadPDF_CP()'>
1486<i class='fa-solid fa-file-pdf'></i> Save as PDF
1487          </button>
1488</div>
1489</div>
1490</div>
1491</div>
1492</div>
1493<!-- Image Crop Tool -->
1494<script src='https://cdn.jsdelivr.net/gh/fyzalkarimbd-web/scanner@main/img-crop.js'></script>
1494
1495<!-- Professional Bangla Sign Generator Modal -->
1496<div class='crop-modal-overlay' id='signGeneratorModal' style='display:none;'>
1497<div class='crop-modal-content' style='max-width: 550px;'>
1498<span class='close-crop-modal' onclick='closeSignModal()'>&#215;</span>
1499<div id='boxContainer-sg' style='border: 2px solid #4f46e5; border-radius: 20px; padding: 25px; background: #fff;'>
1500<h2 style='background: linear-gradient(135deg, #4f46e5, #06b6d4); -webkit-background-clip: text; -webkit-text-fill-color: transparent; font-weight: 800; text-align: center; margin-bottom: 20px;'>
1501<i class='fa-solid fa-pen-nib'></i> Bangla Sign Maker Pro
1502      </h2>
1503<div id='formBox-sg' style='background: #f8fafc; padding: 20px; border-radius: 15px; border: 1px solid #e2e8f0;'>
1504<label class='lblText-sg' for='txtInput-sg' style='font-size: 11px; font-weight: 800; color: #4f46e5; display: block; margin-bottom: 10px; font-family: "Inter", sans-serif;'>TYPE YOUR NAME IN BANGLA:</label>
1505<input class='inputName-sg' id='txtInput-sg' placeholder='এখানে নাম লিখুন...' style='width: 100%; padding: 12px; border: 2px solid #cbd5e1; border-radius: 10px; font-size: 28px; text-align: center; outline: none; transition: 0.3s;' type='text'/>
1506<div style='color:#475569; font-size:11px; margin: 15px 0 8px; font-weight:800; text-align: left; font-family: "Inter", sans-serif;'>
1507          SELECT SIGNATURE STYLE:
1508        </div>
1509<div class='sg-weight-selector' style='display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 10px; margin-bottom: 20px;'>
1510<label class='sg-weight-label' style='background: #fff; border: 1px solid #cbd5e1; padding: 10px; border-radius: 8px; cursor: pointer; text-align: center; font-size: 13px; font-weight: 700;'>
1511<input name='sg-weight' type='radio' value='lighter'/>
1512<span>Thin</span>
1513</label>
1514<label class='sg-weight-label' style='background: #fff; border: 1px solid #cbd5e1; padding: 10px; border-radius: 8px; cursor: pointer; text-align: center; font-size: 13px; font-weight: 700;'>
1515<input checked='checked' name='sg-weight' type='radio' value='normal'/>
1516<span>Medium</span>
1517</label>
1518<label class='sg-weight-label' style='background: #fff; border: 1px solid #cbd5e1; padding: 10px; border-radius: 8px; cursor: pointer; text-align: center; font-size: 13px; font-weight: 700;'>
1519<input name='sg-weight' type='radio' value='bold'/>
1520<span>Bold</span>
1521</label>
1522</div>
1523<button class='conv-btn-main' id='btnDownload-sg' onclick='generateSign()' style='width: 100%; padding: 15px; font-size: 16px; font-weight: 800; font-family: "Inter", sans-serif;'>
1524<i class='fa-solid fa-file-arrow-down'></i> Save as Transparent PNG
1525        </button>
1526</div>
1527<div class='sg-how-to' style='margin-top: 20px; background: #eef2ff; padding: 15px; border-radius: 12px; border: 1px dashed #4f46e5; text-align: left; font-size: 13.5px; color: #374151; font-family: "Inter", sans-serif;'>
1528<strong style='color:#4f46e5; display: block; margin-bottom: 5px;'><i class='fa-solid fa-circle-info'></i> How to use:</strong>
1529        Type your name in Bangla, select a style, and click download.
1530      </div>
1531<canvas height='300' id='canvasBoard-sg' style='display: none;' width='800'></canvas>
1532</div>
1533</div>
1534</div>
1535<!-- Bangla Sign Generator -->
1536<script src='https://cdn.jsdelivr.net/gh/fyzalkarimbd-web/scanner@main/sign-gen.js'></script>
1536
1537<!-- TOOL SECTION (MODAL VERSION) -->
1538<script src='https://cdn.jsdelivr.net/gh/fyzalkarimbd-web/scanner@main/open-modal.js'></script>
1538
1539<!-- Image Converter Tool Modal Overlay -->
1540<div class='crop-modal-overlay' id='imageConverterModal' style='display:none;'>
1541<div class='crop-modal-content'>
1542<span class='close-crop-modal' onclick='closeConverterModal()'>&#215;</span>
1543<div class='cp-box' style='border: 2px solid #4f46e5; border-radius: 18px; padding: 20px;'>
1544<div class='cv-container'>
1545<h2 style='background: linear-gradient(135deg, #4f46e5, #06b6d4); -webkit-background-clip: text; -webkit-text-fill-color: transparent; margin-bottom:5px; font-size: 24px; font-weight: 800;'>
1546<i class='fa-solid fa-images'></i> Bulk Image Converter
1547        </h2>
1548<p class='sub' style='margin-bottom:15px; font-size: 14px; color: #64748b;'>
1549          Fast, Secure and Pro Quality Conversion
1550        </p>
1551<div class='cp-upload-area' id='dropAreaCV' role='button' tabindex='0'>
1552<i class='fa-solid fa-cloud-arrow-up' style='font-size: 40px; color: #4f46e5; margin-bottom: 12px;'></i>
1553<p style='font-weight:600;'>Tap to Select or Drag Images</p>
1554<label for='imageInputCV' style='display:none;'>Select Images</label>
1555<input accept='image/*' id='imageInputCV' multiple='multiple' style='display:none;' type='file'/>
1556</div>
1557<div class='cv-setting-grid'>
1558<div class='cv-setting-item'>
1559<span><i class='fa-solid fa-file-export'></i> Select Format:</span>
1560<select id='formatSelect'>
1561<option value='image/png'>PNG (Lossless)</option>
1562<option selected='selected' value='image/jpeg'>
1563                JPEG (Compact)
1564              </option>
1565<option value='image/webp'>WEBP (Recommended)</option>
1566</select>
1567</div>
1568<div class='cv-setting-item'>
1569<span><i class='fa-solid fa-sliders'></i> Quality:
1570              <b id='qualityLabelNum'>80%</b></span>
1571<input id='qualityRange' max='1' min='0.1' step='0.1' type='range' value='0.8'/>
1572</div>
1573</div>
1574<div class='file-list-area' id='fileListCV'></div>
1575<div id='previewCV' style='display:flex; flex-wrap:wrap; gap:8px; justify-content:center;'></div>
1576<button class='conv-btn-main' id='convertBtn'>
1577<i class='fa-solid fa-cloud-arrow-down'></i> Convert and Download Images
1578        </button>
1579</div>
1580</div>
1581</div>
1582</div>
1583<!-- image converter tool -->
1584<script src='https://cdn.jsdelivr.net/gh/fyzalkarimbd-web/scanner@main/imgcon.js'></script>
1584
1585<!-- PDF to Image Converter: LINK -->
1586<script src='https://cdnjs.cloudflare.com/ajax/libs/pdf.js/2.16.105/pdf.min.js'></script>
vendor: 1 bytes, line 1586
1586
1587<script src='https://cdnjs.cloudflare.com/ajax/libs/jszip/3.7.1/jszip.min.js'></script>
vendor: 1 bytes, line 1587
1587
1588<script src='https://cdnjs.cloudflare.com/ajax/libs/FileSaver.js/2.0.5/FileSaver.min.js'></script>
1588
1589<!-- PDF to Image Converter: HTML -->
1590<div class='crop-modal-overlay' id='pdfConverterModal' style='display:none;'>
1591<div class='crop-modal-content'>
1592<span class='close-crop-modal' onclick='closePdfConverterModal()'>&#215;</span>
1593<div class='cp-box' style='border-color: #4f46e5; padding: 20px; border-radius: 18px;'>
1594<div class='pdf-cv-container'>
1595<h2 style='background: linear-gradient(135deg, #4f46e5, #06b6d4); -webkit-background-clip: text; -webkit-text-fill-color: transparent; margin-bottom:8px; font-size: 26px; text-align:center; font-weight: 800;'>
1596<i class='fa-solid fa-file-lines'></i> PDF to Image Converter
1597        </h2>
1598<p class='sub' style='margin-bottom:20px; text-align:center; font-size:14px; font-weight: 600; color:#64748b;'>
1599          High Resolution PDF Page Extraction
1600        </p>
1601<div class='pdf-cv-row'>
1602<div class='pdf-cv-left'>
1603<div class='pdf-upload-box' id='pdfDropZone' onclick='document.getElementById("pdfInput").click()'>
1604<i class='fa-solid fa-cloud-arrow-up'></i>
1605<p style='font-weight:800; margin:0; font-size:16px; color:#1e293b;'>
1606                Select PDF File
1607              </p>
1608<span style='font-size:12px; color:#64748b; font-weight:600;'>Drag and drop or click here</span>
1609<input accept='application/pdf' id='pdfInput' style='display:none' type='file'/>
1610</div>
1611<div class='pdf-cv-controls'>
1612<div class='control-item'>
1613<span>Resolution: <b id='pdfScaleNum'>30</b></span>
1614<input id='pdfScale' max='100' min='10' step='1' type='range' value='80'/>
1615</div>
1616<div class='control-item'>
1617<span>Format</span>
1618<select id='pdfFormat'>
1619<option value='image/jpeg'>JPEG (Standard)</option>
1620<option value='image/png'>PNG (Lossless)</option>
1621<option value='image/webp'>WEBP (Compact)</option>
1622</select>
1623</div>
1624</div>
1625<div id='pdfStatus' style='font-size:13px; color:#4f46e5; font-weight:800; margin-top:15px; text-align:center;'>
1626              Ready to begin
1627            </div>
1628<div class='progress-cv' id='pdfProgressWrap'>
1629<div class='progress-bar-cv' id='pdfProgressBar'></div>
1630</div>
1631<button class='pdf-cv-btn' id='pdfConvertBtn'>
1632<i class='fa-solid fa-wand-magic-sparkles'></i> Convert PDF Now
1633            </button>
1634</div>
1635<div class='pdf-cv-right'>
1636<div style='display:flex; justify-content:space-between; align-items:center; border-bottom:2px solid #e2e8f0; padding-bottom:10px;'>
1637<span style='font-weight:800; font-size:14px; color:#1e293b;'>Page Previews</span>
1638<span id='pageCount' style='font-size:11px; background:#4f46e5; color:#fff; padding:3px 10px; border-radius:20px; font-weight:700;'>0 Pages</span>
1639</div>
1640<div class='preview-list-cv' id='pdfPreviewList'></div>
1641<div style='margin-top:15px; display:grid; grid-template-columns: 1fr 1fr; gap:10px;'>
1642<button class='pdf-cv-btn' id='pdfZipBtn' style='margin:0; background:linear-gradient(135deg, #10b981, #059669) !important;'>
1643                Download ZIP
1644              </button>
1645<button class='pdf-cv-btn' id='pdfClearBtn' style='margin:0; background:#ef4444 !important;'>
1646                Clear All
1647              </button>
1648</div>
1649</div>
1650</div>
1651</div>
1652</div>
1653</div>
1654</div>
1655<!-- PDF to Image Converter: JS -->
1656<script src='https://cdn.jsdelivr.net/gh/fyzalkarimbd-web/scanner@main/pdfimg.js'></script>
1656
1657<!-- AI Background Remover HTML -->
1658<div class='crop-modal-overlay' id='bgRemoverModal' style='display:none;'>
1659<div class='crop-modal-content'>
1660<span class='close-crop-modal' onclick='closeBgRemoverModal()'>&#215;</span>
1661<div class='cp-box' style='border: 2px solid #4f46e5; border-radius: 18px; padding: 20px;'>
1662<div class='bg-cv-container'>
1663<h2 style='background: linear-gradient(135deg, #4f46e5, #06b6d4); -webkit-background-clip: text; -webkit-text-fill-color: transparent; margin-bottom:5px; font-size: 24px; font-weight: 800; text-align:center;'>
1664<i class='fa-solid fa-wand-magic-sparkles'></i> Free Image Background
1665          Remover
1666        </h2>
1667<p class='sub' style='margin-bottom:20px; text-align:center; font-size:14px; color:#64748b;'>
1668          Remove image backgrounds automatically in 5 seconds
1669        </p>
1670<!-- Upload Zone -->
1671<div class='cp-upload-area' id='bgDropZone' onclick='document.getElementById("bgInput").click()'>
1672<i class='fa-solid fa-cloud-arrow-up' style='font-size: 45px; color: #4f46e5; margin-bottom: 12px;'></i>
1673<p id='bgFileName' style='font-weight:700; margin:0; font-size:16px; color:#1e293b;'>
1674            Select or Drag Image
1675          </p>
1676<span style='font-size:11px; color:#64748b;'>Supports: JPG, PNG, WEBP (Max 10MB)</span>
1677<input accept='image/*' id='bgInput' style='display:none' type='file'/>
1678</div>
1679<button class='conv-btn-main' id='bgRemoveBtn' onclick='processBgRemoval()'>
1680<i class='fa-solid fa- sparkles'></i>
1680 Remove Background
1681        </button>
1682<div class='bg-loader' id='bgLoader'></div>
1683<!-- Result Area -->
1684<div class='bg-result-area' id='bgResultArea'>
1685<div style='font-weight:800; font-size:14px; color:#1e293b; margin-bottom:10px; display:flex; align-items:center; gap:8px;'>
1686<i class='fa-solid fa-circle-check' style='color:#10b981;'></i>
1687            Result Preview:
1688          </div>
1689<div class='bg-preview-box'>
1690<img alt='' id='bgResultImage' src=''/>
1691</div>
1692<div style='margin-top:20px;'>
1693<a class='conv-btn-main' download='no-bg-image.png' id='bgDownloadLink' style='text-decoration:none; background:linear-gradient(135deg, #10b981, #059669) !important;'>
1694<i class='fa-solid fa-download'></i> Download PNG Image
1695            </a>
1696</div>
1697</div>
1698<!-- Instruction -->
1699<div class='sg-how-to' style='margin-top:20px;'>
1700<strong style='color:#4f46e5;'><i class='fa-solid fa-circle-info'></i> How it works:</strong>
1701<p><span>1.</span> Upload any photo with a clear subject.</p>
1702<p>
1703<span>2.</span> Our AI will automatically identify and remove the
1704            background.
1705          </p>
1706<p>
1707<span>3.</span> Download your high-quality transparent PNG file.
1708          </p>
1709</div>
1710</div>
1711</div>
1712</div>
1713</div>
1714<!-- CV TOOL HTML -->
1715<div class='crop-modal-overlay' id='cvModalV3' style='display:none;'>
1716<div class='crop-modal-content'>
1717<span class='close-crop-modal' onclick='closeCvModalV3()'>&#215;</span>
1718<div class='cv3-container'>
1719<!-- Header Section -->
1720<div style='background:#fff; padding: 30px; border-radius: 20px; margin-bottom: 25px; border: 1px solid #e2e8f0; text-align:center;'>
1721<h2 style='color:#4f46e5; margin:0; font-size: 28px; font-weight:900;'>
1722<i class='fa-solid fa-file-contract'></i> Free Premium CV Builder
1723        </h2>
1724<p style='margin:8px 0 0; color:#64748b; font-weight:600;'>
1725          Create an International Standard CV with Dynamic Sections
1726        </p>
1727</div>
1728<!-- Demo Button Section -->
1729<div style='text-align: center; margin-bottom: 20px;'>
1730<button class='cv3-demo-btn' onclick='showCvDemo()' type='button'>
1731<i class='fa-solid fa-eye'></i> See Demo CV
1732        </button>
1733</div>
1734<!-- 1. Personal Identity -->
1735<div class='cv3-section'>
1736<h3><i class='fa-solid fa-user-tie'></i> 1. Personal Identity</h3>
1737<div class='cv3-grid'>
1738<div class='cv3-group'>
1739<label for='v3-photo'>Profile Photo</label>
1740<div class='photo-upload-container'>
1741<div class='photo-upload-box' id='photo-trigger' onclick='document.getElementById("v3-photo").click()'>
1742<i class='fa-solid fa-camera-retro'></i>
1743<span id='photo-status'>Upload Photo</span>
1744<img alt='Profile Preview' class='photo-preview-ui' id='v3-img-preview' src=''/>
1745</div>
1746<input accept='image/*' id='v3-photo' style='display:none' type='file'/>
1747</div>
1748</div>
1749<div class='cv3-group'>
1750<label for='v3-name'>Full Name</label>
1751<input id='v3-name' placeholder='MD. FYZAL KARIM' type='text'/>
1752</div>
1753<div class='cv3-group'>
1754<label for='v3-dob'>Date of Birth</label>
1755<input id='v3-dob' type='date'/>
1756</div>
1757<div class='cv3-group'>
1758<label for='v3-gender'>Gender</label>
1759<select id='v3-gender'>
1760<option value='Male'>Male</option>
1761<option value='Female'>Female</option>
1762<option value='Other'>Other</option>
1763</select>
1764</div>
1765<div class='cv3-group'>
1766<label for='v3-religion'>Religion</label>
1767<select id='v3-religion'>
1768<option value=''>Select</option>
1769<option value='Islam'>Islam</option>
1770<option value='Hinduism'>Hinduism</option>
1771<option value='Christianity'>Christianity</option>
1772<option value='Buddhism'>Buddhism</option>
1773<option value='Other'>Other</option>
1774</select>
1775</div>
1776<div class='cv3-group'>
1777<label for='v3-nation'>Nationality</label>
1778<input id='v3-nation' placeholder='Your Country Name' type='text'/>
1779</div>
1780<div class='cv3-group'>
1781<label for='v3-height'>Height</label>
1782<input id='v3-height' type='text' value='5&#39;7" inches'/>
1783</div>
1784<div class='cv3-group'>
1785<label for='v3-weight'>Weight</label>
1786<input id='v3-weight' type='text' value='72 kg'/>
1787</div>
1788<div class='cv3-group'>
1789<label for='v3-blood'>Blood Group</label>
1790<select id='v3-blood'>
1791<option value=''>Select</option>
1792<option value='A+'>A+</option>
1793<option value='A-'>A-</option>
1794<option value='B+'>B+</option>
1795<option value='B-'>B-</option>
1796<option value='O+'>O+</option>
1797<option value='O-'>O-</option>
1798<option value='AB+'>AB+</option>
1799<option value='AB-'>AB-</option>
1800</select>
1801</div>
1802<div class='cv3-group'>
1803<label for='v3-marital'>Marital Status</label>
1804<select id='v3-marital'>
1805<option value='Single'>Single</option>
1806<option value='Married'>Married</option>
1807<option value='Divorced'>Divorced</option>
1808</select>
1809</div>
1810<div class='cv3-group'>
1811<label for='v3-father'>Father's Name</label>
1812<input id='v3-father' placeholder='Your father name' type='text'/>
1813</div>
1814<div class='cv3-group'>
1815<label for='v3-mother'>Mother's Name</label>
1816<input id='v3-mother' placeholder='Your mother name' type='text'/>
1817</div>
1818<div class='cv3-group'>
1819<label for='v3-nid'>NID Number</label>
1820<input id='v3-nid' placeholder='9154220535' type='text'/>
1821<label class='cv3-toggle'><input checked='checked' id='chk-v3-nid' type='checkbox'/>
1822              Include</label>
1823</div>
1824<div class='cv3-group'>
1825<label for='v3-pass'>Passport No</label>
1826<input id='v3-pass' placeholder='A11078135' type='text'/>
1827<label class='cv3-toggle'><input checked='checked' id='chk-v3-pass' type='checkbox'/>
1828              Include</label>
1829</div>
1830</div>
1831</div>
1832<!-- 2. Contact -->
1833<div class='cv3-section'>
1834<h3><i class='fa-solid fa-address-book'></i> 2. Contact & Titles</h3>
1835<div class='cv3-grid'>
1836<div class='cv3-group'>
1837<label for='v3-phone-init'>Mobile Numbers (Max 4)</label>
1838<div id='v3-wrap-phone'>
1839<div class='multi-input-box'>
1840<input class='v3-phone' id='v3-phone-init' placeholder='+8801834030544' type='text'/>
1841<button aria-label='Remove' class='remove-inp' onclick='this.parentElement.remove()' type='button'>
1842                  &#215;
1843                </button>
1844</div>
1845</div>
1846<button class='add-btn' onclick='addV3Input("v3-wrap-phone", "v3-phone", 4)' type='button'>
1847              + Add Mobile
1848            </button>
1849</div>
1850<div class='cv3-group'>
1851<label for='v3-title-init'>Professional Titles (Max 4)</label>
1852<div id='v3-wrap-title'>
1853<div class='multi-input-box'>
1854<input class='v3-title' id='v3-title-init' placeholder='Graphic designer' type='text'/>
1855<button aria-label='Remove' class='remove-inp' onclick='this.parentElement.remove()' type='button'>
1856                  &#215;
1857                </button>
1858</div>
1859</div>
1860<button class='add-btn' onclick='addV3Input("v3-wrap-title", "v3-title", 4)' type='button'>
1861              + Add Title
1862            </button>
1863</div>
1864<div class='cv3-group'>
1865<label for='v3-email-init'>Email Addresses (Max 4)</label>
1866<div id='v3-wrap-email'>
1867<div class='multi-input-box'>
1868<input class='v3-email' id='v3-email-init' placeholder='[email protected]' type='email'/>
1869<button aria-label='Remove' class='remove-inp' onclick='this.parentElement.remove()' type='button'>
1870                  &#215;
1871                </button>
1872</div>
1873</div>
1874<button class='add-btn' onclick='addV3Input("v3-wrap-email", "v3-email", 4)' type='button'>
1875              + Add Email
1876            </button>
1877</div>
1878</div>
1879<div class='cv3-grid' style='margin-top:20px;'>
1880<div class='cv3-group'>
1881<label for='v3-addr-pre'>Present Address (Short)</label>
1882<input id='v3-addr-pre' placeholder='Bagur, Comilla.' type='text'/>
1883</div>
1884<div class='cv3-group'>
1885<label for='v3-addr-per'>Permanent Address (Short)</label>
1886<input id='v3-addr-per' placeholder='Atapur, Comilla.' type='text'/>
1887</div>
1888</div>
1889</div>
1890<!-- Social Media Profiles -->
1891<div class='cv3-section'>
1892<h3><i class='fa-solid fa-share-nodes'></i> Social Media Profiles</h3>
1893<div class='cv3-grid'>
1894<div class='cv3-group'>
1895<label for='v3-linkedin'>LinkedIn Profile</label>
1896<label class='cv3-toggle'><input checked='checked' id='chk-v3-linkedin' type='checkbox'/>
1897              Include</label>
1898<input id='v3-linkedin' placeholder='linkedin.com/in/username' type='text'/>
1899</div>
1900<div class='cv3-group'>
1901<label for='v3-github'>GitHub Profile</label>
1902<label class='cv3-toggle'><input checked='checked' id='chk-v3-github' type='checkbox'/>
1903              Include</label>
1904<input id='v3-github' placeholder='github.com/username' type='text'/>
1905</div>
1906<div class='cv3-group'>
1907<label for='v3-facebook'>Facebook Profile</label>
1908<label class='cv3-toggle'><input id='chk-v3-facebook' type='checkbox'/> Include</label>
1909<input id='v3-facebook' placeholder='facebook.com/username' type='text'/>
1910</div>
1911<div class='cv3-group'>
1912<label for='v3-whatsapp'>WhatsApp Number</label>
1913<label class='cv3-toggle'><input id='chk-v3-whatsapp' type='checkbox'/> Include</label>
1914<input id='v3-whatsapp' placeholder='+8801XXXXXXXXX' type='text'/>
1915</div>
1916<div class='cv3-group'>
1917<label for='v3-twitter'>Twitter (X)</label>
1918<label class='cv3-toggle'><input id='chk-v3-twitter' type='checkbox'/> Include</label>
1919<input id='v3-twitter' placeholder='twitter.com/username' type='text'/>
1920</div>
1921<div class='cv3-group'>
1922<label for='v3-instagram'>Instagram</label>
1923<label class='cv3-toggle'><input id='chk-v3-instagram' type='checkbox'/> Include</label>
1924<input id='v3-instagram' placeholder='instagram.com/username' type='text'/>
1925</div>
1926</div>
1927</div>
1928<!-- 3. Career Summary -->
1929<div class='cv3-section'>
1930<h3>
1931<i class='fa-solid fa-briefcase'></i> 3. Career Summary & Experience
1932        </h3>
1933<div class='cv3-group'>
1934<label for='v3-summary-init'>Career Objective / Summary (Max 4)</label>
1935<label class='cv3-toggle'><input checked='checked' id='chk-v3-sum' type='checkbox'/>
1936            Include</label>
1937<div id='v3-wrap-sum'>
1938<div class='multi-input-box'>
1939<textarea class='v3-summary' id='v3-summary-init' placeholder='Professional goal...'></textarea>
1940<button aria-label='Remove' class='remove-inp' onclick='this.parentElement.remove()' type='button'>
1941                &#215;
1942              </button>
1943</div>
1944</div>
1945<button class='add-btn' onclick='addV3Area("v3-wrap-sum", "v3-summary", 4)' type='button'>
1946            + Add Objective
1947          </button>
1948</div>
1949<div class='cv3-group' style='margin-top:30px;'>
1950<label for='v3-exp-init'>Work Experience (Max 4)</label>
1951<label class='cv3-toggle'><input checked='checked' id='chk-v3-exp' type='checkbox'/>
1952            Include</label>
1953<div id='v3-wrap-exp'>
1954<div class='multi-input-box'>
1955<textarea class='v3-exp' id='v3-exp-init' placeholder='Job experience...'></textarea>
1956<button aria-label='Remove' class='remove-inp' onclick='this.parentElement.remove()' type='button'>
1957                &#215;
1958              </button>
1959</div>
1960</div>
1961<button class='add-btn' onclick='addV3Area("v3-wrap-exp", "v3-exp", 4)' type='button'>
1962            + Add Experience
1963          </button>
1964</div>
1965</div>
1966<!-- 4. Education -->
1967<div class='cv3-section'>
1968<h3><i class='fa-solid fa-graduation-cap'></i> 4. Education (Max 10)</h3>
1969<label class='cv3-toggle'><input checked='checked' id='chk-v3-edu' type='checkbox'/>
1970          Include</label>
1971<div id='v3-wrap-edu'>
1972<div class='edu-pair-box'>
1973<div class='edu-pair-inputs'>
1974<label for='v3-edu-main-init' style='display:none;'>Education Header</label>
1975<input class='v3-edu-main' id='v3-edu-main-init' type='text' value='Year | Degree | Institution | CGPA'/>
1976<label for='v3-edu-desc-init' style='display:none;'>Education Detail</label>
1977<textarea class='v3-edu-desc' id='v3-edu-desc-init' placeholder='Education Description/Details'></textarea>
1978</div>
1979<button aria-label='Remove' class='remove-inp-pair' onclick='this.parentElement.remove()' type='button'>
1980              &#215;
1981            </button>
1982</div>
1983</div>
1984<button class='add-btn' onclick='addV3Education()' type='button'>
1985          + Add Education
1986        </button>
1987</div>
1988<!-- 5. Skills -->
1989<div class='cv3-section'>
1990<h3><i class='fa-solid fa-star'></i> 5. Skills & Languages</h3>
1991<div class='cv3-grid'>
1992<div class='cv3-group'>
1993<label for='v3-skill-init'>Skills (Max 5)</label>
1994<label class='cv3-toggle'><input checked='checked' id='chk-v3-skill' type='checkbox'/>
1995              Include</label>
1996<div id='v3-wrap-skill'>
1997<div class='multi-input-box'>
1998<input class='v3-skill' id='v3-skill-init' placeholder='Microsoft Excel' type='text'/>
1999<button aria-label='Remove' class='remove-inp' onclick='this.parentElement.remove()' type='button'>
2000                  &#215;
2001                </button>
2002</div>
2003</div>
2004<button class='add-btn' onclick='addV3Input("v3-wrap-skill", "v3-skill", 5)' type='button'>
2005              + Add Skill
2006            </button>
2007</div>
2008<div class='cv3-group'>
2009<label for='v3-lang-init'>Languages (Max 5)</label>
2010<label class='cv3-toggle'><input checked='checked' id='chk-v3-lang' type='checkbox'/>
2011              Include</label>
2012<div id='v3-wrap-lang'>
2013<div class='multi-input-box'>
2014<input class='v3-lang' id='v3-lang-init' type='text' value='English - Fluent - Native'/>
2015<button aria-label='Remove' class='remove-inp' onclick='this.parentElement.remove()' type='button'>
2016                  &#215;
2017                </button>
2018</div>
2019</div>
2020<button class='add-btn' onclick='addV3Input("v3-wrap-lang", "v3-lang", 5)' type='button'>
2021              + Add Language
2022            </button>
2023</div>
2024</div>
2025</div>
2026<!-- 6. Projects -->
2027<div class='cv3-section'>
2028<h3><i class='fa-solid fa-trophy'></i> 6. Achievements & Projects</h3>
2029<label class='cv3-toggle'><input checked='checked' id='chk-v3-ach' type='checkbox'/>
2030          Include</label>
2031<div id='v3-wrap-ach'>
2032<div class='multi-input-box'>
2033<input class='v3-ach' id='v3-ach-init' placeholder='Project name' type='text'/>
2034<button aria-label='Remove' class='remove-inp' onclick='this.parentElement.remove()' type='button'>
2035              &#215;
2036            </button>
2037</div>
2038</div>
2039<button class='add-btn' onclick='addV3Input("v3-wrap-ach", "v3-ach", 4)' type='button'>
2040          + Add Project
2041        </button>
2042<div class='cv3-group' style='margin-top:20px;'>
2043<label for='v3-self-desc'>Self-Description (Professional Info)</label>
2044<textarea id='v3-self-desc' placeholder='Write a short self-description...'></textarea>
2045</div>
2046</div>
2047<!-- 7. References -->
2048<div class='cv3-section'>
2049<h3><i class='fa-solid fa-handshake'></i> 7. References</h3>
2050<label class='cv3-toggle'><input checked='checked' id='chk-v3-ref' type='checkbox'/>
2051          Include</label>
2052<div id='v3-wrap-ref'>
2053<div class='multi-input-box'>
2054<label for='v3-ref-init' style='display:none;'>Reference Info</label>
2055<textarea class='v3-ref' id='v3-ref-init' placeholder='Name | Position | Organization | Contact'></textarea>
2056<button aria-label='Remove' class='remove-inp' onclick='this.parentElement.remove()' type='button'>
2057              &#215;
2058            </button>
2059</div>
2060</div>
2061<button class='add-btn' onclick='addV3Area("v3-wrap-ref", "v3-ref", 2)' type='button'>
2062          + Add Reference
2063        </button>
2064</div>
2065<!-- Theme Color -->
2066<div class='cv3-color-section'>
2067<h3><i class='fa-solid fa-palette'></i>
2067 Select CV Background Color</h3>
2068<div class='color-palette' role='group'>
2069<button aria-label='Slate Gray' class='color-swatch active' onclick='setCVTheme("#f1f5f9", this)' style='background: #f1f5f9; border:none;' type='button'></button>
2070<button aria-label='Soft Indigo' class='color-swatch' onclick='setCVTheme("#eef2ff", this)' style='background: #eef2ff; border:none;' type='button'></button>
2071<button aria-label='Sky Blue' class='color-swatch' onclick='setCVTheme("#e0f2fe", this)' style='background: #e0f2fe; border:none;' type='button'></button>
2072<button aria-label='Light Cyan' class='color-swatch' onclick='setCVTheme("#ecfeff", this)' style='background: #ecfeff; border:none;' type='button'></button>
2073<button aria-label='Soft Teal' class='color-swatch' onclick='setCVTheme("#f0fdfa", this)' style='background: #f0fdfa; border:none;' type='button'></button>
2074<button aria-label='Soft Green' class='color-swatch' onclick='setCVTheme("#f0fdf4", this)' style='background: #f0fdf4; border:none;' type='button'></button>
2075<button aria-label='Emerald Green' class='color-swatch' onclick='setCVTheme("#ecfdf5", this)' style='background: #ecfdf5; border:none;' type='button'></button>
2076<button aria-label='Soft Orange' class='color-swatch' onclick='setCVTheme("#fff7ed", this)' style='background: #fff7ed; border:none;' type='button'></button>
2077<button aria-label='Soft Red' class='color-swatch' onclick='setCVTheme("#fef2f2", this)' style='background: #fef2f2; border:none;' type='button'></button>
2078<button aria-label='Soft Pink' class='color-swatch' onclick='setCVTheme("#fdf2f8", this)' style='background: #fdf2f8; border:none;' type='button'></button>
2079<button aria-label='Soft Purple' class='color-swatch' onclick='setCVTheme("#faf5ff", this)' style='background: #faf5ff; border:none;' type='button'></button>
2080<button aria-label='Cloud White' class='color-swatch' onclick='setCVTheme("#f8fafc", this)' style='background: #f8fafc; border:none;' type='button'></button>
2081</div>
2082</div>
2083<button class='conv-btn-main' id='cv3-down-btn' onclick='buildV3CV()' type='button'>
2084<i class='fa-solid fa-cloud-arrow-down'></i> Save CV as PDF
2085      </button>
2086</div>
2087</div>
2088</div>
2089<!-- Render Area (Invisible) -->
2090<div id='cv3-render-area' style='display:none;'></div>
2091<!-- Demo Overlay -->
2092<div class='cv-demo-overlay' id='cvDemoBox'>
2093<div class='cv-demo-content'>
2094<span class='close-demo' onclick='hideCvDemo()'>&#215;</span>
2095<img alt='Demo CV Preview' src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHwTKkeMttQndnDMrkrH8-H_daj89NV3jGHOoXJoxqOJvqUUzuymXaZUnbVn0ZjUWgk432vqkLhhiluxrCyKVFLInaZg8GoYXCvgQzAlzdNoh7yvjY527FZ3docCQzxvQR75_LNKW9rN6ZZGQGkBoEPi69aPZQwdTY-dEB5Oj2kkqTds7F3YMbIAIoorA/s1600/democv.webp'/>
2096</div>
2097</div>
2098<script src='https://cdnjs.cloudflare.com/ajax/libs/html2pdf.js/0.10.1/html2pdf.bundle.min.js'></script>
2098
2099<!-- CV TOOL JS -->
2100<script src='https://cdn.jsdelivr.net/gh/fyzalkarimbd-web/scanner@main/cvc.js'></script>
2100
2101<!-- Dollar to Taka Converter HTML -->
2102<!-- Currency Converter Modal Overlay (Updated Font Sizes & Icons) -->
2103<div class='crop-modal-overlay' id='currencyModal' style='display:none;'>
2104<div class='crop-modal-content'>
2105<span class='close-crop-modal' onclick='closeCurrencyModal()'>&#215;</span>
2106<div class='cp-box' style='border: 1px solid #4f46e5; border-radius: 20px; padding: 25px;'>
2107<div class='curr-container' style='font-family: &#39;SolaimanLipi&#39;, &#39;Inter&#39;, sans-serif !important;'>
2108<!-- Language Toggle -->
2109<div class='curr-lang-toggle'>
2110<div class='lang-btn active' id='lang-bn' onclick='switchCurrLang("bn")'>
2111            ব&#2494;&#2434;ল&#2494;
2112          </div>
2113<div class='lang-btn' id='lang-en' onclick='switchCurrLang("en")'>
2114            English
2115          </div>
2116</div>
2117<h2 id='curr-title' style='background: linear-gradient(135deg, #4f46e5, #06b6d4); -webkit-background-clip: text; -webkit-text-fill-color: transparent; margin-bottom:15px; font-size: 24px; font-weight: 800; text-align:center;'>
2118<i class='fa-solid fa-money-bill-transfer'></i> ডল&#2494;র &#8644;
2119          ট&#2494;ক&#2494; কনভ&#2494;র&#2509;ট&#2494;র
2120        </h2>
2121<div class='live-rate-box'>
2122<div class='live-rate-text' id='lbl-live' style='font-size: 20px !important;'>
2123<!-- প&#2494;লস আইকন য&#2497;ক&#2509;ত কর&#2494; হল&#2507; -->
2124<span class='pulse-icon' style='display:inline-block; margin-right:10px;'></span>
2125            আজক&#2503;র ল&#2494;ইভ ডল&#2494;র র&#2503;ট:
2126          </div>
2127<div id='currLiveRate' style='font-size: 30px !important; font-weight: 800; color: #1d4ed8; margin-top: 10px;'>
2128            ল&#2507;ড হচ&#2509;ছ&#2503;...
2129          </div>
2130</div>
2131<div class='curr-card'>
2132<label class='curr-label' for='currDirection' id='lbl-type'>
2133<i class='fa-solid fa-layer-group'></i> কনভ&#2494;র&#2509;ট ধরন:
2134          </label>
2135<select id='currDirection' style='font-family: &#39;SolaimanLipi&#39;, sans-serif !important;'>
2136<option id='opt-usd-bdt' value='usd-bdt'>
2137              ডল&#2494;র &#10132; ট&#2494;ক&#2494;
2138            </option>
2139<option id='opt-bdt-usd' value='bdt-usd'>
2140              ট&#2494;ক&#2494; &#10132; ডল&#2494;র
2141            </option>
2142</select>
2143<label class='curr-label' for='currAmount' id='lbl-amount'>
2144<i class='fa-solid fa-calculator'></i> পর&#2495;ম&#2494;ণ
2145            ল&#2495;খ&#2497;ন:
2146          </label>
2147<input id='currAmount' placeholder='0.00' step='0.01' type='number'/>
2148<button class='conv-btn-main' id='currConvertBtn' onclick='convertCurrency()' style='margin:0; width:100%; font-family: "SolaimanLipi", sans-serif !important;'>
2149<i class='fa-solid fa-rotate'></i>
2150<span id='btn-text'>কনভ&#2494;র&#2509;ট কর&#2497;ন!</span>
2151</button>
2152<div class='res-box-curr'>
2153<strong id='lbl-res' style='font-size: 20px !important;'><i class='fa-solid fa-square-poll-vertical'></i> আপড&#2503;ট
2154              র&#2503;ট:</strong>
2155<div id='currResult' style='font-size: 30px !important; font-weight: 900; color: #1e293b; margin-top: 10px;'>
2156              --
2157            </div>
2158</div>
2159<button class='conv-btn-main' id='currCopyBtn' onclick='copyCurrResult()' style='margin-top:10px; background:#10b981 !important; width:100%; font-size:16px; font-family: "SolaimanLipi", sans-serif !important;'>
2160<i class='fa-solid fa-copy'></i>
2161<span id='copy-text'>র&#2503;ট কপ&#2495; কর&#2497;ন!</span>
2162</button>
2163</div>
2164</div>
2165</div>
2166</div>
2167</div>
2168<!-- Dollar to Taka Converter js -->
2169<script src='https://cdn.jsdelivr.net/gh/fyzalkarimbd-web/scanner@main/currency.js'></script>
2169
2170<!-- Age Calculator HTML -->
2171<div class='crop-modal-overlay' id='ageModal' style='display:none;'>
2172<div class='crop-modal-content'>
2173<span class='close-crop-modal' onclick='closeAgeModal()'>&#215;</span>
2174<div class='cp-box' style='border: 2px solid #4f46e5; border-radius: 20px; padding: 25px;'>
2175<div class='age-container lang-bn' id='ageContainer'>
2176<!-- Language Toggle -->
2177<div class='age-lang-toggle'>
2178<div class='age-lang-btn active' id='age-lang-bn' onclick='switchAgeLang("bn")'>
2179            ব&#2494;&#2434;ল&#2494;
2180          </div>
2181<div class='age-lang-btn' id='age-lang-en' onclick='switchAgeLang("en")'>
2182            English
2183          </div>
2184</div>
2185<h2 id='age-title' style='background: linear-gradient(135deg, #4f46e5, #06b6d4); -webkit-background-clip: text; -webkit-text-fill-color: transparent; margin-bottom:20px; font-size: 24px; font-weight: 800; text-align:center;'>
2186<i class='fa-solid fa-cake-candles'></i>
2187<span id='age-title-text'>বয়স ক&#2509;য&#2494;লক&#2497;ল&#2503;টর</span>
2188</h2>
2189<label class='age-label' for='birthDate' id='age-lbl-birth'>
2190<i class='fa-solid fa-calendar-day'></i>
2191<span id='age-lbl-text'>জন&#2509;ম ত&#2494;র&#2495;খ স&#2495;ল&#2503;ক&#2509;ট
2192            কর&#2497;ন:</span>
2193</label>
2194<input id='birthDate' type='date'/>
2195<button class='conv-btn-main' id='ageCalcBtn' onclick='calculateAge()' style='margin:0; width:100%; font-weight: 800;'>
2196<i class='fa-solid fa-calculator'></i>
2197<span id='age-btn-text'>বয়স হ&#2495;স&#2494;ব কর&#2497;ন</span>
2198</button>
2199<!-- র&#2503;জ&#2494;ল&#2509;ট স&#2503;কশন -->
2200<div class='res-box-age' id='ageResultBox'>
2201<strong id='age-lbl-res'>আপন&#2494;র ফল&#2494;ফল:</strong>
2202<div id='ageResultData'></div>
2203<button class='conv-btn-main' id='ageCopyBtn' onclick='copyAgeResult()' style='margin-top:15px; background:#10b981 !important; width:100%; font-size:14px; font-weight: 800;'>
2204<i class='fa-solid fa-copy'></i>
2205<span id='age-copy-text'>ফল&#2494;ফল কপ&#2495; কর&#2497;ন</span>
2206</button>
2207</div>
2208</div>
2209</div>
2210</div>
2211</div>
2212<!-- Age Calculator JS -->
2213<script src='https://cdn.jsdelivr.net/gh/fyzalkarimbd-web/scanner@main/age.js'></script>
2213
2214<!-- Passport Photo Maker HTML -->
2215<div class='crop-modal-overlay' id='ppProModal' style='display:none;'>
2216<div class='crop-modal-content'>
2217<span class='close-crop-modal' onclick='closePassportProModal()'>&#215;</span>
2218<div class='ps4-container'>
2219<div class='pst4-top-header'>
2220<h2><i class='fa-solid fa-id-card-clip'></i> Passport Photo Studio</h2>
2221</div>
2222<div class='ps4-left'>
2223<div class='ps4-viewport' id='ps4Viewport' onclick='handleViewportClick(event)'>
2224<canvas id='ps4Canvas'></canvas>
2225<div id='ps4SizePicker' style='display:none; position:absolute; z-index:100; background:rgba(255,255,255,0.95); padding:15px; border-radius:15px; box-shadow:0 10px 25px rgba(0,0,0,0.2); border:2px solid #4f46e5; width:250px; text-align:center; backdrop-filter:blur(5px);'>
2226<p style='font-weight:800; font-size:20px; margin-bottom:12px; color:#1e293b;'>
2227              Select Photo Size
2228            </p>
2229<div style='display:flex; flex-direction:column; gap:8px;'>
2230<button onclick='setFinalType("passport", event)' style='background:#4f46e5; color:#fff; border:none; padding:10px; border-radius:8px; cursor:pointer; font-weight:700; font-size:18px;'>
2231                Passport Size Photo
2232              </button>
2233<button onclick='setFinalType("stamp", event)' style='background:#10b981; color:#fff; border:none; padding:10px; border-radius:8px; cursor:pointer; font-weight:700; font-size:18px;'>
2234                Stamp Size Photo
2235              </button>
2236</div>
2237</div>
2238<div id='ps4CropBox'>
2239<div class='crop-handle handle-tl' onmousedown='initResize(event, "tl")' ontouchstart='initResize(event, "tl")'></div>
2240<div class='crop-handle handle-tr' onmousedown='initResize(event, "tr")' ontouchstart='initResize(event, "tr")'></div>
2241<div class='crop-handle handle-bl' onmousedown='initResize(event, "bl")' ontouchstart='initResize(event, "bl")'></div>
2242<div class='crop-handle handle-br' onmousedown='initResize(event, "br")' ontouchstart='initResize(event, "br")'></div>
2243</div>
2244<div id='ps4Hint' style='text-align:center;'>
2245<i class='fa-solid fa-cloud-arrow-up' style='font-size:40px; color:#4f46e5;'></i>
2246<p style='font-weight:800; color:#1e293b; margin-top:12px; font-size:16px;'>
2247              Tap to Import Photo
2248            </p>
2249</div>
2250</div>
2251<input accept='image/*' id='ps4FileInput' style='display:none' type='file'/>
2252<div class='ps4-action-bar'>
2253<!-- Rotation / Straighten Slider -->
2254<div class='ps4-row'>
2255<div class='ps4-title'>
2256<i class='fa-solid fa-rotate'></i> Straighten Image 180&#176;
2257            </div>
2258<b id='v4-rotation'>0&#176;</b>
2259</div>
2260<input class='ps4-range' id='p4-rotation' max='180' min='-180' step='1' type='range' value='0'/>
2261<button class='ps4-btn ps4-btn-green' id='ps4CropBtn' onclick='confirmPs4Crop(event)'>
2262<i class='fa-solid fa-crop-simple'></i> Crop
2263          </button>
2264<button class='ps4-btn ps4-btn-outline' id='ps4RotateBtn' onclick='rotatePs4(event)'>
2265<i class='fa-solid fa-rotate-right'></i> Rotate
2266          </button>
2267<button class='ps4-btn ps4-btn-outline' id='ps4DeleteBtn' onclick='deletePs4(event)' style='color:#ef4444'>
2268<i class='fa-solid fa-trash-can'></i> Delete
2269          </button>
2270</div>
2271</div>
2272<div class='ps4-right'>
2273<div class='ps4-title'>
2274<i class='fa-solid fa-sliders'></i> Image Adjustments
2275        </div>
2276<div class='ps4-row'>Brightness <b id='v4-br'>100%</b></div>
2277<input class='ps4-range' id='p4-br' max='200' min='0' type='range' value='100'/>
2278<div class='ps4-row'>Contrast <b id='v4-ct'>100%</b></div>
2279<input class='ps4-range' id='p4-ct' max='200' min='0' type='range' value='100'/>
2280<div class='ps4-row'>Saturation <b id='v4-st'>100%</b></div>
2281<input class='ps4-range' id='p4-st' max='200' min='0' type='range' value='100'/>
2282<div class='ps4-title'>
2283<i class='fa-solid fa-wand-magic-sparkles'></i>
2283 AI & Background
2284        </div>
2285<button class='ps4-btn ps4-btn-red' id='ps4AiBtn' onclick='runPs4AI()' style='margin-bottom:15px;'>
2286<i class='fa-solid fa-wand-sparkles'></i> Remove Background
2287        </button>
2288<!-- Background Color Selection (Updated with 4 New Colors) -->
2289<div class='ps4-title'>
2290<i class='fa-solid fa-palette'></i> Background Color
2291        </div>
2292<div class='ps4-bg-grid'>
2293<div class='ps4-bg-item pst4-transparent-bg' onclick='setPs4BG("transparent")' title='Transparent'></div>
2294<div class='ps4-bg-item' onclick='setPs4BG("#ffffff")' style='background: #ffffff; border: 1px solid #ddd;' title='White'></div>
2295<div class='ps4-bg-item' onclick='setPs4BG("#3b82f6")' style='background: #3b82f6;' title='Royal Blue'></div>
2296<div class='ps4-bg-item' onclick='setPs4BG("#0ea5e9")' style='background: #0ea5e9;' title='Sky Blue'></div>
2297<div class='ps4-bg-item' onclick='setPs4BG("#94a3b8")' style='background: #94a3b8;' title='Grey'></div>
2298<div class='ps4-bg-item' onclick='setPs4BG("#22c55e")' style='background: #22c55e;' title='Green'></div>
2299<div class='ps4-bg-item' onclick='setPs4BG("#ef4444")' style='background: #ef4444;' title='Red'></div>
2300<input id='ps4Picker' oninput='setPs4BG(this.value)' style='width:32px; height:32px; border:none; padding:0; cursor:pointer; border-radius: 6px;' type='color' value='#ffffff'/>
2301</div>
2302<div class='ps4-row'>
2303<div class='ps4-title'>
2304<i class='fa-solid fa-border-style'></i> Photo Black Border
2305          </div>
2306<b id='v4-border'>0</b>
2307</div>
2308<input class='ps4-range' id='p4-border' max='4' min='0' type='range' value='0'/>
2309<div class='pst3-section-title' style='margin-top:15px;'>
2310<i class='fa-solid fa-border-all'></i> A4 Paper Grid
2311        </div>
2312<div style='display:grid; grid-template-columns: 1fr 1fr; gap:12px;'>
2313<div class='ps4-row' style='flex-direction:column; align-items:flex-start; gap:5px;'>
2314            Rows (Max 6)
2315            <input id='p4-rows' max='6' min='1' style='width:100%; padding:8px; border-radius:8px; border:1px solid #cbd5e1;' type='number' value='1'/>
2316</div>
2317<div class='ps4-row' style='flex-direction:column; align-items:flex-start; gap:5px;'>
2318            Cols (Max 5)
2319            <input id='p4-cols' max='5' min='1' style='width:100%; padding:8px; border-radius:8px; border:1px solid #cbd5e1;' type='number' value='4'/>
2320</div>
2321</div>
2322<div class='ps4-title' style='margin-top:20px;'>
2323<i class='fa-solid fa-download'></i> Export Options
2324        </div>
2325<div style='display:grid; grid-template-columns: 1fr 1fr; gap:10px;'>
2326<button class='ps4-btn ps4-btn-green' onclick='exportPs4("png")'>
2327            Single Photo
2328          </button>
2329<button class='ps4-btn ps4-btn-blue' onclick='exportPs4("pdf")'>
2330            A4 PDF
2331          </button>
2332</div>
2333<!-- Printing Instructions Note -->
2334<div style='margin-top: 15px; padding: 12px; background: #fffbeb; border: 1px dashed #f59e0b; border-radius: 10px; font-size: 11px; color: #92400e; line-height: 1.6; text-align: left;'>
2335<i class='fa-solid fa-circle-info' style='margin-right: 5px; color: #f59e0b;'></i>
2336<strong>Printing Tip:</strong> To maintain the exact photo dimensions
2337          and ensure professional print quality, please select the
2338          <b>"Scale to Fit Media"</b> or
2339          <b>"Fit to printable area"</b> or
2340          <b>"Fit Page"</b> option in your printer settings before
2341          printing the PDF file.
2342        </div>
2343</div>
2344</div>
2345</div>
2346</div>
2347<!-- Images to PDF HTML -->
2348<!-- Images to PDF HTML -->
2349<div class='crop-modal-overlay' id='imgToPdfModal' style='display:none;'>
2350<div class='crop-modal-content'>
2351<span class='close-crop-modal' onclick='closeImgToPdfModal()'>&#215;</span>
2352<div class='cp-box' style='border-radius: 20px; padding: 25px;'>
2353<div class='ip-container'>
2354<h2 style='background: linear-gradient(135deg, #4f46e5, #06b6d4); -webkit-background-clip: text; -webkit-text-fill-color: transparent; margin-bottom:10px; font-size: 24px; font-weight: 800;'>
2355<i class='fa-solid fa-images'></i> Bulk Image to PDF
2356        </h2>
2357<p class='sub' style='margin-bottom:20px; font-size:14px; color:#64748b;'>
2358          Convert multiple images into a professional A4 PDF
2359        </p>
2360<!-- Upload Area -->
2361<div class='cp-upload-area' id='ipDropZone' onclick='document.getElementById("ipFileInput").click()'>
2362<i class='fa-solid fa-cloud-arrow-up' style='font-size: 40px; color: #4f46e5; margin-bottom: 12px;'></i>
2363<p id='ipFileName' style='font-weight:700; margin:0; color:#1e293b;'>
2364            Select or Drag Images
2365          </p>
2366<input accept='image/*' id='ipFileInput' multiple='multiple' style='display:none' type='file'/>
2367</div>
2368<!-- Settings (Orientation Removed) -->
2369<div class='ip-settings'>
2370<div class='ip-setting-item'>
2371<!-- এখ&#2494;ন&#2503; for='ipQuality' য&#2507;গ কর&#2494; হয়&#2503;ছ&#2503; য&#2494; ন&#2495;চ&#2503;র select id এর স&#2494;থ&#2503; ম&#2495;লব&#2503; -->
2372<label for='ipQuality'>Image Quality</label>
2373<select id='ipQuality'>
2374<option value='0.8'>Standard (Optimized)</option>
2375<option value='1.0'>High Quality (Original)</option>
2376<option value='0.5'>Low (Small Size)</option>
2377</select>
2378</div>
2379</div>
2380<!-- Preview Grid -->
2381<div class='ip-preview-grid' id='ipPreviewGrid'>
2382<div style='grid-column: 1/-1; padding: 20px; color: #94a3b8;'>
2383            No images selected yet.
2384          </div>
2385</div>
2386<div class='ip-status' id='ipStatus'>Ready to convert</div>
2387<div class='actionss' style='display:grid; grid-template-columns: 1fr 1fr; gap:10px;'>
2388<button class='conv-btn-main' id='ipConvertBtn' onclick='generateImagesToPdf()' style='margin:0; background:#4f46e5 !important;'>
2389<i class='fa-solid fa-cloud-arrow-down'></i> Save as PDF
2390          </button>
2391<button class='conv-btn-main' onclick='clearIpTool()' style='margin:0; background:#ef4444 !important;'>
2392<i class='fa-solid fa-trash-can'></i> Clear All
2393          </button>
2394</div>
2395</div>
2396</div>
2397</div>
2398</div>
2399<!-- Images to PDF JS -->
2400<script src='https://cdn.jsdelivr.net/gh/fyzalkarimbd-web/scanner@main/imgpdf.js'></script>
2400
2401<!-- Image to Text HTML -->
2402<div class='crop-modal-overlay' id='ocrModal' style='display:none;'>
2403<div class='crop-modal-content'>
2404<span class='close-crop-modal' onclick='closeOcrModal()'>&#215;</span>
2405<div class='cp-box' style='border-radius: 20px; padding: 25px;'>
2406<div class='ocr-ui-container'>
2407<h2 style='background: linear-gradient(135deg, #4f46e5, #06b6d4); -webkit-background-clip: text; -webkit-text-fill-color: transparent; margin-bottom:10px; font-size: 24px; font-weight: 800;'>
2408<i class='fa-solid fa-wand-magic-sparkles'></i> AI Image to Text
2409        </h2>
2410<p class='sub' style='margin-bottom:20px; font-size:14px; color:#64748b;'>
2411          Extract selectable text from any image (Supports Bangla & English)
2412        </p>
2413<!-- Upload Area -->
2414<div class='cp-upload-area' id='ocrDropZone' onclick='document.getElementById("ocrFileInput").click()'>
2415<i class='fa-solid fa-cloud-arrow-up' style='font-size: 40px; color: #4f46e5; margin-bottom: 12px;'></i>
2416<p id='ocrFileName' style='font-weight:700; margin:0; color:#1e293b;'>
2417            Select or Drag Image
2418          </p>
2419<input accept='image/*' id='ocrFileInput' style='display:none' type='file'/>
2420</div>
2421<!-- Progress UI -->
2422<div class='ocr-progress-container' id='ocrProgContainer'>
2423<div class='ocr-status-text' id='ocrStatus'>Ready to scan</div>
2424<div class='ocr-progress-bar' id='ocrProgBar' style='display:block;'>
2425<div class='ocr-progress-fill' id='ocrFill'></div>
2426</div>
2427</div>
2428<!-- Result Box -->
2429<textarea id='ocrTextArea' placeholder='Extracted text will appear here...' readonly='readonly'></textarea>
2430<div class='actions' style='display:grid; grid-template-columns: 1fr 1fr; gap:10px;'>
2431<button class='conv-btn-main' id='ocrStartBtn' onclick='runOcrEngine()' style='margin:0; background:#4f46e5 !important;'>
2432<i class='fa-solid fa-bolt'></i> Start Extraction
2433          </button>
2434<button class='conv-btn-main' id='ocrCopyBtn' onclick='copyExtractedText()' style='margin:0; background:#10b981 !important;'>
2435<i class='fa-solid fa-copy'></i> Copy Text
2436          </button>
2437</div>
2438<p style='font-size:11px; color:#94a3b8; margin-top:15px;'>
2439          * Note: First time loading may take a few seconds to initialize AI.
2440        </p>
2441</div>
2442</div>
2443</div>
2444</div>
2445<!-- Image to Text JS -->
2446<script src='https://cdn.jsdelivr.net/gh/fyzalkarimbd-web/scanner@main/imgtext.js'></script>
2446
2447<!-- Image to Text Tesseract OCR Library -->
2448<script src='https://cdn.jsdelivr.net/npm/tesseract.js@5/dist/tesseract.min.js'></script>
2448
2449<!-- Advanced Document Scanner -->
2450<div class='crop-modal-overlay' id='docProcessorModal' style='display:none;'>
2451<div class='crop-modal-content'>
2452<span class='close-crop-modal' onclick='closeDocProcessorModal()'>&#215;</span>
2453<div class='dp-wrapper'>
2454<div class='dp-header'>
2455<h2><i class='fa-solid fa-file-shield'></i> A4 Document Scanner</h2>
2456</div>
2457<div class='dp-body'>
2458<div class='dp-viewport' id='dpUploadArea' onclick='handleDocBoxClick()'>
2459<canvas id='dpSourceCanvas'></canvas>
2460<div id='dpHint'>
2461<i class='fa-solid fa-cloud-arrow-up' style='font-size:50px; color:#4f46e5;'></i>
2462<p style='font-weight:800; color:#1e293b; margin-top:15px;'>
2463              Click to Import Document
2464            </p>
2465</div>
2466<input accept='image/*' id='dpFileInput' style='display:none' type='file'/>
2467</div>
2468<div class='dp-sidebar'>
2469<div class='dp-card'>
2470<span class='dp-label-row'>Magic Scan Mode</span>
2471<div style='display:grid; grid-template-columns: 1fr 1fr; gap:8px;'>
2472<button class='dp-btn dp-btn-outline' onclick='applyMagicEffect("color")'>
2473                Color scan
2474              </button>
2475<button class='dp-btn dp-btn-outline' onclick='applyMagicEffect("bw")'>
2476                Black white
2477              </button>
2478</div>
2479</div>
2480<div class='dp-card'>
2481<div class='dp-label-row'>
2482              Darken the color<b id='v-dp-sat'>100%</b>
2483</div>
2484<input class='ps4-range' id='dp-sat' max='200' min='0' type='range' value='100'/>
2485<div class='dp-label-row'>
2486              Black color increase<b id='v-dp-ct'>100%</b>
2487</div>
2488<input class='ps4-range' id='dp-ct' max='200' min='0' type='range' value='100'/>
2489</div>
2490<button class='dp-btn dp-btn-blue' onclick='confirmPerspectiveCrop()'>
2491<i class='fa-solid fa-crop-simple'></i> Straighten & Crop
2492          </button>
2493<button class='dp-btn dp-btn-outline' onclick='rotateDocImg()'>
2494<i class='fa-solid fa-rotate'></i> Rotate 90&#176;
2495          </button>
2496<button class='dp-btn dp-btn-red' onclick='fullResetDocProcessor()'>
2497<i class='fa-solid fa-trash-can'></i> Delete & Reset
2498          </button>
2499<div style='margin-top: 15px; border-top: 1px solid #e2e8f0; padding-top: 10px;'>
2500<button class='dp-btn dp-btn-green' onclick='downloadDocResult()'>
2501<i class='fa-solid fa-download'></i> Save JPG
2502            </button>
2503<button class='dp-btn dp-btn-blue' onclick='openDocPrintPreview()'>
2504<i class='fa-solid fa-print'></i> Print A4
2505            </button>
2506</div>
2507</div>
2508</div>
2509</div>
2510</div>
2511</div>
2512<!-- Print Modal -->
2513<div class='dp-print-overlay' id='docPrintModal'>
2514<div class='dp-print-box'>
2515<div class='dp-a4-preview' id='a4Paper'>
2516<div id='dpDraggableWrap' style='position:absolute; cursor:move; border:1px dashed #4f46e5;'>
2517<img alt='Print Preview' id='dpFinalPrintImg' src='' style='width:100%; height:100%; pointer-events:none;'/>
2518</div>
2519</div>
2520<div style='flex:1; min-width:250px; text-align:left;'>
2521<h3 style='margin:0 0 15px; font-weight:900;'>
2522<i class='fa-solid fa-gear'></i> PRINT SETTINGS
2523      </h3>
2524<!-- PRINT SETTINGS এর ভ&#2503;তর&#2503;র গ&#2509;র&#2495;ডট&#2495; এখন এই ক&#2509;ল&#2494;স ব&#2503;বহ&#2494;র করব&#2503; -->
2525<div class='print-input-grid'>
2526<div class='print-field'>
2527          WIDTH (INCH)
2528          <input id='dp-p-w' step='0.1' type='number' value='3.37'/>
2529</div>
2530<div class='print-field'>
2531          HEIGHT (INCH)
2532          <input id='dp-p-h' step='0.1' type='number' value='2.13'/>
2533</div>
2534<div class='print-field'>
2535          TOP MARGIN
2536          <input id='dp-p-t' step='0.1' type='number' value='0.5'/>
2537</div>
2538<div class='print-field'>
2539          LEFT MARGIN
2540          <input id='dp-p-l' step='0.1' type='number' value='0.5'/>
2541</div>
2542</div>
2543<button class='dp-btn dp-btn-blue' onclick='autoFitA4()' style='background:#6366f1 !important;'>
2544        Auto Fit A4
2545      </button>
2546<button class='dp-btn dp-btn-green' onclick='generateDocPDF()'>
2547        Download A4 PDF
2548      </button>
2549<button class='dp-btn dp-btn-outline' onclick='document.getElementById("docPrintModal").style.display="none"'>
2550        Cancel
2551      </button>
2552</div>
2553</div>
2554</div>
2555<!-- Advanced Document Scanner -->
2556<script src='https://cdn.jsdelivr.net/gh/fyzalkarimbd-web/scanner@main/docscanner.js'></script>
2556
2557<!-- Joint Photo Maker Modal -->
2558<div class='crop-modal-overlay' id='jointProModal' style='display:none;'>
2559<div class='crop-modal-content joint-pro-modal-width'>
2560<span class='close-crop-modal' onclick='closeJointProModal()'>&#215;</span>
2561<div class='cp-box joint-pro-main-box'>
2562<h2 class='joint-pro-title'>
2563<i class='fa-solid fa-id-card-clip'></i> Professional Joint Photo Maker
2564      </h2>
2565<div class='joint-pro-layout'>
2566<!-- Left Controls -->
2567<div class='dp-card joint-ctrl-card'>
2568<span class='dp-label-row ctrl-label-header'>L PERSON CONTROLS</span>
2569<div class='ps4-row'>Brightness <b id='v-jBrL'>100%</b></div>
2570<input class='ps4-range' id='jBrL' max='200' min='0' type='range' value='100'/>
2571<div class='ps4-row'>Contrast <b id='v-jCtL'>100%</b></div>
2572<input class='ps4-range' id='jCtL' max='200' min='0' type='range' value='100'/>
2573<div class='ps4-row'>Saturation <b id='v-jStL'>100%</b></div>
2574<input class='ps4-range' id='jStL' max='200' min='0' type='range' value='100'/>
2575<div class='ctrl-divider'></div>
2576<button class='dp-btn dp-btn-outline' onclick='rotateJoint("L")'>
2577<i class='fa-solid fa-rotate-right'></i> Rotate Photo
2578          </button>
2579<div class='ps4-row'>
2580            Straighten Photo 180&#176; <b id='v-jStraightenL'>0&#176;</b>
2581</div>
2582<input class='ps4-range' id='jStraightenL' max='180' min='-180' step='1' type='range' value='0'/>
2583<button class='dp-btn dp-btn-outline' onclick='flipJoint("L")'>
2584<i class='fa-solid fa-arrows-left-right'></i> Flip Photo
2585          </button>
2586<div class='ps4-row mt-10'>Photo Zoom <b id='v-jZoomL'>1.0x</b></div>
2587<input class='ps4-range' id='jZoomL' max='3' min='0.1' step='0.01' type='range' value='1'/>
2588<button class='dp-btn dp-btn-red' id='jAiBtnL' onclick='removeJointBg("L")'>
2589<i class='fa-solid fa-wand-sparkles'></i>
2589 AI Remove Background
2590          </button>
2591<button class='dp-btn dp-btn-delete' onclick='deleteJointImage("L")'>
2592<i class='fa-solid fa-trash-can'></i> Delete Photo
2593          </button>
2594</div>
2595<!-- Middle Canvas Area -->
2596<div class='joint-canvas-container'>
2597<div class='canvas-upload-box' id='jCanvasWrapper' onclick='handleJCanvasClick(event)'>
2598<canvas id='jointProCanvas'></canvas>
2599<div class='joint-hint-box hint-left' id='jHintL'>
2600<i class='fa-solid fa-cloud-arrow-up'></i>
2601<span>Add 1st Photo</span>
2602</div>
2603<div class='joint-hint-box hint-right' id='jHintR'>
2604<i class='fa-solid fa-cloud-arrow-up'></i>
2605<span>Add 2nd Photo</span>
2606</div>
2607</div>
2608<p class='joint-info-text'>
2609            Click on each side to upload. Drag to adjust position.
2610          </p>
2611<div class='dp-card joint-option-card'>
2612<div class='joint-option-grid'>
2613<div class='text-left'>
2614<div class='ps4-row joint-opt-label'>
2615                  PHOTO BORDER <b id='v-jBorder'>0px</b>
2616</div>
2617<input class='ps4-range' id='jBorder' max='4' min='0' step='1' type='range' value='0'/>
2618</div>
2619<div class='text-left'>
2620<div class='ps4-row joint-opt-label'>Background Colour</div>
2621<div class='joint-color-palette'>
2622<div class='color-swatch-item bg-white' onclick='setGlobalJBG("#ffffff")'></div>
2623<div class='color-swatch-item bg-r-blue' onclick='setGlobalJBG("#3b82f6")'></div>
2624<div class='color-swatch-item bg-s-blue' onclick='setGlobalJBG("#0ea5e9")'></div>
2625<div class='color-swatch-item bg-grey' onclick='setGlobalJBG("#94a3b8")'></div>
2626<input class='joint-color-picker' id='jBgPicker' oninput='setGlobalJBG(this.value)' type='color' value='#ffffff'/>
2627</div>
2628</div>
2629</div>
2630</div>
2631<input accept='image/*' id='jInputL' style='display:none' type='file'/>
2632<input accept='image/*' id='jInputR' style='display:none' type='file'/>
2633</div>
2634<!-- Right Controls -->
2635<div class='dp-card joint-ctrl-card'>
2636<span class='dp-label-row ctrl-label-header'>R PERSON CONTROLS</span>
2637<div class='ps4-row'>Brightness <b id='v-jBrR'>100%</b></div>
2638<input class='ps4-range' id='jBrR' max='200' min='0' type='range' value='100'/>
2639<div class='ps4-row'>Contrast <b id='v-jCtR'>100%</b></div>
2640<input class='ps4-range' id='jCtR' max='200' min='0' type='range' value='100'/>
2641<div class='ps4-row'>Saturation <b id='v-jStR'>100%</b></div>
2642<input class='ps4-range' id='jStR' max='200' min='0' type='range' value='100'/>
2643<div class='ctrl-divider'></div>
2644<button class='dp-btn dp-btn-outline' onclick='rotateJoint("R")'>
2645<i class='fa-solid fa-rotate-right'></i> Rotate Photo
2646          </button>
2647<div class='ps4-row'>
2648            Straighten Photo 180&#176; <b id='v-jStraightenR'>0&#176;</b>
2649</div>
2650<input class='ps4-range' id='jStraightenR' max='180' min='-180' step='1' type='range' value='0'/>
2651<button class='dp-btn dp-btn-outline' onclick='flipJoint("R")'>
2652<i class='fa-solid fa-arrows-left-right'></i> Flip Photo
2653          </button>
2654<div class='ps4-row mt-10'>Photo Zoom <b id='v-jZoomR'>1.0x</b></div>
2655<input class='ps4-range' id='jZoomR' max='3' min='0.1' step='0.01' type='range' value='1'/>
2656<button class='dp-btn dp-btn-red' id='jAiBtnR' onclick='removeJointBg("R")'>
2657<i class='fa-solid fa-wand-sparkles'></i>
2657 AI Remove Background
2658          </button>
2659<button class='dp-btn dp-btn-delete' onclick='deleteJointImage("R")'>
2660<i class='fa-solid fa-trash-can'></i> Delete Photo
2661          </button>
2662</div>
2663</div>
2664<!-- PDF Layout Settings -->
2665<div class='joint-layout-settings'>
2666<div class='layout-inputs'>
2667<span class='dp-label-row layout-header'>A4 PRINT LAYOUT (ROWS & COLS)</span>
2668<div class='layout-ctrl-flex'>
2669<div class='layout-box'>
2670<label for='jRows'>Rows (Max 7)</label>
2671<div class='stepper-btn-group'>
2672<button class='step-btn' onclick='adjustJLayout("jRows", -1)' type='button'>
2673                  -
2674                </button>
2675<input id='jRows' readonly='readonly' type='text' value='1'/>
2676<button class='step-btn' onclick='adjustJLayout("jRows", 1)' type='button'>
2677                  +
2678                </button>
2679</div>
2680</div>
2681<div class='layout-box'>
2682<label for='jCols'>Cols (Max 4)</label>
2683<div class='stepper-btn-group'>
2684<button class='step-btn' onclick='adjustJLayout("jCols", -1)' type='button'>
2685                  -
2686                </button>
2687<input id='jCols' readonly='readonly' type='text' value='4'/>
2688<button class='step-btn' onclick='adjustJLayout("jCols", 1)' type='button'>
2689                  +
2690                </button>
2691</div>
2692</div>
2693</div>
2694<!-- Printing Instructions Note -->
2695<div style='margin-top: 15px; padding: 12px; background: #fffbeb; border: 1px dashed #f59e0b; border-radius: 10px; font-size: 11px; color: #92400e; line-height: 1.6; text-align: left;'>
2696<i class='fa-solid fa-circle-info' style='margin-right: 5px; color: #f59e0b;'></i>
2697<strong>Printing Tip:</strong> To maintain the exact photo
2698            dimensions and ensure professional print quality, please select the
2699            <b>"Scale to Fit Media"</b> or
2700            <b>"Fit to printable area"</b> or
2701            <b>"Fit Page"</b> option in your printer settings before
2702            printing the PDF file.
2703          </div>
2704</div>
2705<div class='joint-action-btns'>
2706<button class='dp-btn dp-btn-green' onclick='downloadJointPro("jpg")'>
2707<i class='fa-solid fa-image'></i> Save Single JPG
2708          </button>
2709<button class='dp-btn dp-btn-blue' onclick='downloadJointPro("pdf")'>
2710<i class='fa-solid fa-file-pdf'></i> Save A4 PDF
2711          </button>
2712<button class='dp-btn' onclick='downloadJointPro("print")' style='background:#ffddc8'>
2713<i class='fa-solid fa-print'></i> Direct Print
2714          </button>
2715</div>
2716</div>
2717</div>
2718</div>
2719</div>
2720<!-- Date to Words Modal -->
2721<div class='crop-modal-overlay' id='dateProModal' style='display:none;'>
2722<div class='crop-modal-content dt-pro-width'>
2723<span class='close-crop-modal' onclick='closeDateProModal()'>&#215;</span>
2724<div class='cp-box dt-pro-container' id='dtMainContainer'>
2725<h2 class='dt-pro-title'>
2726<i class='fa-solid fa-file-signature'></i>
2727<span id='dt-title'>Date to Words Converter</span>
2728</h2>
2729<!-- Language Switcher -->
2730<div class='dt-lang-switch'>
2731<button class='dt-tab active' id='dt-tab-en' onclick='switchDtLang("en")'>
2732          English
2733        </button>
2734<button class='dt-tab' id='dt-tab-bn' onclick='switchDtLang("bn")'>
2735          ব&#2494;&#2434;ল&#2494;
2736        </button>
2737</div>
2738<div class='dp-card dt-input-card'>
2739<label for='dtInput' id='dt-label'>ENTER DATE (DAY/MONTH/YEAR):</label>
2740<div class='dt-input-group'>
2741<input id='dtInput' maxlength='10' oninput='formatDtInput(this)' placeholder='DD/MM/YYYY' type='text'/>
2742<button class='dp-btn dp-btn-blue' id='dtConvertBtn' onclick='processDtConvert()'>
2743            Convert
2744          </button>
2745</div>
2746</div>
2747<!-- Result Box -->
2748<div id='dtResultBox' style='display:none;'>
2749<div class='dt-result-inner'>
2750<span id='dt-res-label'>RESULT:</span>
2751<div id='dtResultText'></div>
2752<button class='dp-btn dp-btn-green' id='dtCopyBtn' onclick='copyDtResult()'>
2753<i class='fa-solid fa-copy'></i>
2754<span id='dt-copy-txt'>Copy Text</span>
2755</button>
2756</div>
2757</div>
2758<div class='dt-info-box'>
2759<i class='fa-solid fa-circle-info'></i>
2760<span id='dt-tip'><b>Tip:</b> Auto-formats as you type (e.g. 31121991).</span>
2761</div>
2762</div>
2763</div>
2764</div>
2765<!-- Date to Words Converter Logic from GitHub via JSDelivr -->
2766<script src='https://cdn.jsdelivr.net/gh/fyzalkarimbd-web/scanner@main/dt.js'></script>
2766
2767<!-- Bangla to Banglish Converter -->
2768<style>
2769  .banglish-modal-width{max-width:1200px!important;width:95%!important}.banglish-container{border:1px solid #4f46e5;border-radius:20px;padding:25px}@media (max-width:480px){.banglish-container{padding:15px}#banglishOutput{font-size:15px}}
2770</style>
2771<div class='crop-modal-overlay' id='banglishModal' style='display:none;'>
2772<div class='crop-modal-content banglish-modal-width'>
2773<span class='close-crop-modal' onclick='closeBanglishModal()'>&#215;</span>
2774<div class='cp-box banglish-container'>
2775<h2 class='dt-pro-title'>
2776<i class='fa-solid fa-comments'></i> Bangla to Banglish
2777      </h2>
2778<p class='sub' style='text-align:center; font-size:13px; margin-bottom:15px;'>
2779        Convert Bangla text to English Phonetic (Banglish) instantly.
2780      </p>
2781<!-- Input Area -->
2782<div class='dp-card' style='padding:15px; border-radius:12px; background:#f9fafb;'>
2783<label for='bnInput' style='font-size:11px; font-weight:800; color:#4f46e5; display:block; margin-bottom:8px;'>TYPE BANGLA HERE:</label>
2784<textarea id='bnInput' oninput='convertToBanglish()' placeholder='আমার সোনার বাংলা...' style='width:100%; height:100px; padding:12px; border:1px solid #cbd5e1; border-radius:10px; font-size:16px; outline:none; resize:none; font-family:"SolaimanLipi", sans-serif;'></textarea>
2785</div>
2786<!-- Output Area -->
2787<div id='banglishResBox' style='margin-top:20px;'>
2788<div style='background:#fff; border:2px solid #4f46e5; padding:15px; border-radius:12px; box-shadow:0 4px 12px rgba(0,0,0,0.05);'>
2789<label for='banglishOutput' style='font-size:10px; font-weight:800; color:#94a3b8; display:block; margin-bottom:5px;'>BANGLISH RESULT:</label>
2790<div id='banglishOutput' style='font-size:17px; font-weight:700; color:#1e293b; min-height:40px; line-height:1.5; word-wrap:break-word; margin-bottom:15px;'>
2791            Your result will appear here...
2792          </div>
2793<button class='dp-btn dp-btn-green' id='btnCopyBanglish' onclick='copyBanglishText()' style='width:100%; background:#059669 !important; height:45px;'>
2794<i class='fa-solid fa-copy'></i>
2795<span id='txtCopyBn'>Copy Banglish</span>
2796</button>
2797</div>
2798</div>
2799<div class='dt-info-box' style='margin-top:15px;'>
2800<i class='fa-solid fa-circle-info'></i>
2801<b>Tip:</b> High-speed real-time conversion. Perfect for social media
2802        messages.
2803      </div>
2804</div>
2805</div>
2806</div>
2807<!-- Bangla to Banglish Converter -->
2808<script src='https://cdn.jsdelivr.net/gh/fyzalkarimbd-web/scanner@main/banglish.js'></script>
2808
2809<!-- Signature Background Remover -->
2810<div class='crop-modal-overlay' id='sigRemoverModal' style='display:none;'>
2811<div class='crop-modal-content sig-modal-width'>
2812<span class='close-crop-modal' onclick='closeSigRemoverModal()'>&#215;</span>
2813<div class='cp-box sig-pro-container'>
2814<h2 class='dt-pro-title'>
2815<i class='fa-solid fa-wand-magic-sparkles'></i> Signature Background
2816        Remover
2817      </h2>
2818<div class='sig-main-layout'>
2819<div class='dp-card sig-ctrl-panel'>
2820<span class='dp-label-row ctrl-header'>ADJUSTMENTS</span>
2821<div class='ps4-row'>Threshold <b id='v-sigThreshold'>150</b></div>
2822<input class='ps4-range sig-range' id='sigThreshold' max='255' min='0' type='range' value='150'/>
2823<div class='ps4-row'>Edge Smoothing <b id='v-sigSmooth'>0</b></div>
2824<input class='ps4-range sig-range' id='sigSmooth' max='10' min='0' type='range' value='0'/>
2825<div class='ctrl-divider'></div>
2826<span class='dp-label-row ctrl-header'>Signature Color Select</span>
2827<div class='sig-color-palette'>
2828<div class='sig-color-item active' onclick='setInkColor("original", this)' style='background: linear-gradient(45deg, #ff0000, #00ff00, #0000ff);' title='Original Color'></div>
2829<div class='sig-color-item' onclick='setInkColor("#000000", this)' style='background:#000;' title='Black'></div>
2830<div class='sig-color-item' onclick='setInkColor("#0000FF", this)' style='background:#0000FF;' title='Blue'></div>
2831<div class='sig-color-item' onclick='setInkColor("#FF0000", this)' style='background:#FF0000;' title='Red'></div>
2832<div class='sig-color-item' onclick='setInkColor("#008000", this)' style='background:#008000;' title='Green'></div>
2833<div class='sig-color-item' onclick='setInkColor("#000080", this)' style='background:#000080;' title='Navy'></div>
2834<input class='sig-color-picker' id='sigCustomInk' oninput='setInkColor(this.value, this)' type='color' value='#ffffff'/>
2835</div>
2836<div class='sig-btn-grid'>
2837<button class='dp-btn dp-btn-outline' id='sigCropBtn' onclick='toggleSigCrop()'>
2838<i class='fa-solid fa-crop-simple'></i> Crop Image
2839            </button>
2840</div>
2841<div style='margin-top:15px; background: #fff; padding: 10px; border-radius: 10px; border: 1px solid #e2e8f0;'>
2842<span class='dp-label-row' style='font-size: 10px; color:#4f46e5; margin-bottom:5px;'>MANUAL ERASER</span>
2843<div style='display: flex; gap: 10px; align-items: center;'>
2844<button class='dp-btn dp-btn-outline' id='sigEraserBtn' onclick='toggleSigEraser()' style='flex:1; margin:0; font-size:11px;'>
2845<i class='fa-solid fa-eraser'></i> Eraser
2846              </button>
2847<div style='flex:1.5;'>
2848<div class='ps4-row' style='font-size: 9px !important; margin:0;'>
2849                  Size: <b id='v-sigEraserSize'>20</b>
2850</div>
2851<input class='ps4-range' id='sigEraserSize' max='100' min='5' type='range' value='20'/>
2852</div>
2853</div>
2854</div>
2855<button class='dp-btn dp-btn-red' onclick='resetSigTool()' style='width:100%; margin-top:15px; background:#ef4444 !important;'>
2856<i class='fa-solid fa-trash-can'></i> Delete Image
2857          </button>
2858</div>
2859<div class='sig-preview-panel'>
2860<div class='canvas-upload-box' id='sigUploadArea'>
2861<canvas id='sigCanvas' style='display:none; transition: transform 0.05s linear; transform-origin: center;'></canvas>
2862<canvas id='sigSourceCanvas' style='display:none;'></canvas>
2863<!-- Hidden Buffer -->
2864<div class='eraser-circle' id='eraserCursor'></div>
2865<div class='sig-crop-frame' id='sigCropBox'>
2866<div class='s-handle s-tl' onmousedown='initSigResize(event, "tl")' ontouchstart='initSigResize(event, "tl")'></div>
2867<div class='s-handle s-tr' onmousedown='initSigResize(event, "tr")' ontouchstart='initSigResize(event, "tr")'></div>
2868<div class='s-handle s-bl' onmousedown='initSigResize(event, "bl")' ontouchstart='initSigResize(event, "bl")'></div>
2869<div class='s-handle s-br' onmousedown='initSigResize(event, "br")' ontouchstart='initSigResize(event, "br")'></div>
2870</div>
2871<div id='sigPlaceholder' onclick='document.getElementById("sigInput").click()'>
2872<i class='fa-solid fa-cloud-arrow-up' style='font-size:40px; color: #4f46e5; margin-bottom:10px;'></i>
2873<p style='font-weight:800; font-size:14px; color:#94a3b8;'>
2874                Click to Upload Signature
2875              </p>
2876</div>
2877</div>
2878<div id='sigZoomWrapper' style='display:none; justify-content:center; align-items:center; gap:15px; margin-top:10px;'>
2879<button class='step-btn' onclick='changeSigZoom(-0.2)' style='background:#f1f5f9; border-color:#cbd5e1;'>
2880              -
2881            </button>
2882<span style='font-size:12px; font-weight:800; color:#4f46e5;'>Zoom: <b id='v-sigZoom'>100%</b></span>
2883<button class='step-btn' onclick='changeSigZoom(0.2)' style='background:#f1f5f9; border-color:#cbd5e1;'>
2884              +
2885            </button>
2886</div>
2887<div id='sigCropControls' style='display:none; margin-top:10px; gap:10px; justify-content:center;'>
2888<button class='dp-btn dp-btn-blue' onclick='applySigCrop()' style='padding:8px 20px;'>
2889              Apply Crop
2890            </button>
2891<button class='dp-btn dp-btn-outline' onclick='toggleSigCrop()' style='padding:8px 20px;'>
2892              Cancel
2893            </button>
2894</div>
2895</div>
2896<div class='sig-download-wrapper'>
2897<div class='joint-action-btns' style='margin-top:0;'>
2898<button class='dp-btn dp-btn-green' onclick='downloadSignature()' style='width:100%;'>
2899<i class='fa-solid fa-download'></i> Save Signature PNG
2900            </button>
2901</div>
2902</div>
2903</div>
2904<input accept='image/*' id='sigInput' style='display:none' type='file'/>
2905</div>
2906</div>
2907</div>
2908<!-- Custom Signature BG Remover Logic from GitHub via JSDelivr -->
2909<script src='https://cdn.jsdelivr.net/gh/fyzalkarimbd-web/scanner@main/sig-remover.js'></script>
2909
2910<!-- Smart Business Card Generator-->
2911<div class='crop-modal-overlay' id='bizCardModal' style='display:none;'>
2912<div class='crop-modal-content biz-modal-width'>
2913<span class='close-crop-modal' onclick='closeBizCardModal()'>&#215;</span>
2914<div class='cp-box biz-pro-container'>
2915<h2 class='dt-pro-title'>
2916<i class='fa-solid fa-id-badge'></i> Smart Business Card Pro
2917      </h2>
2918<div class='biz-main-layout'>
2919<!-- Left Side: Data Entry Only -->
2920<div class='dp-card biz-input-panel'>
2921<div class='biz-logo-upload-wrap' onclick='document.getElementById("bizLogoInput").click()'>
2922<i class='fa-solid fa-cloud-arrow-up'></i>
2923<span>Upload Brand Logo</span>
2924<input accept='image/*' id='bizLogoInput' onchange='loadBizLogo(this)' style='display:none' type='file'/>
2925</div>
2926<input accept='image/*' id='jInputL' style='display:none' type='file'/>
2927<input accept='image/*' id='jInputR' style='display:none' type='file'/>
2928<div class='ctrl-divider'></div>
2929<span class='dp-label-row ctrl-header'>CARD INFORMATION & COLORS</span>
2930<div class='biz-input-grid'>
2931<div class='biz-row-flex'>
2932<input id='bizName' oninput='updateBizPreview()' placeholder='Full Name' type='text' value='MD. FYZAL KARIM'/><input id='clrName' oninput='updateBizPreview()' type='color' value='#1e293b'/>
2933</div>
2934<div class='biz-row-flex'>
2935<input id='bizTitle' oninput='updateBizPreview()' placeholder='Job Title' type='text' value='Graphic Designer'/><input id='clrTitle' oninput='updateBizPreview()' type='color' value='#4f46e5'/>
2936</div>
2937<div class='biz-row-flex'>
2938<input id='bizCompany' oninput='updateBizPreview()' placeholder='Company Name' type='text' value='ID Scanner Pro'/><input id='clrCompany' oninput='updateBizPreview()' type='color' value='#1e293b'/>
2939</div>
2940<div class='biz-row-flex'>
2941<input id='bizDesc' oninput='updateBizPreview()' placeholder='Short Description' type='text' value='Professional Digital Studio Solutions'/><input id='clrDesc' oninput='updateBizPreview()' type='color' value='#64748b'/>
2942</div>
2943<div class='biz-row-flex'>
2944<input id='bizPhone' oninput='updateBizPreview()' placeholder='Phone' type='text' value='+880 1834 030544'/><input id='clrPhone' oninput='updateBizPreview()' type='color' value='#64748b'/>
2945</div>
2946<div class='biz-row-flex'>
2947<input id='bizEmail' oninput='updateBizPreview()' placeholder='Email' type='text' value='[email protected]'/><input id='clrEmail' oninput='updateBizPreview()' type='color' value='#64748b'/>
2948</div>
2949<div class='biz-row-flex'>
2950<input id='bizWeb' oninput='updateBizPreview()' placeholder='Website' type='text' value='www.idcardscannerpro.com'/><input id='clrWeb' oninput='updateBizPreview()' type='color' value='#64748b'/>
2951</div>
2952<div class='biz-row-flex'>
2953<input id='bizAddress' oninput='updateBizPreview()' placeholder='Address' type='text' value='Comilla, Bangladesh'/><input id='clrAddr' oninput='updateBizPreview()' type='color' value='#64748b'/>
2954</div>
2955</div>
2956</div>
2957<div class='biz-preview-panel'>
2958<div class='biz-card-outer'>
2959<div class='biz-card-wrapper' id='bizCardExport'>
2960<div class='business-card temp-1' id='bizCardBody'>
2961<!-- Content via JS -->
2962</div>
2963</div>
2964</div>
2965<div style='margin-top:20px; text-align:left;'>
2966<span class='dp-label-row ctrl-header' style='margin-bottom:10px;'>SELECT DESIGN TEMPLATE</span>
2967<div class='biz-temp-grid'>
2968<div class='temp-sel active' onclick='setBizTemp(1, this)'>
2969                Modern
2970              </div>
2971<div class='temp-sel' onclick='setBizTemp(2, this)'>Classic</div>
2972<div class='temp-sel' onclick='setBizTemp(3, this)'>Creative</div>
2973<div class='temp-sel' onclick='setBizTemp(4, this)'>Minimal</div>
2974</div>
2975</div>
2976<div class='biz-action-grid'>
2977<button class='dp-btn' onclick='downloadBizCard("png")' style='background:#059669'>
2978<i class='fa-solid fa-image'></i> Save as PNG
2979            </button>
2980<button class='dp-btn' onclick='downloadBizCard("jpg")' style='background:#7c3aed'>
2981<i class='fa-solid fa-file-image'></i> Save as JPG
2982            </button>
2983<button class='dp-btn' onclick='downloadBizCard("pdf")' style='background:#ea580c'>
2984<i class='fa-solid fa-file-pdf'></i> Save as PDF
2985            </button>
2986</div>
2987</div>
2988</div>
2989</div>
2990</div>
2991</div>
2992<!-- Business Card Library (External) -->
2993<script src='https://cdnjs.cloudflare.com/ajax/libs/html2canvas/1.4.1/html2canvas.min.js'></script>
2993
2994<!-- Custom Business Card Logic from GitHub via JSDelivr -->
2995<script src='https://cdn.jsdelivr.net/gh/fyzalkarimbd-web/scanner@main/biz-card.js'></script>
2995
2996<!-- QR Code Generator -->
2997<div class='crop-modal-overlay' id='qrModal' style='display:none;'>
2998<div class='crop-modal-content qrg-modal-width'>
2999<span class='close-crop-modal' onclick='closeQrModal()'>&#215;</span>
3000<div class='cp-box qrg-main-container'>
3001<h2 class='qrg-title'>
3002<i class='fa-solid fa-qrcode'></i> Pro QR Generator
3003      </h2>
3004<!-- Category Tabs -->
3005<div class='qrg-tabs-wrapper'>
3006<button class='qrg-tab active' id='tab-url' onclick='switchQrType("url", this)'>
3007          URL
3008        </button>
3009<button class='qrg-tab' id='tab-text' onclick='switchQrType("text", this)'>
3010          TEXT
3011        </button>
3012<button class='qrg-tab' id='tab-wifi' onclick='switchQrType("wifi", this)'>
3013          WIFI
3014        </button>
3015<button class='qrg-tab' id='tab-email' onclick='switchQrType("email", this)'>
3016          EMAIL
3017        </button>
3018</div>
3019<div class='qrg-input-section'>
3020<!-- Input Groups -->
3021<div class='qrg-card' id='qrInputFields'>
3022<div id='qr-url-group'>
3023<label class='qrg-label' for='qrInputUrl'>WEBSITE URL</label>
3024<input class='qrg-input' id='qrInputUrl' oninput='generateAdvancedQR()' placeholder='https://example.com' type='text'/>
3025</div>
3026<div id='qr-text-group' style='display:none;'>
3027<label class='qrg-label' for='qrInputText'>WRITE TEXT</label>
3028<textarea class='qrg-textarea' id='qrInputText' oninput='generateAdvancedQR()' placeholder='Type your message here...'></textarea>
3029</div>
3030<div id='qr-wifi-group' style='display:none;'>
3031<div class='qrg-grid-2'>
3032<div class='qrg-field'>
3033<label class='qrg-label' for='qrWifiName'>WIFI NAME (SSID)</label>
3034<input class='qrg-input' id='qrWifiName' oninput='generateAdvancedQR()' placeholder='Network Name' type='text'/>
3035</div>
3036<div class='qrg-field'>
3037<label class='qrg-label' for='qrWifiPass'>PASSWORD</label>
3038<input class='qrg-input' id='qrWifiPass' oninput='generateAdvancedQR()' placeholder='WiFi Password' type='text'/>
3039</div>
3040</div>
3041</div>
3042<div id='qr-email-group' style='display:none;'>
3043<div class='qrg-grid-2'>
3044<div class='qrg-field'>
3045<label class='qrg-label' for='qrEmailTo'>EMAIL ADDRESS</label>
3046<input class='qrg-input' id='qrEmailTo' oninput='generateAdvancedQR()' placeholder='[email protected]' type='email'/>
3047</div>
3048<div class='qrg-field'>
3049<label class='qrg-label' for='qrEmailSub'>SUBJECT</label>
3050<input class='qrg-input' id='qrEmailSub' oninput='generateAdvancedQR()' placeholder='Subject' type='text'/>
3051</div>
3052</div>
3053</div>
3054</div>
3055<!-- Customization Controls -->
3056<div class='qrg-settings-grid'>
3057<div class='qrg-setting-item'>
3058<label class='qrg-label' for='qrColorFG'>FOREGROUND COLOR</label>
3059<input class='qrg-color-picker' id='qrColorFG' oninput='generateAdvancedQR()' type='color' value='#000000'/>
3060</div>
3061<div class='qrg-setting-item'>
3062<label class='qrg-label' for='qrColorBG'>BACKGROUND COLOR</label>
3063<input class='qrg-color-picker' id='qrColorBG' oninput='generateAdvancedQR()' type='color' value='#ffffff'/>
3064</div>
3065</div>
3066<div class='qrg-toggle-box'>
3067<input id='socialCardToggle' onchange='generateAdvancedQR()' type='checkbox'/>
3068<label for='socialCardToggle'>Use Social Card Template</label>
3069</div>
3070</div>
3071<!-- Preview Area -->
3072<div class='qrg-preview-wrapper' id='qrExportWrapper'>
3073<div class='qrg-final-layout' id='qrFinalLayout'>
3074<div id='qrcodeCanvas'></div>
3075<div id='socialText'>SCAN TO CONNECT</div>
3076</div>
3077</div>
3078<!-- Actions -->
3079<div class='qrg-action-btns'>
3080<button class='qrg-btn qrg-btn-save' onclick='downloadAdvancedQR()'>
3081<i class='fa-solid fa-download'></i> Save PNG
3082        </button>
3083<button class='qrg-btn qrg-btn-reset' onclick='resetQR()'>
3084<i class='fa-solid fa-trash-can'></i> Reset
3085        </button>
3086</div>
3087</div>
3088</div>
3089</div>
3090<!-- AI Passport Tool HTML -->
3091<div class='crop-modal-overlay' id='aiPassportModal' style='display:none;'>
3092<div class='crop-modal-content' style='max-width: 580px;'>
3093<span class='close-crop-modal' onclick='closeAiPassportModal()'>&#215;</span>
3094<div class='cp-box' style='border: 2px solid #4f46e5; border-radius: 24px; padding: 25px; background: #fff;'>
3095<!-- Language Tabs -->
3096<div class='ai-tabs-box'>
3097<button class='qrg-tab active' id='ai-tab-en' onclick='switchAiLang("en")'>
3098          English
3099        </button>
3100<button class='qrg-tab' id='ai-tab-bn' onclick='switchAiLang("bn")'>
3101          ব&#2494;&#2434;ল&#2494;
3102        </button>
3103</div>
3104<h2 id='ai-title' style='background: linear-gradient(135deg, #4f46e5, #06b6d4); -webkit-background-clip: text; -webkit-text-fill-color: transparent; text-align: center; margin-bottom: 10px; font-size: 28px;'>
3105<i class='fa-solid fa-robot'></i> AI Passport Image Lab
3106      </h2>
3107<p id='ai-sub' style='font-size: 18px; color: #64748b; margin-bottom: 20px; text-align: center;'>
3108        Click a card to auto-copy the prompt and open Google AI Studio
3109        instantly.
3110      </p>
3111<div class='ai-card-grid'>
3112<div class='ai-option-card' onclick='processAiPassport("male")'>
3113<div class='ai-icon-large'>
3114<i class='fa-solid fa-user-tie' style='color: #1e40af;'></i>
3115</div>
3116<div class='ai-card-content'>
3117<strong id='txt-male'>Male Passport Photo</strong>
3118<span id='sub-male'>Clean skin, sharp suit, white background</span>
3119</div>
3120</div>
3121<div class='ai-option-card' onclick='processAiPassport("female")'>
3122<div class='ai-icon-large'>
3123<i class='fa-solid fa-user-large' style='color: #be185d;'></i>
3124</div>
3125<div class='ai-card-content'>
3126<strong id='txt-female'>Female Passport Photo</strong>
3127<span id='sub-female'>Both ears visible, balanced lighting</span>
3128</div>
3129</div>
3130<div class='ai-option-card' onclick='processAiPassport("hijab")'>
3131<div class='ai-icon-large'>
3132<i class='fa-solid fa-user-nurse' style='color: #059669;'></i>
3133</div>
3134<div class='ai-card-content'>
3135<strong id='txt-hijab'>Hijab Passport Photo</strong>
3136<span id='sub-hijab'>For hijab-wearing subjects, white background</span>
3137</div>
3138</div>
3139</div>
3140<!-- Demo buttons will be injected here by script -->
3141<div class='ai-demo-btn-group' id='demo-btn-container'></div>
3142<div id='ai-instruction-box' style='margin-top: 25px; background: #f8fafc; padding: 20px; border-radius: 15px; border: 1px solid #e2e8f0; text-align: left;'>
3143<strong id='ins-head' style='font-size: 15px; color: #1e293b; display: block; margin-bottom: 10px; border-bottom: 1px solid #e2e8f0; padding-bottom: 5px;'>Quick Guide:</strong>
3144<p id='ins-body' style='font-size: 15px; color: #4b5563; margin: 0; line-height: 1.8;'></p>
3145</div>
3146</div>
3147</div>
3148</div>
3149<div class='ai-demo-overlay' id='aiDemoBox1' style='display:none;'>
3150<div class='ai-demo-content'>
3151<div class='close-ai-demo' onclick='window.hideAiDemo(1)' title='Close'>
3152<i class='fa-solid fa-xmark'></i>
3153</div>
3154<img src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpBWlraTEHjB_J4uGh_m3v4GNR2sohFFwzTn6O78pFbqhdoz4UP6x_stZhXurMMTPW8h-zGAKJBULBxVvFQT2StbUqwGahe-6m-tn5WlstqkMj7dgTN5WikrcFf9SXwKBRn4G9J97rYjTf24ulEgaaTzCyRfu-ZnYlT_DaajjPYuQisremvV7wXQZP3Sk/s1600/googleaistudio.webp'/>
3155</div>
3156</div>
3157<div class='ai-demo-overlay' id='aiDemoBox2' style='display:none;'>
3158<div class='ai-demo-content'>
3159<div class='close-ai-demo' onclick='window.hideAiDemo(2)' title='Close'>
3160<i class='fa-solid fa-xmark'></i>
3161</div>
3162<img src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirlcAgN7Oyowh-AwUlT60QcHz495_8Jbou3LcdqKND29VHnraregDFs5lMQRWhEhSRjkUSx13TzGHTC_dL9axNBnAh-M22U2X5zmHh7Z6Frs6FbpOnmRuD32w8ntOA6vHpTH1V2r77cVCVoTDf2hZ9At-svIj93Uc6EPtPOrZOnOvX6SopBGsEZb_5jwc/s1600/passport-photo-lab.webp'/>
3163</div>
3164</div>
3165<!-- AI Passport Tool HTML END -->
3166<!-- English to Bengali Phonetic Modal -->
3167<div class='crop-modal-overlay' id='bnConverterModal' style='display:none;'>
3168<div class='crop-modal-content' style='max-width: 600px;'>
3169<span class='close-crop-modal' onclick='closeBnConverterModal()'>&#215;</span>
3170<div class='bn-modal-body'>
3171<h2 class='bn-title'>
3172<i class='fa-solid fa-font' style='color: #0abb00;'></i> Phonetic
3173        Converter
3174      </h2>
3175<div style='text-align:left;'>
3176<label for='bn-input' style='font-size:12px; font-weight:700; color:#6366f1;'>TYPE IN ENGLISH</label>
3177<textarea class='bn-textarea' id='bn-input' oninput='processPhonetic()' placeholder='Type: mango, apple, banana...'></textarea>
3178<label for='bn-output' style='font-size:12px; font-weight:700; color:#25D366;'>BENGALI PRONUNCIATION</label>
3179<textarea class='bn-textarea' id='bn-output' placeholder='ফলাফল এখানে দেখা যাবে...' readonly='readonly' style='background:#fff;'></textarea>
3180</div>
3181<div class='bn-btn-group'>
3182<button class='bn-btn bn-copy-btn' onclick='copyPhonetic(this)'>
3183<i class='fa-solid fa-copy'></i>
3184<span class='btn-label'>Copy Text</span>
3185</button>
3186<button class='bn-btn bn-clear-btn' onclick='clearPhonetic()'>
3187<i class='fa-solid fa-trash'></i>
3188</button>
3189</div>
3190</div>
3191</div>
3192</div>
3193<!-- QR & Barcode Scanner Modal -->
3194<div class='crop-modal-overlay' id='scannerModal' style='display:none;'>
3195<div class='crop-modal-content' style='max-width: 550px;'>
3196<span class='close-crop-modal' onclick='closeScannerModal()'>&#215;</span>
3197<div class='scanner-modal-body'>
3198<h2 class='scanner-title'>
3199<i class='fa-solid fa-barcode'></i> Code Scanner Pro
3200      </h2>
3201<p class='scanner-subtitle'>Upload an image to scan QR or Barcode</p>
3202<!-- Upload Section -->
3203<div class='upload-box-container' id='upload-container' onclick='document.getElementById("qr-file-input").click()'>
3204<div id='drop-zone'>
3205<i class='fa-solid fa-cloud-arrow-up'></i>
3206<p>Click to Upload Image</p>
3207<span>Supports PNG, JPG, WEBP</span>
3208</div>
3209<input accept='image/*' id='qr-file-input' onchange='scanUploadedFile(event)' style='display: none;' type='file'/>
3210</div>
3211<!-- Result Section -->
3212<div class='scanner-result-section' id='scanner-result-box' style='display: none;'>
3213<label class='scanner-label' for='scan-output'>Scanned Result:</label>
3214<textarea class='scanner-textarea' id='scan-output' placeholder='Result will appear here...' readonly='readonly'></textarea>
3215<div class='scanner-btn-group'>
3216<button class='btn-scan-action btn-copy-main' id='scan-copy-btn' onclick='copyScannerResult(this)'>
3217<i class='fa-solid fa-copy'></i>
3218<span id='scan-copy-label'>Copy Result</span>
3219</button>
3220<button class='btn-scan-action btn-reset-tool' onclick='resetScanner()'>
3221<i class='fa-solid fa-rotate-right'></i> Reset
3222          </button>
3223</div>
3224</div>
3225<!-- Custom Alert Popup -->
3226<div class='theme-popup-alert' id='theme-alert-box' style='display: none;'>
3227<i class='fa-solid fa-triangle-exclamation'></i>
3228<p id='theme-alert-msg'></p>
3229<button class='theme-alert-close-btn' onclick='hideThemeAlert()'>
3230          OK
3231        </button>
3232</div>
3233<div id='qr-reader-hidden' style='display: none;'></div>
3234</div>
3235</div>
3236</div>
3237<script src='https://unpkg.com/html5-qrcode'></script>
3237
3238<!-- Wedding Memento Card Maker HTML -->
3239<div class='crop-modal-overlay' id='weddingModal' style='display:none;'>
3240<div class='crop-modal-content wdm-modal-width'>
3241<span class='close-crop-modal' onclick='closeWeddingModal()'>&#215;</span>
3242<div class='wdm-container'>
3243<h2 id='wdm-main-title' style='text-align:center; color:#e11d48; margin-bottom:20px; font-weight:800;'>
3244        Wedding Memento
3245      </h2>
3246<div class='wdm-main-grid'>
3247<!-- Input Form -->
3248<div class='wdm-form-side'>
3249<div style='display:grid; grid-template-columns: 1fr 1fr; gap:10px;'>
3250<div class='wdm-field'>
3251<label for='wdm-lang' id='label-lang'>Language</label>
3252<select id='wdm-lang' onchange='updateWedCard()'>
3253<option value='en'>English</option>
3254<option value='bn'>ব&#2494;&#2434;ল&#2494;</option>
3255</select>
3256</div>
3257<div class='wdm-field'>
3258<label for='wdm-rel' id='label-religion'>Religion</label>
3259<select id='wdm-rel' onchange='updateWedCard()'>
3260<option value='islam'>Islam</option>
3261<option value='hindu'>Hindu</option>
3262<option value='christian'>Christian</option>
3263<option value='buddhist'>Buddhist</option>
3264<option value='others'>Others</option>
3265</select>
3266</div>
3267</div>
3268<span id='label-template' style='font-size:11px; font-weight:800; color:#e11d48; display:block; margin-bottom:8px;'>Choose Template:</span>
3269<div class='wdm-temp-grid'>
3270<div class='wdm-t-btn active' id='btn-temp-1' onclick='setWedTemp(1, this)'>
3271              Modern
3272            </div>
3273<div class='wdm-t-btn' onclick='setWedTemp(2, this)'>Royal</div>
3274<div class='wdm-t-btn' onclick='setWedTemp(3, this)'>Premium</div>
3275<div class='wdm-t-btn' onclick='setWedTemp(4, this)'>Classic</div>
3276</div>
3277<div class='wdm-field'>
3278<input id='in-groom' oninput='updateWedCard()' placeholder='Groom&#39;s Name' type='text' value='Md. Faizul Karim'/>
3279</div>
3280<div class='wdm-field'>
3281<input id='in-bride' oninput='updateWedCard()' placeholder='Bride&#39;s Name' type='text' value='Mst. Kajol Rekha'/>
3282</div>
3283<div style='display:flex; gap:10px; margin-bottom:12px;'>
3284<button class='dp-btn' id='btn-upload-g' onclick='document.getElementById("up-g").click()' style='flex:1; font-size:11px;'>
3285              Upload Photo 1
3286            </button>
3287<button class='dp-btn' id='btn-upload-b' onclick='document.getElementById("up-b").click()' style='flex:1; font-size:11px;'>
3288              Upload Photo 2
3289            </button>
3290<input accept='image/*' id='up-g' onchange='loadWedImg(this, "pv-g")' style='display:none' type='file'/>
3291<input accept='image/*' id='up-b' onchange='loadWedImg(this, "pv-b")' style='display:none' type='file'/>
3292</div>
3293<div class='wdm-field'>
3294<input id='in-date' oninput='updateWedCard()' placeholder='Wedding Date' type='text' value='June 10, 2012'/>
3295</div>
3296<div class='wdm-field'>
3297<input id='in-venue' oninput='updateWedCard()' placeholder='Wedding Venue' type='text' value='Jhautala, Chattogram, Bangladesh.'/>
3298</div>
3299<div class='wdm-field'>
3300<textarea id='in-msg' oninput='updateWedCard()' placeholder='Memento Message...' rows='3'>
3301We seek everyone's prayers for our happy and prosperous married life.</textarea>
3302</div>
3303<div class='actions' style='margin-top:20px; display:grid; grid-template-columns: 1fr 1fr; gap:10px;'>
3304<button class='conv-btn-main' onclick='saveWedJPG()' style='background:#059669 !important;'>
3305              SAVE JPG
3306            </button>
3307<button class='conv-btn-main' onclick='saveWedPDF()' style='background:#ea580c !important;'>
3308              SAVE PDF
3309            </button>
3310</div>
3311</div>
3312<!-- Preview Card -->
3313<div class='wdm-preview-side'>
3314<div class='wdm-t1' id='wdm-card-preview'>
3315<div id='pv-rel-icon' style='font-size:32px; margin-bottom:5px; color:#e11d48;'>
3316              &#10084;
3317            </div>
3318<div id='pv-rel-txt' style='font-size:18px; margin-bottom:12px;'>
3319              In the name of Allah
3320            </div>
3321<div class='wdm-content-fixed' id='pv-title' style='font-size:28px; font-weight:900; color:#e11d48; margin-bottom:10px; border-bottom:2px solid #e11d48; display:inline-block; padding-bottom:5px;'>
3322              Wedding Memento
3323            </div>
3324<div class='wdm-photo-wrap'>
3325<div class='wdm-photo-box'>
3326<img id='pv-g' src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4xqz238X7tAnCXP2Q8cy1D2HNqWODSe6QQqoALMPow4hvXALRyAswn7IkbImr6CoomoETvzwrzadwZVPGhZmYI6jD_zcJn4og3eH2CLLh3E8CgRtslvJqiJbMlw65TafJJNNWOCJ7JlMOGBvQMWJUU-Yv4ao2Jt_3x_OSV3BCs4VzgjZOR9aI9SbpX90/s1781/fyzal.jpeg'/>
3327</div>
3328<div class='wdm-photo-box'>
3329<img id='pv-b' src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNymKgEuEk43BCasxhyphenhyphen2WrAlXEuCOkhdPCRPyIglB4H33kt3Z0Myu0QhAlreWCN4icd-om-e0uiWsHt6iRwO6AGaRk29w4uOSvu2_wxdl-c0TKXh7Juj7U5SKbZq4doyg1tryMPrEERazhbMANEuYwPIg8V20bfhmyVPb_QM8kLS0viDqGgvwP0piE05g/s1184/kajol.webp'/>
3330</div>
3331</div>
3332<div class='wdm-content-fixed' style='font-size:24px; font-weight:bold; line-height:1.2; margin:10px 0;'>
3333<span id='pv-groom' style='color:#0061ff;'>Md. Faizul Karim</span><br/>
3334<small id='pv-and' style='font-size:18px; font-weight:normal;
3334 color:#e11d48;'>&</small><br/>
3335<span id='pv-bride' style='color:#fd00ff;'>Most. Kajol Rekha</span>
3336</div>
3337<div class='wdm-content-fixed' style='font-size:16px;'>
3338<div id='pv-date'>Wedding Date: June 10, 2012</div>
3339<div id='pv-venue'>
3340                Wedding Venue: Jhautala, Chattogram, Bangladesh.
3341              </div>
3342</div>
3343<div class='wdm-content-fixed' id='pv-msg' style='margin-top:15px; padding-top:15px; border-top:1px dashed #e11d48; font-size:14px; line-height:1.5; color:#ff0000; padding-bottom:25px;'>
3344              We seek everyone's prayers for our happy and prosperous
3345              married life.
3346            </div>
3347</div>
3348</div>
3349</div>
3350</div>
3351</div>
3352</div>
3353<script type='text/javascript'>
3354    //<![CDATA[
3355  function setActiveMode(buttonId) {
3356      document.querySelectorAll('.mode-card-btn').forEach(btn => {
3357          btn.classList.remove('active');
3358      });
3359
3360      const selectedBtn = document.getElementById(buttonId);
3361      if (selectedBtn) {
3362          selectedBtn.classList.add('active');
3363      }
3364  }
3365
3366  // Image to Text Tool
3367  function openOcrModal() {
3368      setActiveMode('mode-ocr-ai');
3369      document.getElementById('ocrModal').style.display = 'flex';
3370  }
3371
3372  // English to Bengali Phonetic
3373  function openBnConverterModal() {
3374      setActiveMode('mode-bn-converter');
3375      document.getElementById('bnConverterModal').style.display = 'flex';
3376  }
3377  // Wedding Memento Card Maker
3378  function openWeddingModal() {
3379      setActiveMode('mode-wedding');
3380      document.getElementById('weddingModal').style.display = 'flex';
3381  }
3382  // QR  Barcode Scanner
3383  function openScannerModal() {
3384      setActiveMode('mode-scanner');
3385      document.getElementById('scannerModal').style.display = 'flex';
3386
3387  }
3388
3389    //]]>
3390</script>
3390
3391<!-- ID card or Passport HTML -->
3392<div id='id-scanner-wrapper'>
3393<div class='crop-modal-overlay' id='idPassportModal' style='display:none;'>
3394<div class='crop-modal-content'>
3395<span class='close-crop-modal' onclick='closeIdPassportModal()' style='cursor:pointer !important;'>&#215;</span>
3396<div class='app'>
3397<div class='share-wrapper' id='shareWrapper'>
3398<button class='share-btn-main' onclick='toggleShareMenu()'>
3399<i class='fa-solid fa-share-nodes'></i> Share Tool
3400          </button>
3401<div class='share-dropdown'>
3402<div class='share-item' onclick='shareTo("facebook")'>
3403<i class='fa-brands fa-facebook-f' style='color: #1877F2;'></i>
3404              Facebook
3405            </div>
3406<div class='share-item' onclick='shareTo("whatsapp")'>
3407<i class='fa-brands fa-whatsapp' style='color: #25D366;'></i>
3408              WhatsApp
3409            </div>
3410<div class='share-item' onclick='shareTo("twitter")'>
3411<i class='fa-brands fa-x-twitter' style='color: #000000;'></i>
3412              Twitter
3413            </div>
3414<div class='share-item' onclick='shareTo("copy")'>
3415<i class='fa-solid fa-link' style='color: #64748b;'></i>
3416              Copy Link
3417            </div>
3418</div>
3419</div>
3420<div class='tool-icon-left'>
3421<img alt='Icon' id='main-tool-icon' src='https://i.imgur.com/Xhr1WP2.png'/>
3422</div>
3423<h2 id='tool-title'>ID Card Scan To Pdf</h2>
3424<p class='sub' id='tool-sub'>
3425          100% Free &#8226; Secure &#8226; ID Card A4 Pdf Print Ready
3426        </p>
3427<div id='status'>
3428<span>&#8987; Loading System Core...</span>
3429</div>
3430<div class='instruction-box' id='tool-instruction'>
3431<p>
3432<strong>How to use:</strong> Capture Front & Back photos of your
3433            ID card. Adjust borders, apply Magic Filter, and save as PDF.
3434          </p>
3435</div>
3436<div class='grid'>
3437<!-- FRONT SIDE -->
3438<div class='card'>
3439<h3 id='front-label'>ID Card Front Side</h3>
3440<div class='drop-zone' id='frontDropZone'>
3441<span class='drop-zone-icon' id='front-icon'><i class='fa-solid fa-id-card'></i></span>
3442<div class='drop-zone-text'>
3443                Tap or Drop
3444                <strong id='front-drop-text'>Front Image</strong>
3445</div>
3446<label for='frontInput' style='display:none;'>Upload Front Image</label>
3447<input accept='image/*' id='frontInput' type='file'/>
3448</div>
3449<div class='canvas-container'>
3450<canvas id='frontCanvas'></canvas>
3451<div class='status-msg' id='frontStatus'>No Image Uploaded</div>
3452<canvas class='magnifier' id='frontLoupe'></canvas>
3453</div>
3454<div class='control-bar'>
3455<button class='icon-btn' id='frontRotateBtn' onclick='rotateImage("front")' style='display:none;'>
3456<i class='fa-solid fa-arrows-rotate'></i> Rotate
3457              </button>
3458<button class='icon-btn delete-btn' id='frontRemoveBtn' onclick='removeImage("front")' style='display:none;'>
3459<i class='fa-solid fa-trash-can'></i> Delete
3460              </button>
3461</div>
3462<div class='btn-group'>
3463<div class='main-actions'>
3464<button disabled='disabled' id='btnCropFront' onclick='applyPerspectiveCrop("front")'>
3465<i class='fa-solid fa-crop-simple'></i> Smart Crop
3466                </button>
3467<button class='secondary' disabled='disabled' id='btnMagicFront' onclick='toggleMagicControls("front")'>
3468<i class='fa-solid fa-wand-magic-sparkles'></i>
3469                  Magic Filter
3470                </button>
3471</div>
3472<div class='filter-controls' id='filterControlsFront'>
3473<button class='adjust-btn' onclick='adjustMagic("front", -1)'>
3474<i class='fa-solid fa-minus'></i>
3475</button>
3476<span class='filter-label' id='filterLevelFront'>Level: 1</span>
3477<button class='adjust-btn' onclick='adjustMagic("front", 1)'>
3478<i class='fa-solid fa-plus'></i>
3479</button>
3480</div>
3481</div>
3482</div>
3483<!-- BACK SIDE -->
3484<div class='card'>
3485<h3 id='back-label'>ID Card Back Side</h3>
3486<div class='drop-zone' id='backDropZone'>
3487<span class='drop-zone-icon' id='back-icon'><i class='fa-solid fa-address-card'></i></span>
3488<div class='drop-zone-text'>
3489                Tap or Drop
3490                <strong id='back-drop-text'>Back Image</strong>
3491</div>
3492<label for='backInput' style='display:none;'>Upload Back Image</label>
3493<input accept='image/*' id='backInput' type='file'/>
3494</div>
3495<div class='canvas-container'>
3496<canvas id='backCanvas'></canvas>
3497<div class='status-msg' id='backStatus'>No Image Uploaded</div>
3498<canvas class='magnifier' id='backLoupe'></canvas>
3499</div>
3500<div class='control-bar'>
3501<button class='icon-btn' id='backRotateBtn' onclick='rotateImage("back")' style='display:none;'>
3502<i class='fa-solid fa-arrows-rotate'></i> Rotate
3503              </button>
3504<button class='icon-btn delete-btn' id='backRemoveBtn' onclick='removeImage("back")' style='display:none;'>
3505<i class='fa-solid fa-trash-can'></i> Delete
3506              </button>
3507</div>
3508<div class='btn-group'>
3509<div class='main-actions'>
3510<button disabled='disabled' id='btnCropBack' onclick='applyPerspectiveCrop("back")'>
3511<i class='fa-solid fa-crop-simple'></i> Smart Crop
3512                </button>
3513<button class='secondary' disabled='disabled' id='btnMagicBack' onclick='toggleMagicControls("back")'>
3514<i class='fa-solid fa-wand-magic-sparkles'></i>
3515                  Magic Filter
3516                </button>
3517</div>
3518<div class='filter-controls' id='filterControlsBack'>
3519<button class='adjust-btn' onclick='adjustMagic("back", -1)'>
3520<i class='fa-solid fa-minus'></i>
3521</button>
3522<span class='filter-label' id='filterLevelBack'>Level: 1</span>
3523<button class='adjust-btn' onclick='adjustMagic("back", 1)'>
3524<i class='fa-solid fa-plus'></i>
3525</button>
3526</div>
3527</div>
3528</div>
3529</div>
3530<div class='actions'>
3531<button onclick='downloadPNG()' style='background:#059669'>
3532<i class='fa-solid fa-file-image'></i> Save as A4 PNG
3533          </button>
3534<button onclick='downloadJPG()' style='background:#7c3aed'>
3535<i class='fa-solid fa-file-image'></i> Save as A4 JPG
3536          </button>
3537<button onclick='downloadPDF()' style='background:#ea580c'>
3538<i class='fa-solid fa-file-lines'></i> Save as A4 PDF
3539          </button>
3540<button onclick='printDirectly()' style='background:#1e40af'>
3541<i class='fa-solid fa-print'></i> Direct A4 Print
3542          </button>
3543</div>
3544</div>
3545</div>
3546</div>
3547</div>
3548<!-- ID card or Passport END -->
3549<!-- A4 Page Typing -->
3550<div class='crop-modal-overlay' id='writerModal' style='display:none;'>
3551<div class='crop-modal-content' style='max-width: 1000px;'>
3552<span class='close-crop-modal' onclick='closeWriterModal()'>&#215;</span>
3553<div class='cp-box' style='border: 2px solid #0284c7; border-radius: 20px; padding: 10px;'>
3554<h2 style='color:#0284c7; text-align:center; margin-bottom:15px; font-size: 22px; font-weight: 800;'>
3555<i class='fa-solid fa-print'></i> A4 Document Writer
3556      </h2>
3557<!-- Toolbar -->
3558<div class='writer-toolbar'>
3559<button onclick='execCmd("bold")' title='Bold' type='button'>
3560<i class='fa-solid fa-bold'></i>
3561</button>
3562<button onclick='execCmd("italic")' title='Italic' type='button'>
3563<i class='fa-solid fa-italic'></i>
3564</button>
3565<button onclick='execCmd("underline")' title='Underline' type='button'>
3566<i class='fa-solid fa-underline'></i>
3567</button>
3568<!-- Text Color -->
3569<div class='toolbar-color-item' title='Font Color'>
3570<i class='fa-solid fa-font'></i>
3571<input oninput='execCmd("foreColor", this.value)' type='color' value='#000000'/>
3572</div>
3573<!-- Background Color -->
3574<div class='toolbar-color-item' title='Highlight Color'>
3575<i class='fa-solid fa-highlighter'></i>
3576<input oninput='execCmd("hiliteColor", this.value)' type='color' value='#ffffff'/>
3577</div>
3578<select aria-label='Select Font Size' id='writerFontSize' name='writerFontSize' onchange='applyFontSize(this.value)'>
3579<option value='2'>Size: Small</option>
3580<option selected='selected' value='3'>Size: Normal</option>
3581<option value='5'>Size: Large</option>
3582<option value='6'>Size: Extra Large</option>
3583<option value='7'>Size: Heading</option>
3584</select>
3585<button onclick='execCmd("justifyLeft")' title='Left' type='button'>
3586<i class='fa-solid fa-align-left'></i>
3587</button>
3588<button onclick='execCmd("justifyCenter")' title='Center' type='button'>
3589<i class='fa-solid fa-align-center'></i>
3590</button>
3591<button onclick='execCmd("justifyRight")' title='Right' type='button'>
3592<i class='fa-solid fa-align-right'></i>
3593</button>
3594<button onclick='execCmd("insertUnorderedList")' title='List' type='button'>
3595<i class='fa-solid fa-list-ul'></i>
3596</button>
3597</div>
3598<!-- A4 Page Container Area -->
3599<div class='a4-container-wrapper'>
3600<div id='pages-list'>
3601<!-- Pages will be added here via JS -->
3602</div>
3603<button class='add-page-btn' onclick='addNewPage()' type='button'>
3604<i class='fa-solid fa-circle-plus'></i> Add New A4 Page
3605        </button>
3606</div>
3607<!-- Actions Buttons -->
3608<div class='actions' style='display:grid; grid-template-columns: 1fr 1fr; gap:10px; margin-top:15px;'>
3609<button class='conv-btn-main' onclick='printWriterContent()' style='background:#1e40af !important; margin:0;' type='button'>
3610<i class='fa-solid fa-print'></i> Print
3611        </button>
3612<button class='conv-btn-main' onclick='clearWriter()' style='background:#ef4444 !important; margin:0;' type='button'>
3613<i class='fa-solid fa-trash-can'></i> Clear
3614        </button>
3615</div>
3616</div>
3617</div>
3618</div>
3619<!-- A4 Page Typing End -->
3620<!-- Image Enhancer -->
3621<div class='crop-modal-overlay' id='enhancerModal' style='display:none;'>
3622<div class='crop-modal-content' style='max-width: 1000px;'>
3623<span class='close-crop-modal' onclick='closeEnhancerModal()'>&#215;</span>
3624<div class='cp-box' style='border: 2px solid #6366f1; border-radius: 20px; padding: 15px; background: #fff;'>
3625<h2 style='color:#6366f1; text-align:center; margin-bottom:15px; font-weight: 800;'>
3626<i class='fa-solid fa-sparkles'></i> Image Enhancer
3627      </h2>
3628<div class='enhancer-main-layout'>
3629<!-- Upload Box -->
3630<div class='st-upload-area' id='enhancer-upload-box' onclick='document.getElementById("enhancer-input").click()'>
3631<i class='fa-solid fa-cloud-arrow-up' style='font-size:40px; color:#6366f1;'></i>
3632<p style='font-weight:700; margin:10px 0;'>Click to Upload Photo</p>
3633<input accept='image/*' id='enhancer-input' style='display:none' type='file'/>
3634</div>
3635<!-- Processing Loader -->
3636<div id='enhancer-loader' style='display:none; text-align:center; padding:20px;'>
3637<div class='spinner'></div>
3638<p style='color:#6366f1; font-weight:800; margin-top:10px;'>
3639            AI is Enhancing Details...
3640          </p>
3641</div>
3642<!-- Comparison View (Hidden initially) -->
3643<div id='enhancer-result-view' style='display:none;'>
3644<div class='comparison-container' id='comparison-slider'>
3645<img alt='Original' id='img-before' src=''/>
3646<div id='img-after-box' style='width: 50%;'>
3647<img alt='Enhanced' id='img-after' src=''/>
3648</div>
3649<div class='slider-bar'></div>
3650<div class='slider-button'>
3651<i class='fa-solid fa-left-right'></i>
3652</div>
3653<span class='label-before'>BEFORE</span>
3654<span class='label-after'>AFTER</span>
3655</div>
3656<div class='enhance-controls'>
3657<button class='st-save-btn' onclick='downloadEnhancedImage()' style='background:#059669;'>
3658<i class='fa-solid fa-download'></i> Save Enhanced Photo
3659            </button>
3660<button class='st-save-btn' onclick='resetEnhancer()' style='background:#ef4444;'>
3661<i class='fa-solid fa-rotate-left'></i> Delete Photo
3662            </button>
3663</div>
3664</div>
3665</div>
3666</div>
3667</div>
3668</div>
3669<canvas id='temp-canvas' style='display:none;'></canvas>
3670<!-- Image Enhancer END -->
3671<!-- Stamp or Legal Document Writer -->
3672<div class='crop-modal-overlay' id='stampModal' style='display:none;'>
3673<div class='crop-modal-content' style='max-width: 1100px;'>
3674<span class='close-crop-modal' onclick='closeStampModal()'>&#215;</span>
3675<div class='cp-box' style='border: 2px solid #8b5cf6; border-radius: 20px; padding: 10px; background: #fff;'>
3676<h2 style='color:#8b5cf6; text-align:center; margin-bottom:15px; font-weight: 800; font-size: 22px;'>
3677<i class='fa-solid fa-scroll'></i> Stamp or Legal Document Writer
3678      </h2>
3679<!-- Toolbar -->
3680<div class='writer-toolbar'>
3681<button onclick='execCmd("bold")' title='Bold' type='button'>
3682<i class='fa-solid fa-bold'></i>
3683</button>
3684<button onclick='execCmd("italic")' title='Italic' type='button'>
3685<i class='fa-solid fa-italic'></i>
3686</button>
3687<button onclick='execCmd("underline")' title='Underline' type='button'>
3688<i class='fa-solid fa-underline'></i>
3689</button>
3690<div class='toolbar-color-item' title='Text Color'>
3691<i class='fa-solid fa-font'></i>
3692<input oninput='execCmd("foreColor", this.value)' type='color' value='#000000'/>
3693</div>
3694<select aria-label='Select Font Size' id='stampFontSize' name='stampFontSize' onchange='execCmd("fontSize", this.value)'>
3695<option value='3'>Small</option>
3696<option selected='selected' value='4'>Normal</option>
3697<option value='5'>Large</option>
3698<option value='6'>Extra Large</option>
3699<option value='7'>Heading</option>
3700</select>
3701<button onclick='execCmd("justifyLeft")' title='Left' type='button'>
3702<i class='fa-solid fa-align-left'></i>
3703</button>
3704<button onclick='execCmd("justifyCenter")' title='Center' type='button'>
3705<i class='fa-solid fa-align-center'></i>
3706</button>
3707<button onclick='execCmd("justifyRight")' title='Right' type='button'>
3708<i class='fa-solid fa-align-right'></i>
3709</button>
3710<div class='margin-control' title='Adjust All Pages Top Position'>
3711<i class='fa-solid fa-arrows-up-down'></i>
3712<input id='stamp-margin-slider' max='700' min='100' oninput='updateAllStampMargins(this.value)' type='range' value='420'/>
3713<span id='margin-val'>4.2 Inch</span>
3714</div>
3715</div>
3716<!-- Editor Area -->
3717<div class='a4-container-wrapper' style='background: #475569;'>
3718<div id='stamp-pages-list'>
3719<!-- Pages added via JS -->
3720</div>
3721<button class='add-page-btn' onclick='addNewStampPage()' style='background:#8b5cf6' type='button'>
3722<i class='fa-solid fa-circle-plus'></i> Add Next Legal Page
3723        </button>
3724</div>
3725<!-- Actions -->
3726<div class='actions' style='display:grid; grid-template-columns: 1fr 1fr; gap:10px; margin-top:15px;'>
3727<button class='conv-btn-main' onclick='printStampContent()' style='background:#1e40af !important; margin:0;' type='button'>
3728<i class='fa-solid fa-print'></i> Print / Save PDF
3729        </button>
3730<button class='conv-btn-main' onclick='clearStampWriter()' style='background:#ef4444 !important; margin:0;' type='button'>
3731<i class='fa-solid fa-trash-can'></i> Clear All
3732        </button>
3733</div>
3734<!-- Instructions -->
3735<div style='margin-top: 20px; padding: 15px; background: #fffbeb; border: 1px dashed #f59e0b; border-radius: 12px; font-size: 13px; color: #92400e; text-align: left; line-height: 1.6;'>
3736<strong style='display:block; margin-bottom:5px; font-size:14px;'><i class='fa-solid fa-circle-info'></i> Printing Instructions:</strong>
3737<ul style='margin:0; padding-left:20px;'>
3738<li>
3739            Paper Size: Select <b>"Legal"</b> or set Custom size to
3740            <b>215mm x 345mm</b>.
3741          </li>
3742<li>Layout: Set to <b>"Portrait"</b>.</li>
3743<li>
3744            Margins: Set to <b>"None"</b> or
3745            <b>"Default"</b>.
3746          </li>
3747<li>
3748            Scale: Set to <b>"100%"</b> or <b>"Default"</b>.
3749          </li>
3750</ul>
3751</div>
3752</div>
3753</div>
3754</div>
3755<!-- Stamp or Legal Document Writer END -->
3756<!-- Excel Table Sheet Creator -->
3757<div class='crop-modal-overlay' id='sheetModal' style='display:none;'>
3758<div class='crop-modal-content' style='max-width: 1200px;'>
3759<span class='close-crop-modal' onclick='closeSheetModal()'>&#215;</span>
3760<div class='app' style='padding-top: 40px !important;'>
3761<!-- Floating Tool Icon -->
3762<div class='xtool-icon-left'>
3763<i class='fa-solid fa-file-excel' style='font-size: 100px; color: #10b981; opacity: 0.15; position: absolute; left: 10px; top: -10px;'></i>
3764</div>
3765<h2 id='tool-title' style='background: linear-gradient(135deg,#10b981,#059669); -webkit-background-clip: text; -webkit-text-fill-color: transparent;'>
3766<i class='fa-solid fa-file-excel' style='-webkit-text-fill-color: #10b981; margin-right: 10px;'></i>
3767        Excel Table Sheet Creator
3768      </h2>
3769<p class='sub' id='tool-sub' style='text-align:center; margin-bottom:25px;'>
3770        Professional A4 & Legal Sheet Builder with Advanced Controls
3771      </p>
3772<div class='cp-box' style='border: 2px solid #10b981; border-radius: 20px; padding: 10px; background: #fff;'>
3773<!-- Expanded Pro Toolbar -->
3774<div class='sheet-pro-toolbar'>
3775<div class='toolbar-row'>
3776<button onclick='execCmd("bold")' title='Bold'>
3777<i class='fa-solid fa-bold'></i>
3778</button>
3779<button onclick='execCmd("italic")' title='Italic'>
3780<i class='fa-solid fa-italic'></i>
3781</button>
3782<button onclick='execCmd("underline")' title='Underline'>
3783<i class='fa-solid fa-underline'></i>
3784</button>
3785<div class='separator-v'></div>
3786<div class='toolbar-item' title='Text Color'>
3787<i class='fa-solid fa-font'></i>
3788<input id='sheet-font-color' oninput='execCmd("foreColor", this.value)' type='color' value='#000000'/>
3789</div>
3790<div class='toolbar-item' title='Text Highlight Color'>
3791<i class='fa-solid fa-fill-drip'></i>
3792<input id='sheet-bg-color' oninput='execCmd("hiliteColor", this.value)' type='color' value='#ffffff'/>
3793</div>
3794<select id='sheet-font-size' onchange='execCmd("fontSize", this.value)' title='Font Size'>
3795<option value='2'>Small</option>
3796<option selected='selected' value='3'>Normal</option>
3797<option value='5'>Large</option>
3798<option value='6'>Heading</option>
3799</select>
3800<div class='separator-v'></div>
3801<button class='btn-action-sheet' id='sl-toggle-btn' onclick='autoSerialToggle()' title='Show/Hide SL'>
3802<i class='fa-solid fa-list-ol'></i> SL
3803            </button>
3804</div>
3805<div class='toolbar-row'>
3806<button onclick='execCmd("justifyLeft")' title='Align Left'>
3807<i class='fa-solid fa-align-left'></i>
3808</button>
3809<button onclick='execCmd("justifyCenter")' title='Align Center'>
3810<i class='fa-solid fa-align-center'></i>
3811</button>
3812<button onclick='execCmd("justifyRight")' title='Align Right'>
3813<i class='fa-solid fa-align-right'></i>
3814</button>
3815<button onclick='execCmd("justifyFull")' title='Justify'>
3816<i class='fa-solid fa-align-justify'></i>
3817</button>
3818<div class='separator-v'></div>
3819<button class='btn-action-sheet' onclick='addRow()'>
3820<i class='fa-solid fa-plus'></i> Row
3821            </button>
3822<button class='btn-action-sheet' onclick='deleteRow()' style='color:#ef4444'>
3823<i class='fa-solid fa-minus'></i> Row
3824            </button>
3825<button class='btn-action-sheet' onclick='addColumn()'>
3826<i class='fa-solid fa-plus'></i> Col
3827            </button>
3828<button class='btn-action-sheet' onclick='deleteColumn()' style='color:#ef4444'>
3829<i class='fa-solid fa-minus'></i> Col
3830            </button>
3831<select id='sheet-page-size' onchange='updateSheetLayout()' style='background: #10b981; color: #fff; border: none; font-weight:800;' title='Paper Size'>
3832<option selected='selected' value='a4'>A4 Paper</option>
3833<option value='legal'>Legal Paper</option>
3834</select>
3835</div>
3836</div>
3837<!-- Editor Canvas -->
3838<div class='a4-container-wrapper' id='sheet-scroll-area'>
3839<div class='sheet-page-unit' id='main-sheet-page'>
3840<div class='sheet-header-box' contenteditable='true' data-placeholder='Enter Document Title...'></div>
3841<div class='sheet-sub-header-box' contenteditable='true' data-placeholder='Enter Date, Ref, or Subtitle here...'></div>
3842<div class='table-responsive-wrapper'>
3843<table class='pro-table-sheet' id='editable-table'>
3844<thead>
3845<tr>
3846<th class='sl-column' contenteditable='true' style='width: 50px;'>
3847                      SL
3848                    </th>
3849<th contenteditable='true'>Item Description</th>
3850<th contenteditable='true'>Qty</th>
3851<th contenteditable='true'>Price</th>
3852<th contenteditable='true'>Total</th>
3853</tr>
3854</thead>
3855<tbody id='table-body'>
3856<tr>
3857<td class='sl-column' contenteditable='true'>1</td>
3858<td contenteditable='true'></td>
3859<td contenteditable='true'></td>
3860<td contenteditable='true'></td>
3861<td contenteditable='true'></td>
3862</tr>
3863</tbody>
3864</table>
3865</div>
3866<div class='sheet-footer-box' contenteditable='true' data-placeholder='Add signatures, notes or footer text here...'></div>
3867</div>
3868</div>
3869<!-- Actions -->
3870<div class='actions' style='display:grid; grid-template-columns: 1fr 1fr; gap:10px; margin-top:15px;'>
3871<button class='conv-btn-main' onclick='printSheetContent()' style='background:#1e40af !important; margin:0;' type='button'>
3872<i class='fa-solid fa-print'></i> Print or Save PDF
3873          </button>
3874<button class='conv-btn-main' onclick='resetTable()' style='background:#ef4444 !important; margin:0;' type='button'>
3875<i class='fa-solid fa-trash-can'></i> Reset Sheet
3876          </button>
3877</div>
3878</div>
3879</div>
3880</div>
3881</div>
3882<!-- Excel Table Sheet Creator END -->
3883<!-- AI Prompt Hub Modal -->
3884<div class='crop-modal-overlay' id='promptHubModal' style='display:none;'>
3885<div class='crop-modal-content' style='max-width: 1200px;'>
3886<span class='close-crop-modal' onclick='closePromptHub()'>&#215;</span>
3887<div class='cp-box' style='border: 1px solid #6366f1; border-radius: 24px; padding: 15px; background: #fff;'>
3888<!-- Tool Header -->
3889<div style='text-align:center; margin-bottom: 20px; position: relative;'></div>
3890<div>
3891<h2 style='color:#0284c7; text-align:center; margin-bottom:15px; font-size: 22px; font-weight: 800;'>
3892<i class='fa-solid fa-brain'></i> AI Image Editing Prompt Hub
3893        </h2>
3894<p id='ph-subtitle' style='color:#64748b; font-weight:700; font-family: "SolaimanLipi", sans-serif !important;'>
3895          Get professional AI prompts for high-end image editing
3896        </p>
3897</div>
3898<!-- Controls: Language Toggle & Search -->
3899<div class='ph-controls'>
3900<div class='ph-lang-toggle'>
3901<button class='ph-tab active' id='ph-btn-en' onclick='switchPhLang("en")'>
3902            English
3903          </button>
3904<button class='ph-tab' id='ph-btn-bn' onclick='switchPhLang("bn")'>
3905            ব&#2494;&#2434;ল&#2494;
3906          </button>
3907</div>
3908<div class='ph-search'>
3909<input id='ph-search-input' oninput='searchPrompts()' placeholder='Search prompt...' type='text'/>
3910<i class='fa-solid fa-magnifying-glass'></i>
3911</div>
3912</div>
3913<!-- Category Tabs (Dynamically filled by JS) -->
3914<div class='ph-category-wrapper'>
3915<div class='ph-tabs' id='ph-tabs-list'>
3916<!-- Categories will be injected here by JS -->
3917</div>
3918</div>
3919<!-- Prompt Cards Grid (Dynamically filled by JS) -->
3920<div class='ph-prompt-grid' id='ph-grid'>
3921<!-- Prompt cards will be injected here by JS -->
3922<div style='grid-column: 1/-1; text-align: center; padding: 50px;'>
3923<i class='fa-solid fa-circle-notch fa-spin' style='font-size: 30px; color: #6366f1;'></i>
3924<p style='margin-top: 10px; font-weight: 700; color: #64748b;'>
3925            Loading Library...
3926          </p>
3927</div>
3928</div>
3929<!-- Footer Info -->
3930<div style='margin-top: 20px; padding: 12px; background: #f0f7ff; border-radius: 12px; border: 1px solid #e0e7ff; text-align: center;'>
3931<p id='ph-footer-tip' style='font-size: 13px; color: #4338ca; font-weight: 700; margin: 0; font-family: "SolaimanLipi", sans-serif !important;'>
3932<i class='fa-solid fa-lightbulb'></i>
3933<b>Tip:</b> Copy the prompt and
3934          paste it into Google AI Studio or Google Gemini.
3935        </p>
3936</div>
3937</div>
3938</div>
3939</div>
3940<!-- AI Prompt Hub Modal END -->
3941<style>
3942  /* --- Image Compressor CSS --- */
3943  .comp-result-flex { display: flex; gap: 20px; justify-content: center; flex-wrap: wrap; margin-top: 20px; }
3944  .comp-card { flex: 1; min-width: 280px; background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 20px; padding: 15px; text-align: center; display: flex; flex-direction: column; align-items: center; }
3945  .card-lbl { display: block; font-size: 11px; font-weight: 800; color: #f59e0b; margin-bottom: 12px; text-transform: uppercase; letter-spacing: 1px; }
3946
3947  .comp-img-frame { width: 100%; height: 220px; background: #fff; border: 1px solid #eee; border-radius: 12px; display: flex; align-items: center; justify-content: center; overflow: hidden; }
3948  .comp-img-frame img { max-width: 100%; max-height: 100%; object-fit: contain; }
3949
3950  .comp-card p { font-weight: 800; color: #334155; margin: 12px 0; font-size: 14px; }
3951  .comp-action-btn { width: 100%; padding: 12px; border: none; border-radius: 12px; color: white; font-weight: 800; cursor: pointer; transition: 0.3s; font-size: 14px; display: flex; align-items: center; justify-content: center; gap: 8px; }
3952  .comp-action-btn:disabled { background: #cbd5e1 !important;
3952 cursor: not-allowed; opacity: 0.6; }
3953  .comp-action-btn:hover:not(:disabled) { transform: translateY(-2px); box-shadow: 0 5px 12px rgba(0,0,0,0.1); }
3954
3955  @media (max-width: 600px) {
3956      .comp-card { min-width: 100%; }
3957      .comp-img-frame { height: 180px; }
3958  }
3959</style>
3960<div class='crop-modal-overlay' id='compressorModal' style='display:none;'>
3961<div class='crop-modal-content' style='max-width: 1000px;'>
3962<span class='close-crop-modal' onclick='closeCompressorModal()'>&#215;</span>
3963<div class='app' style='padding-top: 40px !important;'></div>
3964<h2 id='tool-title' style='background: linear-gradient(135deg,#f59e0b,#d97706); -webkit-background-clip: text; -webkit-text-fill-color: transparent;'>
3965<i class='fa-solid fa-compress' style='-webkit-text-fill-color: #f59e0b; margin-right: 10px;'></i>
3966      Image Compressor & KB Limiter
3967    </h2>
3968<p class='sub' id='tool-sub' style='text-align:center; margin-bottom:25px;'>
3969      Compress your photos to any specific KB instantly
3970    </p>
3971<div class='cp-box' style='border: 2px solid #f59e0b; border-radius: 20px; padding: 15px; background: #fff;'>
3972<div class='st-upload-area' id='comp-upload-area' onclick='document.getElementById("comp-input").click()'>
3973<i class='fa-solid fa-cloud-arrow-up' style='font-size:45px; color:#f59e0b; margin-bottom:10px;'></i>
3974<p style='font-weight:800; color:#1e293b; margin:0;'>
3975          Click to Upload or Drag Image
3976        </p>
3977<span style='font-size:12px; color:#64748b;'>Supports: JPG, PNG, WEBP</span>
3978<input accept='image/*' id='comp-input' onchange='handleCompFile(this.files[0])' style='display:none' type='file'/>
3979</div>
3980<div id='comp-controls' style='display:none;'>
3981<div class='comp-kb-settings' style='margin-bottom:25px; text-align:center;'>
3982<div class='st-input-group' style='max-width:300px; margin: 0 auto 15px;'>
3983<label for='target-kb'>Set Target Size (Max KB)</label>
3984<input id='target-kb' min='1' style='text-align:center; font-size:18px;' type='number' value='100'/>
3985</div>
3986<button class='st-save-btn' onclick='processCompression()' style='background:#f59e0b; max-width:300px;' type='button'>
3987<i class='fa-solid fa-bolt'></i> Compress Now
3988          </button>
3989</div>
3990<div class='comp-result-flex'>
3991<!-- Original Image Card -->
3992<div class='comp-card'>
3993<span class='card-lbl'>Original Image</span>
3994<div class='comp-img-frame'>
3995<img alt='Original' id='comp-orig-preview' src=''/>
3996</div>
3997<p id='orig-size'>Size: 0 KB</p>
3998<button class='comp-action-btn' onclick='resetCompressor()' style='background:#ef4444;' type='button'>
3999<i class='fa-solid fa-trash-can'></i> Delete Image
4000            </button>
4001</div>
4002<!-- Compressed Result Card -->
4003<div class='comp-card'>
4004<span class='card-lbl'>Compressed Result</span>
4005<div class='comp-img-frame'>
4006<div id='comp-loader' style='display:none; padding:40px;'>
4007<i class='fa-solid fa-spinner fa-spin' style='font-size:30px; color:#f59e0b;'></i>
4008</div>
4009<img alt='Result' id='comp-result-preview' src='' style='display:none;'/>
4010</div>
4011<p id='result-size'>Size: 0 KB</p>
4012<button class='comp-action-btn' disabled='disabled' id='btn-comp-dl' onclick='downloadCompressedImg()' style='background:#059669;' type='button'>
4013<i class='fa-solid fa-download'></i> Download Image
4014            </button>
4015</div>
4016</div>
4017</div>
4018<div style='margin-top: 30px; padding: 15px; background: #fffbeb; border-radius: 12px; border: 1px dashed #f59e0b; text-align: left;'>
4019<p style='font-size: 13px; color: #92400e; font-weight: 700; margin: 0; font-family: "SolaimanLipi", sans-serif !important;'>
4020<i class='fa-solid fa-circle-info'></i>
4021<b>Tips:</b> Resolution will be
4022          automatically maintained while reducing image size. We adjust image
4023          quality to get perfect KB.
4024        </p>
4025</div>
4026</div>
4027</div>
4028</div>
4029<div class='crop-modal-overlay' id='memoModal' style='display:none;'>
4030<div class='crop-modal-content' style='max-width: 1150px;'>
4031<span class='close-crop-modal' onclick='closeMemoModal()'>&#215;</span>
4032<div>
4033<h2 id='memo-tool-title' style='background: linear-gradient(135deg,#0d9488,#0f766e); -webkit-background-clip: text; -webkit-text-fill-color: transparent; text-align:center; font-weight:800;'>
4034        Cash Memo / Receipt Maker
4035      </h2>
4036<div class='cp-box' style='border: 2px solid #0d9488; border-radius: 20px; padding: 10px; background: #fff;'>
4037<div class='sheet-pro-toolbar'>
4038<div class='toolbar-row' style='display: flex; justify-content: center; gap: 10px; flex-wrap: wrap;'>
4039<div class='pph-lang-toggle'>
4040<button class='ph-tab active' id='memo-en-btn' onclick='switchMemoLang("en")'>
4041                English
4042              </button>
4043<button class='ph-tab' id='memo-bn-btn' onclick='switchMemoLang("bn")'>
4044                ব&#2494;&#2434;ল&#2494;
4045              </button>
4046</div>
4047<button onclick='saveMemoSettings()' style='background:#059669; color:#fff; border-radius: 8px; padding: 8px 15px; border:none; cursor:pointer; font-weight:700;'>
4048<i class='fa-solid fa-floppy-disk'></i>
4049<span id='txt-save-settings'>Save Info</span>
4050</button>
4051<select id='memo-page-size' onchange='updateMemoLayout()' style='padding: 8px; border-radius: 8px; border: 1px solid #cbd5e1; font-weight: 700;'>
4052<option selected='selected' value='a4'>A4 Paper</option>
4053<option value='legal'>Legal Paper</option>
4054<option value='a5'>A5 Paper</option>
4055<option value='letter'>Letter Paper</option>
4056</select>
4057<button onclick='addMemoRow()' style='background:#0d9488; color:#fff; border-radius: 8px; padding: 8px 15px; border:none; cursor:pointer; font-weight:700;'>
4058<i class='fa-solid fa-plus'></i>
4059<span id='txt-add-item'>Add Item</span>
4060</button>
4061</div>
4062</div>
4063<div class='a4-container-wrapper' id='memo-scroll-area' style='background:#3f3f46; padding: 40px 10px;'>
4064<div class='sheet-page-unit' id='memo-page-unit' style='display: table; height: auto !important; width: 210mm; background: #fff; padding: 15mm; margin: 0 auto;'>
4065<div class='memo-header-top'>
4066<div class='logo-preview' id='memo-logo-view' onclick='document.getElementById("memo-logo-input").click()'>
4067<span id='txt-logo-hint'>Logo</span>
4068<img alt='Logo' id='memo-img' src='' style='display:none'/>
4069<input accept='image/*' id='memo-logo-input' onchange='loadMemoLogo(this)' style='display:none' type='file'/>
4070</div>
4071<div class='shop-info'>
4072<h1 contenteditable='true' data-placeholder='YOUR SHOP NAME' id='set-shop-name' style='outline:none;
4072 color: #0d9488;'></h1>
4073<div class='shop-details-row'>
4074<span class='detail-box' contenteditable='true' data-placeholder='Address' id='set-shop-addr'></span>
4075<span class='detail-box' contenteditable='true' data-placeholder='Mobile' id='set-shop-mob'></span>
4076<span class='detail-box' contenteditable='true' data-placeholder='Email' id='set-shop-email'></span>
4077</div>
4078</div>
4079</div>
4080<div class='memo-sub-header'>
4081<div contenteditable='true'>
4082<b id='txt-receipt'>Receipt No:</b> #101
4083              </div>
4084<div contenteditable='true'>
4085<b id='txt-date'>Date:</b> 21/01/2026
4086              </div>
4087</div>
4088<div class='memo-customer-container'>
4089<div class='cust-info-row-inline'>
4090<div class='cust-field-inline'>
4091<b id='lbl-name'>Name:</b>
4092<span contenteditable='true' id='txt-cust-name' style='outline:none'></span>
4093</div>
4094<div class='cust-field-inline'>
4095<b id='lbl-addr'>Address:</b>
4096<span contenteditable='true' id='txt-cust-addr' style='outline:none'></span>
4097</div>
4098<div class='cust-field-inline'>
4099<b id='lbl-mob1'>Mobile:</b>
4100<span contenteditable='true' id='txt-cust-mob1' style='outline:none'></span>
4101</div>
4102</div>
4103</div>
4104<div class='table-responsive-wrapper'>
4105<table class='pro-table-sheet' id='memo-table' style='border: 2px solid #0d9488;'>
4106<thead>
4107<tr>
4108<th id='txt-sl' style='width:50px; color: #fff;'>SL</th>
4109<th id='txt-desc' style='text-align:left; color: #fff;'>
4110                      Description
4111                    </th>
4112<th id='txt-qty' style='width:60px; color: #fff;'>Qty</th>
4113<th id='txt-rate' style='width:100px; color: #fff;'>
4114                      Rate
4115                    </th>
4116<th id='txt-total' style='width:120px; color: #fff;'>
4117                      Total
4118                    </th>
4119<th class='no-print' style='width:40px; background: #fff; border:none;'>
4120                      #
4121                    </th>
4122</tr>
4123</thead>
4124<tbody id='memo-body'>
4125<tr>
4126<td class='sl-cell'>1</td>
4127<td contenteditable='true' style='text-align: left;'></td>
4128<td contenteditable='true' oninput='handleTableInput(this)'>
4129                      1
4130                    </td>
4131<td contenteditable='true' oninput='handleTableInput(this)'>
4132                      0
4133                    </td>
4134<td class='row-total'>0.00</td>
4135<td class='no-print' style='border:none;'>
4136<button onclick='removeMemoRow(this)' style='color:red; background:none; border:none; cursor:pointer; font-size: 18px;'>
4137                        &#215;
4138                      </button>
4139</td>
4140</tr>
4141</tbody>
4142<tfoot>
4143<tr style='background:#f0fdfa;'>
4144<td colspan='4' id='txt-grand' style='text-align:right; font-weight:800; padding-right:15px; color: #0d9488;'>
4145                      Grand Total:
4146                    </td>
4147<td id='memo-grand-total' style='font-weight:900; color: #0d9488;'>
4148                      0.00
4149                    </td>
4150<td class='no-print' style='border:none;'></td>
4151</tr>
4152</tfoot>
4153</table>
4154</div>
4155<div class='in-words-box'>
4156<b id='txt-words-label'>In Words:</b>
4157<span id='memo-words-display'>Zero Taka only.</span>
4158</div>
4159<div class='signature-row'>
4160<div class='sig-box' id='txt-sig-cust'>Customer Signature</div>
4161<div class='sig-box' id='txt-sig-auth'>Authorized Signature</div>
4162</div>
4163<div class='memo-notes' contenteditable='true' data-placeholder='Terms & Conditions (Optional)' id='txt-terms-placeholder' style='outline:none'></div>
4164</div>
4165</div>
4166<div class='actions' style='display:grid; grid-template-columns: 1fr 1fr; gap:10px; margin-top:15px;'>
4167<button class='conv-btn-main' onclick='printMemoContent()' style='background:#1e40af !important; margin:0;' type='button'>
4168<i class='fa-solid fa-print'></i> Print / Save PDF
4169          </button>
4170<button class='conv-btn-main' onclick='resetMemo()' style='background:#ef4444 !important; margin:0;' type='button'>
4171<i class='fa-solid fa-trash-can'></i> Reset Memo
4172          </button>
4173</div>
4174</div>
4175</div>
4176</div>
4177</div>
4178<div class='crop-modal-overlay' id='barcodeModal' style='display:none;'>
4179<div class='crop-modal-content' style='max-width: 900px;'>
4180<span class='close-crop-modal' onclick='closeBarcodeModal()'>&#215;</span>
4181<div class='cp-box' style='border: 2px solid #8b5cf6; border-radius: 20px; padding: 15px; background: #fff;'>
4182<div style='text-align:center; margin-bottom: 20px;'>
4183<h2 style='color:#8b5cf6; font-weight: 800; font-size: 24px; margin-bottom: 5px;'>
4184<i class='fa-solid fa-barcode'></i> Barcode Generator
4185        </h2>
4186<p style='color:#64748b; font-weight:600;'>
4187          Generate industry-standard barcodes instantly
4188        </p>
4189</div>
4190<div class='barcode-main-layout'>
4191<!-- Settings Panel -->
4192<div class='barcode-settings'>
4193<div class='st-input-group'>
4194<label for='barcode-text'>Enter Data / Number</label>
4195<input id='barcode-text' oninput='generateBarcode()' placeholder='Example: 12345678' type='text' value='12345678'/>
4196</div>
4197<div class='barcode-grid-3'>
4198<div class='st-input-group'>
4199<label for='barcode-format'>Format</label>
4200<select id='barcode-format' onchange='generateBarcode()'>
4201<option value='CODE128'>Code 128 (Standard)</option>
4202<option value='EAN13'>EAN-13 (Retail)</option>
4203<option value='EAN8'>EAN-8</option>
4204<option value='UPC'>UPC-A</option>
4205<option value='CODE39'>Code 39</option>
4206<option value='ITF14'>ITF-14</option>
4207<option value='MSI'>MSI</option>
4208<option value='pharmacode'>Pharmacode</option>
4209<option value='codabar'>Codabar</option>
4210</select>
4211</div>
4212<div class='st-input-group'>
4213<label for='bar-width'>Bar Width</label>
4214<input id='bar-width' max='4' min='1' oninput='generateBarcode()' type='number' value='2'/>
4215</div>
4216<div class='st-input-group'>
4217<label for='bar-height'>Height</label>
4218<input id='bar-height' max='150' min='10' oninput='generateBarcode()' type='number' value='80'/>
4219</div>
4220</div>
4221<div class='barcode-grid-3'>
4222<div class='toolbar-item' title='Bar Color'>
4223<i class='fa-solid fa-palette'></i>
4224<input id='bar-color' oninput='generateBarcode()' type='color' value='#000000'/>
4225</div>
4226<div class='toolbar-item' title='Background Color'>
4227<i class='fa-solid fa-fill-drip'></i>
4228<input id='bar-bg' oninput='generateBarcode()' type='color' value='#ffffff'/>
4229</div>
4230<div class='toolbar-item' style='justify-content: flex-start; gap: 10px;'>
4231<input checked='checked' id='show-text' onchange='generateBarcode()' type='checkbox'/>
4232<label for='show-text' style='margin:0; font-size: 12px;'>Show Text</label>
4233</div>
4234</div>
4235</div>
4236<!-- Preview Area -->
4237<div class='barcode-preview-box'>
4238<div id='barcode-error' style='display:none; color:#ef4444; font-size:12px; font-weight:700; margin-bottom:10px;'>
4239<i class='fa-solid fa-circle-exclamation'></i> Invalid data for
4240            selected format!
4241          </div>
4242<div class='barcode-render-area' id='barcode-canvas-wrap'>
4243<svg id='barcode-output'></svg>
4244</div>
4245<div class='actions' style='display:grid; grid-template-columns: 1fr 1fr; gap:10px; margin-top:20px;'>
4246<button class='conv-btn-main' onclick='downloadBarcode("png")' style='background:#059669 !important; margin:0;' type='button'>
4247<i class='fa-solid fa-download'></i> Save PNG
4248            </button>
4249<button class='conv-btn-main' onclick='resetBarcode()' style='background:#ef4444 !important; margin:0;' type='button'>
4250<i class='fa-solid fa-trash-can'></i> Reset
4251            </button>
4252</div>
4253</div>
4254</div>
4255<!-- Instruction Note -->
4256<div style='margin-top: 20px; padding: 12px; background: #f5f3ff; border-radius: 12px; border: 1px dashed #8b5cf6; text-align: left;'>
4257<p style='font-size: 12px; color: #5b21b6; font-weight: 700; margin: 0; font-family: "SolaimanLipi", sans-serif !important;'>
4258<i class='fa-solid fa-circle-info'></i>
4259<b>Note:</b> EAN-13 requires 13
4260          digits and UPC requires 12 digits. Code 128 supports all types of
4261          text.
4262        </p>
4263</div>
4264</div>
4265</div>
4266</div>
4267<!-- JsBarcode Library -->
4268<script src='https://cdn.jsdelivr.net/npm/[email protected]/dist/JsBarcode.all.min.js'></script>
4268
4269<div class='crop-modal-overlay' id='teletalkModal' style='display:none;'>
4270<div class='crop-modal-content' style='max-width: 1050px;'>
4271<span class='close-crop-modal' onclick='closeTeletalkModal()'>&#215;</span>
4272<h2 style='background: linear-gradient(135deg,#059669,#10b981); -webkit-background-clip: text; -webkit-text-fill-color: transparent; text-align:center; font-weight:800; font-size:26px;'>
4273      Teletalk Photo & Sig Resizer
4274    </h2>
4275<div class='cp-box' style='border: 2px solid #059669; border-radius: 20px; padding: 15px; background: #fff;'>
4276<!-- Upload Section -->
4277<div class='st-upload-area' id='tele-upload-area' onclick='document.getElementById("tele-input").click()'>
4278<i class='fa-solid fa-cloud-arrow-up' style='font-size:45px; color:#059669; margin-bottom:10px;'></i>
4279<p style='font-weight:800; color:#1e293b; margin:0;'>
4280          Upload Photo or Signature
4281        </p>
4282<input accept='image/*' id='tele-input' onchange='handleTeleFile(this.files[0])' style='display:none' type='file'/>
4283</div>
4284<!-- Editor UI -->
4285<div id='tele-controls' style='display:none;'>
4286<div class='tele-preset-row'>
4287<div class='preset-card active' id='btn-preset-photo' onclick='setTelePreset("photo")'>
4288<div class='preset-icon'><i class='fa-solid fa-image'></i></div>
4289<div class='preset-info'>
4290<strong>Photo Mode</strong><span>300 x 300 Pixels</span>
4291</div>
4292<div class='active-badge'>
4293<i class='fa-solid fa-circle-check'></i>
4294</div>
4295</div>
4296<div class='preset-card' id='btn-preset-sig' onclick='setTelePreset("sig")'>
4297<div class='preset-icon'><i class='fa-solid fa-pen-nib'></i></div>
4298<div class='preset-info'>
4299<strong>Signature Mode</strong><span>300 x 80 Pixels</span>
4300</div>
4301<div class='active-badge'>
4302<i class='fa-solid fa-circle-check'></i>
4303</div>
4304</div>
4305</div>
4306<!-- Manual Cropper Area -->
4307<div class='cropper-container-wrapper'>
4308<img id='tele-crop-image' src=''/>
4309</div>
4310<button class='st-save-btn' onclick='processTeleCrop()' style='background:#059669; width:100%; padding:15px; border-radius:12px; color:#fff; border:none; font-weight:800; cursor:pointer;' type='button'>
4311<i class='fa-solid fa-crop-simple'></i> Crop & Process Image
4312        </button>
4313<!-- Result Area -->
4314<div id='tele-result-area' style='display:none;'>
4315<div class='tele-result-card'>
4316<span style='font-weight:800; color:#059669; font-size:12px;'>READY FOR TELETALK</span>
4317<div class='result-img-box'>
4318<img alt='Result' id='tele-result-preview' src=''/>
4319</div>
4320<p id='tele-result-info' style='font-weight:800; margin:0;'>
4321              Size: 0 KB
4322            </p>
4323<div style='display:grid; grid-template-columns: 1fr 1fr; gap:10px; width: 100%; max-width: 400px;'>
4324<button onclick='downloadTeleImg()' style='background:#059669; color:#fff; padding:12px; border-radius:10px; border:none; cursor:pointer; font-weight:700;' type='button'>
4325<i class='fa-solid fa-download'></i> Download
4326              </button>
4327<button onclick='resetTele()' style='background:#ef4444; color:#fff; padding:12px; border-radius:10px; border:none; cursor:pointer; font-weight:700;' type='button'>
4328<i class='fa-solid fa-trash-can'></i> Delete
4329              </button>
4330</div>
4331</div>
4332</div>
4333</div>
4334</div>
4335</div>
4336</div>
4337<div class='crop-modal-overlay' id='gridModal' style='display:none;'>
4338<div class='crop-modal-content' style='max-width: 1200px;'>
4339<span class='close-crop-modal' onclick='closeGridModal()'>&#215;</span>
4340<h2 style='color:#3b82f6; text-align:center; margin-bottom:20px; font-weight: 800; display: flex; align-items: center; justify-content: center; gap: 12px;'>
4341<i class='fa-solid fa-border-all'></i> Photo Print Layout Pro
4342    </h2>
4343<div class='cp-box' style='border: 2px solid #3b82f6; border-radius: 20px; padding: 15px; background: #fff;'>
4344<div class='sheet-pro-toolbar'>
4345<div class='toolbar-row' style='display: flex; justify-content: center; gap: 10px; flex-wrap: wrap;'>
4346<button onclick='document.getElementById("grid-input").click()' style='background:#3b82f6; color:#fff; border-radius: 8px; padding: 8px 15px; border:none; cursor:pointer; font-weight:700;'>
4347<i class='fa-solid fa-upload'></i> Upload Photo
4348          </button>
4349<input accept='image/*' id='grid-input' onchange='handleGridUpload(this)' style='display:none' type='file'/>
4350<select id='grid-paper-size' onchange='updateGridLayout()'>
4351<option selected='selected' value='a4'>Paper: A4 Size</option>
4352<option value='4r'>Paper: 4R Size (4x6")</option>
4353<option value='legal'>Paper: Legal Size</option>
4354</select>
4355<select id='grid-photo-size' onchange='resetAndRender()'>
4356<option selected='selected' value='1.5,1.9'>
4357              Passport (BD) 1.5x1.9 in
4358            </option>
4359<option value='2,2'>Passport (USA/India) 2x2 in</option>
4360<option value='0.86,1.06'>Stamp Size (BD) 22x27 mm</option>
4361<option value='1,1.25'>Stamp (1x1.25) in</option>
4362<option value='1.9,1.5'>Joint Photo 1.9x1.5 in</option>
4363<option value='3.37,2.12'>Smart Card / NID 3.37x2.12 in</option>
4364<option value='3.3,2.1'>Original NID 3.3x2.1 in</option>
4365<option value='3.5,5'>3R / Album Photo 3.5x5 in</option>
4366<option value='4,6'>4R Photo 4x6 in</option>
4367<option value='5,7'>5R Photo 5x7 in</option>
4368<option value='6,8'>6R Photo 6x8 in</option>
4369<option value='8,10'>8R Photo 8x10 in</option>
4370<option value='8,12'>8x12 Photo 8x12 in</option>
4371<option value='10,12'>10R Photo 10x12 in</option>
4372<option value='11,14'>11x14 Photo 11x14 in</option>
4373<option value='12,18'>12x18 Photo 12x18 in</option>
4374<option value='5,5'>Square Photo 5x5 in</option>
4375<option value='2.5,3.5'>Wallet Photo 2.5x3.5 in</option>
4376</select>
4377<div class='counter-box'>
4378<button onclick='changeGridCount(-1)' type='button'>-</button>
4379<input id='grid-count-val' readonly='readonly' type='text' value='0'/>
4380<button onclick='changeGridCount(1)' type='button'>+</button>
4381</div>
4382</div>
4383</div>
4384<div id='grid-scroll-wrapper' style='background: #52525b; padding: 30px 10px; overflow: auto; text-align: center;'>
4385<div id='grid-page-unit'>
4386<div id='photo-grid-render'>
4387<!-- Photos appear here -->
4388</div>
4389</div>
4390</div>
4391<div class='actions' style='display:grid; grid-template-columns: 1fr 1fr; gap:10px; margin-top:15px;'>
4392<button class='conv-btn-main' onclick='printGridContent()' style='background:#1e40af !important; margin:0;' type='button'>
4393<i class='fa-solid fa-print'></i> Direct Print / Save PDF
4394        </button>
4395<button class='conv-btn-main' onclick='resetGrid()' style='background:#ef4444 !important; margin:0;' type='button'>
4396<i class='fa-solid fa-trash-can'></i> Clear Layout
4397        </button>
4398</div>
4399<div class='print-instruction-box'>
4400<strong><i class='fa-solid fa-circle-info'></i> Printing & Saving
4401          Instructions:</strong>
4402<ul>
4403<li>
4404<strong>To Save as PDF:</strong> Click the
4405            <b>"Direct Print"</b> button. In the print window, change
4406            the <b>Destination</b> to <b>"Save as PDF"</b>.
4407          </li>
4408<li>
4409<strong>Paper Size:</strong> Ensure the <b>Paper Size</b> (A4,
4410            Legal, or 4R) in your printer settings matches the selection in this
4411            tool.
4412          </li>
4413<li>
4414<strong>Margins:</strong> Set <b>Margins</b> to
4415            <b>"None"</b> or <b>"Minimum"</b> to prevent
4416            photos from being cut off.
4417          </li>
4418<li>
4419<strong>Scale:</strong> Always set the <b>Scale</b> to
4420            <b>"100%"</b> or <b>"Default"</b> for accurate
4421            photo dimensions.
4422          </li>
4423</ul>
4424</div>
4425</div>
4426</div>
4427</div>
4428<div class='crop-modal-overlay' id='letterModal' style='display:none;'>
4429<div class='crop-modal-content' style='max-width: 1200px;'>
4430<span class='close-crop-modal' onclick='closeLetterModal()'>&#215;</span>
4431<h2 id='letter-tool-title' style='color:#6366f1; text-align:center; margin-bottom:15px; font-weight: 800; display: flex; align-items: center; justify-content: center; gap: 12px;'>
4432<i class='fa-solid fa-file-pen'></i> Official Cover Letter Pro
4433    </h2>
4434<div class='cp-box' style='border: 2px solid #6366f1; border-radius: 20px; padding: 10px; background: #fff;'>
4435<div class='sheet-pro-toolbar'>
4436<div class='toolbar-row' style='display: flex; justify-content: center; gap: 10px; flex-wrap: wrap;'>
4437<div class='xph-lang-toggle'>
4438<button class='ph-tab active' id='lt-en-btn' onclick='switchLetterLang("en")'>
4439              English
4440            </button>
4441<button class='ph-tab' id='lt-bn-btn' onclick='switchLetterLang("bn")'>
4442              ব&#2494;&#2434;ল&#2494;
4443            </button>
4444</div>
4445<select id='letter-template' onchange='loadTemplate(this.value)' style='padding: 8px; border-radius: 8px; border: 1px solid #6366f1; font-weight: 700;'>
4446<option value='job'>Job Application</option>
4447<option value='leave'>Leave of Absence</option>
4448<option value='cover'>General Cover Letter</option>
4449</select>
4450<button onclick='execCmd("bold")' title='Bold'>
4451<i class='fa-solid fa-bold'></i>
4452</button>
4453<button onclick='execCmd("underline")' title='Underline'>
4454<i class='fa-solid fa-underline'></i>
4455</button>
4456<select id='lt-page-size' onchange='updateLetterLayout()' style='padding: 8px; border-radius: 8px;'>
4457<option selected='selected' value='a4'>A4 Paper</option>
4458<option value='legal'>Legal Paper</option>
4459</select>
4460</div>
4461</div>
4462<div class='a4-container-wrapper' id='lt-scroll-area' style='background:#334155; padding: 40px 10px;'>
4463<div class='sheet-page-unit' id='lt-page-unit' style='display: table; height: auto !important; width: 210mm; background: #fff; padding: 25mm 20mm; margin: 0 auto; box-shadow: 0 10px 40px rgba(0,0,0,0.5);'>
4464<div contenteditable='true' id='letter-editor' spellcheck='false' style='outline:none; text-align: justify; font-size: 17px; line-height: 1.6; font-family: "SolaimanLipi", Arial, sans-serif;'></div>
4465</div>
4466</div>
4467<div class='actions' style='display:grid; grid-template-columns: 1fr 1fr; gap:10px; margin-top:15px;'>
4468<button class='conv-btn-main' onclick='printLetter()' style='background:#1e40af !important; margin:0;' type='button'>
4469<i class='fa-solid fa-print'></i> Direct Print / Save PDF
4470        </button>
4471<button class='conv-btn-main' onclick='resetLetter()' style='background:#ef4444 !important; margin:0;' type='button'>
4472<i class='fa-solid fa-trash-can'></i> Clear Page
4473        </button>
4474</div>
4475<div class='print-instruction-box' id='lt-tips-box' style='margin-top:20px; background: #f5f3ff; border-color: #8b5cf6; color: #5b21b6;'>
4476<strong><i class='fa-solid fa-circle-info'></i> Application Writing
4477          Tips:</strong>
4478<ul style='margin:0; padding-left:20px; font-size: 12px;'>
4479<li>
4480            Click on any text to edit and provide your personal information.
4481          </li>
4482<li>
4483            To Save as PDF: Click <b>Direct Print</b> and select
4484            <b>"Save as PDF"</b> as the destination.
4485          </li>
4486<li>
4487            Make sure to double-check the <b>Date</b> and
4488            <b>Recipient Address</b> before printing.
4489          </li>
4490</ul>
4491</div>
4492</div>
4493</div>
4494</div>
4495<!-- NID Joiner Pro (Horizontal Default) -->
4496<div class='njpro_modal_overlay' id='njpro_main_modal' style='display:none;'>
4497<div class='njpro_modal_content' id='njpro_content_box'>
4498<!-- Close Button (Fixed & Visible) -->
4499<span class='njpro_close_btn' onclick='njpro_closeModal()'>&#215;</span>
4500<h2 id='njpro_title' style='color:#f43f5e; text-align:center; margin-bottom:20px; font-weight: 800; display: flex; align-items: center; justify-content: center; gap: 12px; margin-top: 10px;'>
4501<i class='fa-solid fa-id-card'></i> NID Front-Back Joiner
4502    </h2>
4503<div class='njpro_box' style='border: 2px solid #f43f5e; border-radius: 20px; padding: 15px; background: #fff; position: relative;'>
4504<!-- Perspective Crop Overlay -->
4505<div id='njpro_crop_overlay' style='display:none; position:absolute; top:0; left:0; width:100%; height:100%; background:rgba(0,0,0,0.95);
4505 z-index:1000; border-radius:20px; flex-direction:column; align-items:center; justify-content:center; padding:10px; overflow: hidden;'>
4506<!-- Wrapper -->
4507<div style='display: flex; flex-direction: column; align-items: center; gap: 10px; max-width: 100%; width: auto;'>
4508<h3 style='color:#fff; margin: 0; font-family:"Inter", sans-serif; font-size: 16px; text-align:center;'>
4509            Drag corners to select the card area
4510          </h3>
4511<!-- Specific Canvas Area -->
4512<div id='njpro_canvas_wrapper' style='background: transparent; padding: 0; border: none; position: relative; max-width: 100%; line-height: 0; display: inline-block;'>
4513<div id='njpro_crop_container' style='position: relative; line-height: 0; display: block; margin: 0 auto;'>
4514<canvas id='njpro_select_canvas'></canvas>
4515<div class='njpro_point' id='njpro_pt0'></div>
4516<div class='njpro_point' id='njpro_pt1'></div>
4517<div class='njpro_point' id='njpro_pt2'></div>
4518<div class='njpro_point' id='njpro_pt3'></div>
4519</div>
4520</div>
4521<!-- Buttons -->
4522<div style='display:flex; gap:10px; margin-top: 5px;'>
4523<button onclick='njpro_applyCrop()' style='background:#059669; color:#fff; padding:10px 25px; border:none; border-radius:6px; font-weight:800; cursor:pointer;' type='button'>
4524              Crop & Save
4525            </button>
4526<button onclick='njpro_cancelCrop()' style='background:#ef4444; color:#fff; padding:10px 25px; border:none; border-radius:6px; font-weight:800; cursor:pointer;' type='button'>
4527              Cancel
4528            </button>
4529</div>
4530</div>
4531<!-- Zoom Glass -->
4532<div id='njpro_zoom_glass' style='display:none; position:fixed; width:120px; height:120px; border:3px solid #fff; border-radius:50%; overflow:hidden; z-index:2000; box-shadow: 0 0 15px rgba(0,0,0,0.8); background: #000; pointer-events: none;'>
4533<canvas height='240' id='njpro_zoom_canvas' style='width:100%; height:100%; object-fit: cover;' width='240'></canvas>
4534<div style='position:absolute; top:50%; left:50%; width:20px; height:2px; background:rgba(244,63,94,0.8); transform:translate(-50%, -50%);'></div>
4535<div style='position:absolute; top:50%; left:50%; width:2px; height:20px; background:rgba(244,63,94,0.8); transform:translate(-50%, -50%);'></div>
4536</div>
4537</div>
4538<!-- Upload Area -->
4539<div class='njpro_upload_grid'>
4540<div class='njpro_upload_area' onclick='document.getElementById("njpro_front_in").click()'>
4541<i class='fa-solid fa-id-card' style='color:#f43f5e'></i>
4542<p id='njpro_txt_f_status'>Upload Front Side</p>
4543<input accept='image/*' id='njpro_front_in' onchange='njpro_loadPart(this, "front")' style='display:none' type='file'/>
4544</div>
4545<div class='njpro_upload_area' onclick='document.getElementById("njpro_back_in").click()'>
4546<i class='fa-solid fa-address-card' style='color:#f43f5e'></i>
4547<p id='njpro_txt_b_status'>Upload Back Side</p>
4548<input accept='image/*' id='njpro_back_in' onchange='njpro_loadPart(this, "back")' style='display:none' type='file'/>
4549</div>
4550</div>
4551<!-- Toolbar -->
4552<div class='njpro_toolbar' style='margin-top:20px'>
4553<div class='njpro_toolbar_row' style='display: flex; justify-content: center; gap: 10px; flex-wrap: wrap;'>
4554<!-- Horizontal Active by Default -->
4555<button class='njpro_preset_btn active' id='njpro_btn_h' onclick='njpro_setMode("h")' type='button'>
4556<i class='fa-solid fa-grip-lines-vertical'></i> Horizontal
4557          </button>
4558<button class='njpro_preset_btn' id='njpro_btn_v' onclick='njpro_setMode("v")' type='button'>
4559<i class='fa-solid fa-grip-lines'></i> Vertical
4560          </button>
4561<div class='njpro_toolbar_item' style='background: #f1f5f9; padding: 5px 15px; border-radius: 8px;'>
4562<input checked='checked' id='njpro_border_chk' onchange='njpro_drawJoined()' type='checkbox'/>
4563<label for='njpro_border_chk' style='margin-left:5px; font-size:13px; font-weight: 700; color:#f43f5e;'>Black Border</label>
4564</div>
4565</div>
4566</div>
4567<!-- Preview Area -->
4568<div id='njpro_preview_wrapper' style='background: #e8e8f2; padding: 30px 10px; margin-top:15px; border-radius:15px; text-align: center; overflow: auto;'>
4569<canvas id='njpro_main_canvas' style='max-width: 100%; height: auto; background: #fff; box-shadow: 0 10px 40px rgba(0,0,0,0.5); display: none;'></canvas>
4570<div id='njpro_placeholder' style='color:#94a3b8; padding: 60px 0;'>
4571<i class='fa-solid fa-layer-group' style='font-size:50px; margin-bottom:15px;'></i><br/>
4572<span style='font-family:"Inter", sans-serif; font-size: 16px;'>Crop and upload both sides of the NID correctly</span>
4573</div>
4574</div>
4575<!-- Magic Filters -->
4576<div id='njpro_magic_controls' style='display:none; margin-top:20px; padding:15px; background:#f8fafc; border-radius:15px; border:1px solid #e2e8f0;'>
4577<div style='display:grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap:15px; align-items: center;'>
4578<div>
4579<button class='njpro_magic_btn' onclick='njpro_applyMagic()' type='button'>
4580<i class='fa-solid fa-wand-magic-sparkles'></i> Magic Color Scan
4581            </button>
4582</div>
4583<div class='njpro_input_group'>
4584<label for='njpro_range_sat' style='font-size:11px; font-weight:800; color:#6366f1; font-family: "Inter", sans-serif;'>COLOR BOOST: <b id='njpro_val_sat'>100%</b></label>
4585<input id='njpro_range_sat' max='200' min='0' oninput='njpro_updateFilters()' style='width:100%; accent-color:#6366f1;' type='range' value='100'/>
4586</div>
4587<div class='njpro_input_group'>
4588<label for='njpro_range_ct' style='font-size:11px; font-weight:800; color:#6366f1; font-family: "Inter", sans-serif;'>TEXT DARKEN: <b id='njpro_val_ct'>100%</b></label>
4589<input id='njpro_range_ct' max='200' min='0' oninput='njpro_updateFilters()' style='width:100%; accent-color:#6366f1;' type='range' value='100'/>
4590</div>
4591</div>
4592</div>
4593<!-- Actions -->
4594<div class='njpro_actions' style='display:grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap:10px; margin-top:20px;'>
4595<button class='njpro_action_btn' disabled='disabled' id='njpro_dl_jpg' onclick='njpro_downloadJPG()' style='background:#059669 !important; margin:0; opacity: 0.5;
4595 cursor: not-allowed;' type='button'>
4596<i class='fa-solid fa-download'></i> Save JPG
4597        </button>
4598<button class='njpro_action_btn' disabled='disabled' id='njpro_dl_pdf' onclick='njpro_downloadPDF()' style='background:#ea580c !important; margin:0; opacity: 0.5; cursor: not-allowed;' type='button'>
4599<i class='fa-solid fa-file-pdf'></i> Save A4 PDF
4600        </button>
4601<button class='njpro_action_btn' onclick='njpro_resetAll()' style='background:#ef4444 !important; margin:0;' type='button'>
4602<i class='fa-solid fa-trash-can'></i> Clear All
4603        </button>
4604</div>
4605</div>
4606</div>
4607</div>
4608<!-- Photo Name & Date Adder Pro Modal -->
4609<div class='crop-modal-overlay' id='pndModal' style='display:none;'>
4610<div class='crop-modal-content' style='max-width: 650px; width: 95%;'>
4611<span class='close-crop-modal' onclick='closePndModal()'>&#215;</span>
4612<div class='cp-box' style='border: 2px solid #4f46e5; border-radius: 20px; padding: 20px; background: #fff; font-family: "Inter", sans-serif;'>
4613<!-- Title Section -->
4614<h2 class='pnd-solaiman' id='pnd-main-title' style='color:#4f46e5; text-align:center; margin-bottom:15px; font-weight: 800; font-size: 24px;'>
4615<i class='fa-solid fa-user-tag'></i> Photo Name & Date Adder
4616      </h2>
4617<!-- Language Toggle -->
4618<div class='dt-lang-switch' style='margin-bottom: 20px; display: flex; justify-content: center; background: #f1f5f9; padding: 5px; border-radius: 50px; width: fit-content; margin: 0 auto 20px;'>
4619<button class='ph-tab active' id='pnd-en-btn' onclick='setPndLang("en")'>
4620          English
4621        </button>
4622<button class='ph-tab pnd-solaiman' id='pnd-bn-btn' onclick='setPndLang("bn")'>
4623          ব&#2494;&#2434;ল&#2494;
4624        </button>
4625</div>
4626<!-- Upload Area -->
4627<div class='cp-upload-area' id='pnd-drop-zone' onclick='document.getElementById("pnd-input").click()' style='padding: 20px; border: 2px dashed #4f46e5; border-radius: 15px; background: #fdfbff; cursor:pointer;'>
4628<i class='fa-solid fa-cloud-arrow-up' style='font-size:35px; color:#4f46e5;'></i>
4629<p class='pnd-solaiman' id='pnd-upload-text' style='margin-top: 10px; font-weight: 700; color: #4b5563;'>
4630          Click to Upload Photo
4631        </p>
4632<input accept='image/*' id='pnd-input' onchange='loadPndImage(event)' style='display:none' type='file'/>
4633</div>
4634<!-- Inputs & Colors Grid -->
4635<div class='pnd-controls-grid' style='margin-top: 20px; display: grid; gap: 15px;'>
4636<!-- Name Input & Color -->
4637<div style='display: flex; gap: 10px; align-items: flex-end;'>
4638<div style='flex: 1;'>
4639<label class='pnd-solaiman' for='pnd-name' id='lbl-pnd-name' style='font-size: 13px; font-weight: 800; color: #4f46e5; display: block; margin-bottom: 5px;'>Type Full Name</label>
4640<input id='pnd-name' oninput='drawPndCanvas()' placeholder='Name' style='width: 100%; padding: 10px; border: 1px solid #cbd5e1; border-radius: 8px;' type='text'/>
4641</div>
4642<div>
4643<label for='pnd-name-color' style='font-size: 10px; font-weight: 800; display: block; text-align: center;'>Color</label>
4644<input id='pnd-name-color' oninput='drawPndCanvas()' style='width: 40px; height: 40px; padding: 0; border: none; cursor: pointer; border-radius: 5px;' type='color' value='#000000'/>
4645</div>
4646</div>
4647<!-- Date Input & Color -->
4648<div style='display: flex; gap: 10px; align-items: flex-end;'>
4649<div style='flex: 1;'>
4650<label class='pnd-solaiman' for='pnd-date' id='lbl-pnd-date' style='font-size: 13px; font-weight: 800; color: #4f46e5; display: block; margin-bottom: 5px;'>Type Date</label>
4651<input id='pnd-date' oninput='drawPndCanvas()' placeholder='Date' style='width: 100%; padding: 10px; border: 1px solid #cbd5e1; border-radius: 8px;' type='text'/>
4652</div>
4653<div>
4654<label for='pnd-date-color' style='font-size: 10px; font-weight: 800; display: block; text-align: center;'>Color</label>
4655<input id='pnd-date-color' oninput='drawPndCanvas()' style='width: 40px; height: 40px; padding: 0; border: none; cursor: pointer; border-radius: 5px;' type='color' value='#000000'/>
4656</div>
4657</div>
4658<!-- Divider Line Option -->
4659<div style='display: flex; align-items: center; gap: 10px; background: #f8fafc; padding: 10px; border-radius: 8px;'>
4660<input id='pnd-show-line' onchange='drawPndCanvas()' style='width: 18px; height: 18px; cursor: pointer;' type='checkbox'/>
4661<label class='pnd-solaiman' for='pnd-show-line' id='lbl-pnd-line' style='font-size: 14px; font-weight: 700; cursor: pointer; color: #334155;'>Add Separator Line</label>
4662<input id='pnd-line-color' oninput='drawPndCanvas()' style='width: 30px; height: 25px; border: none; cursor: pointer;' type='color' value='#000000'/>
4663</div>
4664</div>
4665<!-- Preview Box (Initially Hidden) -->
4666<div class='pnd-preview-container' id='pnd-preview-box-wrapper' style='margin-top: 20px; text-align: center; background: #334155; border-radius: 12px; height: 600px; display: none; align-items: center; justify-content: center; overflow: hidden; border: 4px solid #f1f5f9;'>
4667<canvas id='pnd-canvas' style='max-height: 100%; max-width: 100%; display:inline-block;'></canvas>
4668</div>
4669<!-- Font Size Slider -->
4670<div style='margin-top: 15px;'>
4671<label for='pnd-font-size' style='font-size: 11px; font-weight: 800; color: #4f46e5;'>Font Size Adjustment</label>
4672<input id='pnd-font-size' max='65' min='10' oninput='drawPndCanvas()' style='width: 100%; cursor: pointer; accent-color: #4f46e5;' type='range' value='25'/>
4673</div>
4674<!-- Main Actions -->
4675<div class='actions' style='display:grid; grid-template-columns: 1fr 1fr; gap:10px; margin-top:20px;'>
4676<button class='conv-btn-main' onclick='downloadPndImage()' style='background:#059669 !important; padding: 12px;'>
4677<i class='fa-solid fa-download'></i> Save Image
4678        </button>
4679<button class='conv-btn-main' onclick='resetPnd()' style='background:#ef4444 !important; padding: 12px;'>
4680<i class='fa-solid fa-trash-can'></i> Reset
4681        </button>
4682</div>
4683<!-- Introduction/Instruction Box -->
4684<div id='pnd-intro-box' style='margin-top: 20px; padding: 15px; background: #fffbeb; border: 1px dashed #f59e0b; border-radius: 12px; text-align: left; line-height: 1.6;'>
4685<i class='fa-solid fa-circle-info' style='color: #f59e0b; margin-right: 5px;'></i>
4686<span class='pnd-solaiman' id='pnd-intro-text' style='font-size: 13px; color: #92400e; font-weight: 700;'>
4687          Download your photo from here and use our
4688          <b>Passport Photo Maker</b> to print it on A4 paper.
4689        </span>
4690</div>
4691</div>
4692</div>
4693</div>
4694<!-- Student ID Card Maker Modal -->
4695<div class='crop-modal-overlay' id='idCardModal' style='display:none;'>
4696<div class='crop-modal-content' style='max-width: 850px; width: 95%;'>
4697<span class='close-crop-modal' onclick='closeIdCardModal()'>&#215;</span>
4698<div class='cp-box' style='border: 2px solid #0891b2; border-radius: 20px; padding: 20px; background: #fff;'>
4699<h2 class='pnd-solaiman' id='idm-main-title' style='color:#0891b2; text-align:center; margin-bottom:15px; font-weight: 800; font-size: 24px;'>
4700<i class='fa-solid fa-address-card'></i> Student ID Card Maker
4701      </h2>
4702<!-- Language & Orientation Tabs -->
4703<div style='display: flex; flex-wrap: wrap; justify-content: center; gap: 15px; margin-bottom: 20px;'>
4704<!-- Language Toggle -->
4705<div class='dt-lang-switch' style='display: flex; background: #f1f5f9; padding: 5px; border-radius: 50px;'>
4706<button class='ph-tab active' id='idm-en-btn' onclick='setIdLang("en")'>
4707            English
4708          </button>
4709<button class='ph-tab pnd-solaiman' id='idm-bn-btn' onclick='setIdLang("bn")'>
4710            ব&#2494;&#2434;ল&#2494;
4711          </button>
4712</div>
4713<!-- Orientation Toggle -->
4714<div class='dt-lang-switch' style='display: flex; background: #f0fdfa; padding: 5px; border-radius: 50px; border: 1px solid #0891b2;'>
4715<button class='ph-tab active' id='idm-h-btn' onclick='setIdOrient("h")'>
4716            Horizontal
4717          </button>
4718<button class='ph-tab' id='idm-v-btn' onclick='setIdOrient("v")'>
4719            Vertical
4720          </button>
4721</div>
4722</div>
4723<div class='idm-grid'>
4724<!-- Left Side: Inputs -->
4725<div class='idm-inputs-side'>
4726<div style='display: grid; grid-template-columns: 1fr 1fr; gap: 10px;'>
4727<div class='idm-upload-mini' onclick='document.getElementById("idm-photo-in").click()'>
4728<i class='fa-solid fa-user-plus'></i>
4729<span class='pnd-solaiman' id='txt-up-photo'>Student Photo</span>
4730<input accept='image/*' id='idm-photo-in' onchange='loadIdAsset(event, "photo")' style='display:none' type='file'/>
4731</div>
4732<div class='idm-upload-mini' onclick='document.getElementById("idm-logo-in").click()'>
4733<i class='fa-solid fa-building-columns'></i>
4734<span class='pnd-solaiman' id='txt-up-logo'>Upload Logo</span>
4735<input accept='image/*' id='idm-logo-in' onchange='loadIdAsset(event, "logo")' style='display:none' type='file'/>
4736</div>
4737</div>
4738<div class='st-input-group'>
4739<label class='pnd-solaiman' for='idm-inst' id='lbl-inst-name'>Institution Name</label>
4740<input id='idm-inst' oninput='drawIdCard()' placeholder='School Name' type='text'/>
4741</div>
4742<div class='st-input-group'>
4743<label class='pnd-solaiman' for='idm-name' id='lbl-idm-name'>Student Name</label>
4744<input id='idm-name' oninput='drawIdCard()' placeholder='Name' type='text'/>
4745</div>
4746<div style='display: grid; grid-template-columns: 1fr 1fr; gap: 10px;'>
4747<div class='st-input-group'>
4748<label class='pnd-solaiman' for='idm-class' id='lbl-idm-class'>Class</label>
4749<input id='idm-class' oninput='drawIdCard()' placeholder='Class' type='text'/>
4750</div>
4751<div class='st-input-group'>
4752<label class='pnd-solaiman' for='idm-roll' id='lbl-idm-roll'>Roll No</label>
4753<input id='idm-roll' oninput='drawIdCard()' placeholder='Roll' type='text'/>
4754</div>
4755</div>
4756<div class='st-input-group'>
4757<label class='pnd-solaiman' for='idm-father' id='lbl-idm-father'>Father's Name</label>
4758<input id='idm-father' oninput='drawIdCard()' placeholder='Father Name' type='text'/>
4759</div>
4760<div style='display: grid; grid-template-columns: 1fr 1fr; gap: 10px;'>
4761<div class='st-input-group'>
4762<label class='pnd-solaiman' for='idm-blood' id='lbl-idm-blood'>Blood Group</label>
4763<input id='idm-blood' oninput='drawIdCard()' placeholder='A+' type='text'/>
4764</div>
4765<div class='st-input-group'>
4766<label class='pnd-solaiman' for='idm-phone' id='lbl-idm-phone'>Phone</label>
4767<input id='idm-phone' oninput='drawIdCard()' placeholder='017...' type='text'/>
4768</div>
4769</div>
4770<div class='st-input-group'>
4771<label class='pnd-solaiman' for='idm-color' id='lbl-idm-theme'>Card Theme Color</label>
4772<input id='idm-color' oninput='drawIdCard()' style='width:100%; height:35px; border:none; border-radius:5px; cursor:pointer;' type='color' value='#0891b2'/>
4773</div>
4774</div>
4775<!-- Right Side: Preview & Actions -->
4776<div class='idm-preview-side'>
4777<div id='idm-preview-box'>
4778<canvas id='idm-canvas' style='display:none;'></canvas>
4779<div id='idm-placeholder' style='color: #94a3b8; text-align: center;'>
4780<i class='fa-solid fa-id-card' style='font-size: 50px; opacity: 0.3;'></i><br/>
4781<span class='pnd-solaiman' id='txt-idm-pre'></span>
4782</div>
4783</div>
4784<div class='actions' style='display:grid; grid-template-columns: 1fr 1fr; gap:10px; margin-top:20px;'>
4785<button class='conv-btn-main' onclick='downloadIdCard()' style='background:#059669 !important;'>
4786<i class='fa-solid fa-download'></i> Save ID Card
4787            </button>
4788<button class='conv-btn-main' onclick='resetIdCard()' style='background:#ef4444 !important;'>
4789<i class='fa-solid fa-trash-can'></i> Reset All
4790            </button>
4791</div>
4792</div>
4793</div>
4794<!-- Intro Box -->
4795<div id='idm-intro-box' style='margin-top: 20px; padding: 15px; background: #ecfeff; border: 1px dashed #0891b2; border-radius: 12px; text-align: left;'>
4796<i class='fa-solid fa-circle-info' style='color: #0891b2; margin-right: 5px;'></i>
4797<span class='pnd-solaiman' id='idm-intro-text' style='font-size: 13px; color: #155e75; font-weight: 700;'>
4798          Professional Student ID Card (3.37 x 2.125 in). Ready for studio
4799          printing.
4800        </span>
4801</div>
4802</div>
4803</div>
4804</div>
4805<!-- Biodata & CV Maker Modal -->
4806<div class='crop-modal-overlay' id='biodataModal' style='display:none;'>
4807<div class='crop-modal-content' style='max-width: 900px; width: 95%;'>
4808<span class='close-crop-modal' onclick='closeBiodataModal()'>&#215;</span>
4809<div class='cp-box' style='border: 2px solid #7c3aed; border-radius: 20px; padding: 20px; background: #fff;'>
4810<h2 class='pnd-solaiman' id='bio-main-title' style='color:#7c3aed; text-align:center; margin-bottom:15px; font-weight: 800; font-size: 24px;'>
4811<i class='fa-solid fa-file-user'></i> Biodata & CV Maker
4812      </h2>
4813<!-- Language & Type Tabs -->
4814<div style='display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-bottom: 20px;'>
4815<div class='dt-lang-switch' style='display: flex; background: #f1f5f9; padding: 5px; border-radius: 50px;'>
4816<button class='ph-tab active' id='bio-en-btn' onclick='setBioLang("en")'>
4817            English
4818          </button>
4819<button class='ph-tab pnd-solaiman' id='bio-bn-btn' onclick='setBioLang("bn")'>
4820            ব&#2494;&#2434;ল&#2494;
4821          </button>
4822</div>
4823<div class='dt-lang-switch' style='display: flex; background: #f5f3ff; padding: 5px; border-radius: 50px; border: 1px solid #7c3aed;'>
4824<button class='ph-tab active' id='type-job-btn' onclick='setBioType("job")'>
4825            Job CV
4826          </button>
4827<button class='ph-tab' id='type-marriage-btn' onclick='setBioType("marriage")'>
4828            Marriage Biodata
4829          </button>
4830</div>
4831</div>
4832<div class='bio-grid' style='display: grid; grid-template-columns: 1fr 1fr; gap: 20px;'>
4833<!-- Left Side: Form Inputs -->
4834<div class='bio-inputs-side' style='display: grid; gap: 12px; max-height: 500px; overflow-y: auto; padding-right: 10px;'>
4835<div class='bio-upload-area' onclick='document.getElementById(&#39;bio-photo-in&#39;).click()' style='border: 2px dashed #7c3aed; padding: 15px; border-radius: 10px; text-align: center; cursor: pointer; background: #fdfbff;'>
4836<i class='fa-solid fa-camera' style='font-size: 24px; color: #7c3aed;'></i>
4837<p class='pnd-solaiman' id='bio-up-txt' style='font-size: 12px; font-weight: 700; margin-top: 5px;'>
4838              Upload Profile Photo
4839            </p>
4840<input accept='image/*' id='bio-photo-in' onchange='loadBioPhoto(event)' style='display:none' type='file'/>
4841</div>
4842<div class='st-input-group'>
4843<label class='pnd-solaiman' for='bio-name' id='lbl-bio-name'>Full Name</label>
4844<input id='bio-name' placeholder='Name' type='text'/>
4845</div>
4846<div style='display: grid; grid-template-columns: 1fr 1fr; gap: 10px;'>
4847<div class='st-input-group'>
4848<label class='pnd-solaiman' for='bio-father' id='lbl-bio-father'>Father's Name</label>
4849<input id='bio-father' type='text'/>
4850</div>
4851<div class='st-input-group'>
4852<label class='pnd-solaiman' for='bio-mother' id='lbl-bio-mother'>Mother's Name</label>
4853<input id='bio-mother' type='text'/>
4854</div>
4855</div>
4856<div style='display: grid; grid-template-columns: 1fr 1fr; gap: 10px;'>
4857<div class='st-input-group'>
4858<label class='pnd-solaiman' for='bio-dob' id='lbl-bio-dob'>Date of Birth</label>
4859<input id='bio-dob' placeholder='DD/MM/YYYY' type='text'/>
4860</div>
4861<div class='st-input-group'>
4862<label class='pnd-solaiman' for='bio-religion' id='lbl-bio-religion'>Religion</label>
4863<input id='bio-religion' type='text'/>
4864</div>
4865</div>
4866<div id='marriage-fields' style='display: none; grid-template-columns: 1fr 1fr; gap: 10px;'>
4867<div class='st-input-group'>
4868<label class='pnd-solaiman' for='bio-height' id='lbl-bio-height'>Height</label>
4869<input id='bio-height' placeholder='5&#39; 6&#39;&#39;' type='text'/>
4870</div>
4871<div class='st-input-group'>
4872<label class='pnd-solaiman' for='bio-blood' id='lbl-bio-blood'>Blood Group</label>
4873<input id='bio-blood' placeholder='A+' type='text'/>
4874</div>
4875</div>
4876<div class='st-input-group'>
4877<label class='pnd-solaiman' for='bio-edu' id='lbl-bio-edu'>Educational Qualification</label>
4878<textarea id='bio-edu' placeholder='SSC, HSC, BA...' rows='3'></textarea>
4879</div>
4880<div class='st-input-group' id='job-exp-group'>
4881<label class='pnd-solaiman' for='bio-exp' id='lbl-bio-exp'>Work Experience / Skills</label>
4882<textarea id='bio-exp' rows='3'></textarea>
4883</div>
4884<div class='st-input-group'>
4885<label class='pnd-solaiman' for='bio-addr' id='lbl-bio-addr'>Address</label>
4886<textarea id='bio-addr' rows='2'></textarea>
4887</div>
4888<div style='display: grid; grid-template-columns: 1fr 1fr; gap: 10px;'>
4889<div class='st-input-group'>
4890<label class='pnd-solaiman' for='bio-phone' id='lbl-bio-phone'>Phone</label>
4891<input id='bio-phone' type='text'/>
4892</div>
4893<div class='st-input-group'>
4894<label class='pnd-solaiman' for='bio-email' id='lbl-bio-email'>Email</label>
4895<input id='bio-email' type='text'/>
4896</div>
4897</div>
4898</div>
4899<!-- Right Side: Live Preview Area -->
4900<div class='bio-preview-side'>
4901<div id='bio-preview-box' style='background:#52525b; border-radius: 12px; height: 500px; padding: 15px; overflow-y: auto; border: 4px solid #f1f5f9;'>
4902<div id='bio-render-area' style='background: white; width: 100%; min-height: 100%; padding: 30px; box-sizing: border-box; color: #333; position: relative; font-size: 12px; margin: 0 auto;'>
4903<div style='text-align: center; border-bottom: 2px solid #7c3aed; padding-bottom: 10px; margin-bottom: 20px;'>
4904<h1 id='pre-title' style='margin: 0; color: #7c3aed; font-size: 20px; text-transform: uppercase; font-family: inherit;'>
4905                  BIODATA
4906                </h1>
4907</div>
4908<div style='display: flex; gap: 20px; margin-bottom: 20px;'>
4909<div id='pre-img-box' style='width: 100px; height: 120px; border: 1px solid #ddd; background: #f9fafb; overflow: hidden; display: flex; align-items: center; justify-content: center;'>
4910<span style='color: #ccc; font-size: 10px;'>Photo</span>
4911</div>
4912<div style='flex: 1;'>
4913<h2 id='pre-name' style='margin: 0 0 10px; font-size: 16px; color: #111; font-family: inherit;'>
4914                    Name Placeholder
4915                  </h2>
4916<div id='pre-details' style='line-height: 1.8; font-family: inherit;'></div>
4917</div>
4918</div>
4919<div id='pre-sections' style='font-family: inherit;'></div>
4920</div>
4921</div>
4922<div class='actions' style='display:grid; grid-template-columns: 1fr 1fr; gap:10px; margin-top:20px;'>
4923<button class='conv-btn-main' id='download-btn' onclick='downloadBiodataPDF()' style='background:#059669 !important; color: white; border: none; padding: 10px; border-radius: 8px; cursor: pointer; font-weight: bold;'>
4924<i class='fa-solid fa-file-pdf'></i> Download PDF
4925            </button>
4926<button class='conv-btn-main' onclick='resetBiodata()' style='background:#ef4444 !important; color: white; border: none; padding: 10px; border-radius: 8px; cursor: pointer; font-weight: bold;'>
4927<i class='fa-solid fa-trash-can'></i> Reset All
4928            </button>
4929</div>
4930</div>
4931</div>
4932</div>
4933</div>
4934</div>
4935<!-- Dual Mode Translator Modal -->
4936<div class='crop-modal-overlay' id='translatorModal' style='display:none;'>
4937<div class='crop-modal-content' style='max-width: 700px;'>
4938<span class='close-crop-modal' onclick='closeTranslatorModal()'>&#215;</span>
4939<div class='cp-box' style='border: 2px solid #4f46e5; border-radius: 20px; padding: 25px; background: #fff;'>
4940<h2 style='color:#4f46e5; text-align:center; margin-bottom:15px; font-weight: 800;'>
4941<i class='fa-solid fa-language'></i> English or Bengali Translator
4942      </h2>
4943<!-- Language Switcher -->
4944<div style='display: flex; align-items: center; justify-content: center; gap: 15px; margin-bottom: 20px; background: #f1f5f9; padding: 10px; border-radius: 50px;'>
4945<span id='label-source' style='font-weight: 800; color: #4f46e5; font-size: 14px;'>ENGLISH</span>
4946<button id='btn-swap' onclick='swapTranslationMode()' style='background: #4f46e5; color: white; border: none; width: 40px; height: 40px; border-radius: 50%; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: 0.3s;'>
4947<i class='fa-solid fa-right-left'></i>
4948</button>
4949<span id='label-target' style='font-weight: 800; color: #059669; font-size: 14px;'>BENGALI</span>
4950</div>
4951<div class='translator-ui'>
4952<!-- Input -->
4953<div style='margin-bottom: 15px;'>
4954<textarea id='transInput' placeholder='Type English here...' style='width: 100%; height: 120px; padding: 12px; border: 2px solid #e2e8f0; border-radius: 12px; font-size: 16px; outline: none; resize: none; font-family: "SolaimanLipi", sans-serif;'></textarea>
4955</div>
4956<!-- Action Button -->
4957<button class='conv-btn-main' id='btnTranslate' onclick='processTranslation()' style='width: 100%; margin-bottom: 20px;'>
4958<i class='fa-solid fa-bolt'></i> Translate Now
4959        </button>
4960<!-- Output Area -->
4961<div style='position: relative;'>
4962<div id='transOutput' style='width: 100%; min-height: 120px; padding: 15px; border: 2px dashed #059669; border-radius: 12px; font-size: 18px; background: #f0fdf4; color: #1e293b; line-height: 1.6; font-family: "SolaimanLipi", sans-serif;'>
4963            অন&#2497;ব&#2494;দ এখ&#2494;ন&#2503; দ&#2503;খ&#2494;
4964            য&#2494;ব&#2503;...
4965          </div>
4966<!-- Copy Button -->
4967<button id='btnCopyTrans' onclick='copyTranslation()' style='position: absolute; right: 10px; bottom: 10px; background: #059669; color: white; border: none; padding: 6px 15px; border-radius: 6px; cursor: pointer; font-size: 13px; font-weight: 700; min-width: 80px; transition: 0.2s;'>
4968<i class='fa-solid fa-copy'></i>
4969<span id='copy-btn-text'>Copy</span>
4970</button>
4971</div>
4972</div>
4973</div>
4974</div>
4975</div>
4976<!-- Unit Converter Modal -->
4977<div class='crop-modal-overlay' id='unitModal' style='display:none;'>
4978<div class='crop-modal-content' style='max-width: 600px;'>
4979<span class='close-crop-modal' onclick='closeUnitModal()'>&#215;</span>
4980<div class='cp-box' style='border: 2px solid #0d9488; border-radius: 20px; padding: 25px; background: #fff;'>
4981<h2 style='color:#0d9488; text-align:center; margin-bottom:15px; font-weight: 800;'>
4982<i class='fa-solid fa-arrows-up-down-left-right'></i> Unit Converter Pro
4983      </h2>
4984<!-- Height Section -->
4985<div style='background: #f0fdfa; padding: 15px; border-radius: 15px; border: 1px solid #ccfbf1; margin-bottom: 20px;'>
4986<h3 style='margin-top:0; font-size: 16px; color: #0d9488;'>
4987<i class='fa-solid fa-person-arrow-up-from-line'></i> Height Converter
4988  </h3>
4989<div style='display: flex; gap: 10px; margin-bottom: 10px;'>
4990<div style='flex: 1;'>
4991<!-- Feet Label Fixed -->
4992<label for='h-feet' style='font-size: 11px; font-weight: 800; color: #64748b;'>FEET</label>
4993<input id='h-feet' oninput='calculateHeight()' placeholder='5' style='width: 100%; padding: 10px; border: 1px solid #cbd5e1; border-radius: 8px; font-weight: 700;' type='number'/>
4994</div>
4995<div style='flex: 1;'>
4996<!-- Inches Label Fixed -->
4997<label for='h-inch' style='font-size: 11px; font-weight: 800; color: #64748b;'>INCHES</label>
4998<input id='h-inch' oninput='calculateHeight()' placeholder='7' style='width: 100%; padding: 10px; border: 1px solid #cbd5e1; border-radius: 8px; font-weight: 700;' type='number'/>
4999</div>
5000</div>
5001<div style='display: flex; align-items: center; justify-content: space-between; background: #fff; padding: 10px; border-radius: 8px; border: 1px solid #5eead4;'>
5002<span style='font-weight: 800; color: #1e293b;'>Result:
5003      <span id='res-cm' style='color: #0d9488;'>0.00</span> CM</span>
5004<button class='copy-mini-btn' onclick='copyUnitRes("res-cm", this)' style='background: #0d9488; color: white; border: none; padding: 5px 10px; border-radius: 5px; cursor: pointer; font-size: 12px; font-weight: 700;'>
5005      Copy
5006    </button>
5007</div>
5008</div>
5009<!-- Weight Section -->
5010<div style='background: #f8fafc; padding: 15px; border-radius: 15px; border: 1px solid #e2e8f0;'>
5011<h3 style='margin-top:0; font-size: 16px; color: #475569;'>
5012<i class='fa-solid fa-weight-hanging'></i> Weight Converter
5013  </h3>
5014<div style='margin-bottom: 10px;'>
5015<!-- Kilograms Label Fixed -->
5016<label for='w-kg' style='font-size: 11px; font-weight: 800; color: #64748b;'>KILOGRAMS (KG)</label>
5017<input id='w-kg' oninput='calculateWeight()' placeholder='70' style='width: 100%; padding: 10px; border: 1px solid #cbd5e1; border-radius: 8px; font-weight: 700;' type='number'/>
5018</div>
5019<div style='display: flex; align-items: center; justify-content: space-between; background: #fff; padding: 10px; border-radius: 8px; border: 1px solid #cbd5e1;'>
5020<span style='font-weight: 800; color: #1e293b;'>Result: <span id='res-lbs' style='color: #475569;'>0.00</span> Lbs
5021      (Pounds)</span>
5022<button class='copy-mini-btn' onclick='copyUnitRes("res-lbs", this)' style='background: #475569; color: white; border: none; padding: 5px 10px; border-radius: 5px; cursor: pointer; font-size: 12px; font-weight: 700;'>
5023      Copy
5024    </button>
5025</div>
5026</div>
5027<div style='margin-top: 20px; padding: 12px; background: #fffbeb; border: 1px dashed #f59e0b; border-radius: 10px; font-size: 12px; color: #92400e;'>
5028<i class='fa-solid fa-circle-info'></i>
5029<b>Tip:</b> Fast conversion for
5030        Job Application Forms and Medical Reports.
5031      </div>
5032</div>
5033</div>
5034</div>
5035<!--Multi-Image to PDF Modal-->
5036<div class='crop-modal-overlay' id='imgPdfModal' style='display: none;'>
5037<div class='crop-modal-content' style='max-width: 800px;'>
5038<span class='close-crop-modal' onclick='closeImgPdfModal()'>&#215;</span>
5039<div class='cp-box' style='background: rgb(255, 255, 255); border-radius: 20px; border: 2px solid rgb(225, 29, 72); padding: 25px;'>
5040<h2 style='color: #e11d48; font-weight: 800; margin-bottom: 15px; text-align: center;'>
5041<i class='fa-solid fa-images'> Multi-Image to PDF </i>
5042</h2>
5043<!--Upload Area-->
5044<div id='pdf-drop-zone' style='background: rgb(255, 241, 242); border-radius: 15px; border: 2px dashed rgb(225, 29, 72); cursor: pointer; padding: 30px; text-align: center;'>
5045<input accept='image/*' id='imgPdfInput' multiple='' onchange='handleImageUpload(event)' style='display: none;' type='file'/>
5046<div onclick='document.getElementById(&#39;imgPdfInput&#39;).click()'>
5047<i class='fa-solid fa-cloud-arrow-up' style='color: #e11d48; font-size: 40px; margin-bottom: 10px;'></i>
5048<p style='color: #1e293b; font-weight: 700; margin: 0px;'>
5049            Click or Drag images to upload
5050          </p>
5051<p style='color: #64748b; font-size: 12px;'>
5052            Supports JPG, PNG, WEBP or Any image
5053          </p>
5054</div>
5055</div>
5056<!--Preview Area-->
5057<div id='pdf-preview-container' style='display: grid; gap: 10px; grid-template-columns: repeat(auto-fill, minmax(100px, 1fr)); margin-top: 20px; max-height: 250px; overflow-y: auto; padding: 5px;'>
5058<!--Images will appear here-->
5059</div>
5060<!--Settings & Action-->
5061<div id='pdf-actions' style='border-top: 1px solid rgb(226, 232, 240); display: none; margin-top: 20px; padding-top: 20px;'>
5062<div style='align-items: center; display: flex; gap: 15px; justify-content: space-between; margin-bottom: 15px;'>
5063<div>
5064<label for='pdfPageSize' style='color: #475569; font-size: 12px; font-weight: 800;'>Page Size:</label>
5065<select id='pdfPageSize' style='border-radius: 5px; border: 1px solid rgb(203, 213, 225); padding: 5px;'>
5066<option value='a4'>A4 (Standard)</option>
5067<option value='fit'>Fit to Image</option>
5068</select>
5069</div>
5070<p id='imgCount' style='color: #e11d48; font-size: 13px; font-weight: 700;'></p>
5071</div>
5072<button class='conv-btn-main' id='btnGeneratePdf' onclick='generatePDF()' style='background: rgb(225, 29, 72); width: 100%;'>
5073<i class='fa-solid fa-file-export'> Download PDF </i>
5074</button>
5075</div>
5076</div>
5077</div>
5078</div>
5079<!-- A4 Photo Sheet Modal -->
5080<div class='crop-modal-overlay' id='photoSheetModal' style='display:none;'>
5081<div class='crop-modal-content' style='max-width: 1200px;'>
5082<span class='close-crop-modal' onclick='closePhotoSheetModal()'>&#215;</span>
5083<div class='cp-box' style='border: 2px solid #6366f1; border-radius: 20px; padding: 25px; background: #fff;'>
5084<h2 style='color:#6366f1; text-align:center; margin-bottom:15px; font-weight: 800;'>
5085<i class='fa-solid fa-print'></i> Studio Photo Print Layout A4 Sheet
5086      </h2>
5087<!-- Two Column Layout: Left Form, Right Live A4 Preview -->
5088<div id='layout-grid-wrap' style='display: grid; grid-template-columns: 1.4fr 1fr; gap: 20px;'>
5089<!-- Left: Upload & Counters Controls (Auto-Scroll Container Integrated) -->
5090<div style='display: flex; flex-direction: column; height: 100%;'>
5091<p style='font-size: 11px; font-weight: 800; color: #475569; margin-bottom: 10px;'>UPLOAD PHOTOS & INCREASE COPIES (MAX 10 PERSONS):</p>
5092<!-- Scrollable Area for Person Rows (NEW UPDATE) -->
5093<div id='psInputContainer'>
5094<!-- Person 1 Row -->
5095<div class='ps-person-row' style='display: flex; align-items: center; gap: 12px; background: #f8fafc; padding: 12px; border-radius: 12px; border: 1px solid #e2e8f0;'>
5096<span style='font-weight: 800; color: #6366f1; font-size: 15px; width: 25px; text-align: center; flex-shrink: 0;'>1.</span>
5097<div onclick='document.getElementById("psInput1").click()' style='width: 55px; height: 55px; border: 1px dashed #6366f1; border-radius: 8px; display: flex; align-items: center; justify-content: center; background: #fff; cursor: pointer; position: relative; overflow: hidden; flex-shrink: 0;'>
5098<input accept='image/*' id='psInput1' onchange='loadPsImage(event, 0)' style='display: none;' type='file'/>
5099<i class='fa-solid fa-camera' id='plus1' style='color: #6366f1; font-size: 16px;'></i>
5100<img id='prev1' style='width:100%; height:100%; object-fit:cover; display:none;'/>
5101</div>
5102<div style='flex: 1.2;'>
5103<select class='ps-layout-select' id='size1' onchange='updatePsPreview()' style='width: 100%; padding: 8px; border-radius: 6px; border: 1px solid #cbd5e1; font-size: 14px; cursor: pointer;'>
5104<option selected='selected' value='passport'>Passport (1.5x1.9 in)</option>
5105<option value='stamp'>Stamp (22x27mm)</option>
5106<option value='joint'>Joint (1.9x1.5 in)</option>
5107</select>
5108</div>
5109<div class='counter-box' style='flex: 1;'>
5110<button onclick='adjustPhotoCount(0, -1)' type='button'>-</button>
5111<input id='count1' readonly='readonly' type='text' value='0'/>
5112<button onclick='adjustPhotoCount(0, 1)' type='button'>+</button>
5113</div>
5114<button class='ps-del-btn' id='delBtn1' onclick='removePsImage(0)' style='display: none; background: #fee2e2; border: none; color: #ef4444; width: 32px; height: 32px; border-radius: 50%; align-items: center; justify-content: center; cursor: pointer; transition: 0.2s; flex-shrink: 0;' title='Delete Image'>
5115<i class='fa-solid fa-trash-can'></i>
5116</button>
5117</div>
5118<!-- Person 2 Row -->
5119<div class='ps-person-row' style='display: flex; align-items: center; gap: 12px; background: #f8fafc; padding: 12px; border-radius: 12px; border: 1px solid #e2e8f0;'>
5120<span style='font-weight: 800; color: #6366f1; font-size: 15px; width: 25px; text-align: center; flex-shrink: 0;'>2.</span>
5121<div onclick='document.getElementById("psInput2").click()' style='width: 55px; height: 55px; border: 1px dashed #6366f1; border-radius: 8px; display: flex; align-items: center; justify-content: center; background: #fff; cursor: pointer; position: relative; overflow: hidden; flex-shrink: 0;'>
5122<input accept='image/*' id='psInput2' onchange='loadPsImage(event, 1)' style='display: none;' type='file'/>
5123<i class='fa-solid fa-camera' id='plus2' style='color: #6366f1; font-size: 16px;'></i>
5124<img id='prev2' style='width:100%; height:100%; object-fit:cover; display:none;'/>
5125</div>
5126<div style='flex: 1.2;'>
5127<select class='ps-layout-select' id='size2' onchange='updatePsPreview()' style='width: 100%; padding: 8px; border-radius: 6px; border: 1px solid #cbd5e1; font-size: 14px; cursor: pointer;'>
5128<option selected='selected' value='passport'>Passport (1.5x1.9 in)</option>
5129<option value='stamp'>Stamp (22x27mm)</option>
5130<option value='joint'>Joint (1.9x1.5 in)</option>
5131</select>
5132</div>
5133<div class='counter-box' style='flex: 1;'>
5134<button onclick='adjustPhotoCount(1, -1)' type='button'>-</button>
5135<input id='count2' readonly='readonly' type='text' value='0'/>
5136<button onclick='adjustPhotoCount(1, 1)' type='button'>+</button>
5137</div>
5138<button class='ps-del-btn' id='delBtn2' onclick='removePsImage(1)' style='display: none; background: #fee2e2; border: none; color: #ef4444; width: 32px; height: 32px; border-radius: 50%; align-items: center; justify-content: center; cursor: pointer; transition: 0.2s; flex-shrink: 0;' title='Delete Image'>
5139<i class='fa-solid fa-trash-can'></i>
5140</button>
5141</div>
5142<!-- Person 3 Row -->
5143<div class='ps-person-row' style='display: flex; align-items: center; gap: 12px; background: #f8fafc; padding: 12px; border-radius: 12px; border: 1px solid #e2e8f0;'>
5144<span style='font-weight: 800; color: #6366f1; font-size: 15px; width: 25px; text-align: center; flex-shrink: 0;'>3.</span>
5145<div onclick='document.getElementById("psInput3").click()' style='width: 55px; height: 55px; border: 1px dashed #6366f1; border-radius: 8px; display: flex; align-items: center; justify-content: center; background: #fff; cursor: pointer; position: relative; overflow: hidden; flex-shrink: 0;'>
5146<input accept='image/*' id='psInput3' onchange='loadPsImage(event, 2)' style='display: none;' type='file'/>
5147<i class='fa-solid fa-camera' id='plus3' style='color: #6366f1; font-size: 16px;'></i>
5148<img id='prev3' style='width:100%; height:100%; object-fit:cover; display:none;'/>
5149</div>
5150<div style='flex: 1.2;'>
5151<select class='ps-layout-select' id='size3' onchange='updatePsPreview()' style='width: 100%; padding: 8px; border-radius: 6px; border: 1px solid #cbd5e1; font-size: 14px; cursor: pointer;'>
5152<option selected='selected' value='passport'>Passport (1.5x1.9 in)</option>
5153<option value='stamp'>Stamp (22x27mm)</option>
5154<option value='joint'>Joint (1.9x1.5 in)</option>
5155</select>
5156</div>
5157<div class='counter-box' style='flex: 1;'>
5158<button onclick='adjustPhotoCount(2, -1)' type='button'>-</button>
5159<input id='count3' readonly='readonly' type='text' value='0'/>
5160<button onclick='adjustPhotoCount(2, 1)' type='button'>+</button>
5161</div>
5162<button class='ps-del-btn' id='delBtn3' onclick='removePsImage(2)' style='display: none; background: #fee2e2; border: none; color: #ef4444; width: 32px; height: 32px; border-radius: 50%; align-items: center; justify-content: center; cursor: pointer; transition: 0.2s; flex-shrink: 0;' title='Delete Image'>
5163<i class='fa-solid fa-trash-can'></i>
5164</button>
5165</div>
5166<!-- Person 4 Row -->
5167<div class='ps-person-row' style='display: flex; align-items: center; gap: 12px; background: #f8fafc; padding: 12px; border-radius: 12px; border: 1px solid #e2e8f0;'>
5168<span style='font-weight: 800; color: #6366f1; font-size: 15px; width: 25px; text-align: center; flex-shrink: 0;'>4.</span>
5169<div onclick='document.getElementById("psInput4").click()' style='width: 55px; height: 55px; border: 1px dashed #6366f1; border-radius: 8px; display: flex; align-items: center; justify-content: center; background: #fff; cursor: pointer; position: relative; overflow: hidden; flex-shrink: 0;'>
5170<input accept='image/*' id='psInput4' onchange='loadPsImage(event, 3)' style='display: none;' type='file'/>
5171<i class='fa-solid fa-camera' id='plus4' style='color: #6366f1; font-size: 16px;'></i>
5172<img id='prev4' style='width:100%; height:100%; object-fit:cover; display:none;'/>
5173</div>
5174<div style='flex: 1.2;'>
5175<select class='ps-layout-select' id='size4' onchange='updatePsPreview()' style='width: 100%; padding: 8px; border-radius: 6px; border: 1px solid #cbd5e1; font-size: 14px; cursor: pointer;'>
5176<option selected='selected' value='passport'>Passport (1.5x1.9 in)</option>
5177<option value='stamp'>Stamp (22x27mm)</option>
5178<option value='joint'>Joint (1.9x1.5 in)</option>
5179</select>
5180</div>
5181<div class='counter-box' style='flex: 1;'>
5182<button onclick='adjustPhotoCount(3, -1)' type='button'>-</button>
5183<input id='count4' readonly='readonly' type='text' value='0'/>
5184<button onclick='adjustPhotoCount(3, 1)' type='button'>+</button>
5185</div>
5186<button class='ps-del-btn' id='delBtn4' onclick='removePsImage(3)' style='display: none; background: #fee2e2; border: none; color: #ef4444; width: 32px; height: 32px; border-radius: 50%; align-items: center; justify-content: center; cursor: pointer; transition: 0.2s; flex-shrink: 0;' title='Delete Image'>
5187<i class='fa-solid fa-trash-can'></i>
5188</button>
5189</div>
5190<!-- Person 5 Row -->
5191<div class='ps-person-row' style='display: flex; align-items: center; gap: 12px; background: #f8fafc; padding: 12px; border-radius: 12px; border: 1px solid #e2e8f0;'>
5192<span style='font-weight: 800; color: #6366f1; font-size: 15px; width: 25px; text-align: center; flex-shrink: 0;'>5.</span>
5193<div onclick='document.getElementById("psInput5").click()' style='width: 55px; height: 55px; border: 1px dashed #6366f1; border-radius: 8px; display: flex; align-items: center; justify-content: center; background: #fff; cursor: pointer; position: relative; overflow: hidden; flex-shrink: 0;'>
5194<input accept='image/*' id='psInput5' onchange='loadPsImage(event, 4)' style='display: none;' type='file'/>
5195<i class='fa-solid fa-camera' id='plus5' style='color: #6366f1; font-size: 16px;'></i>
5196<img id='prev5' style='width:100%; height:100%; object-fit:cover; display:none;'/>
5197</div>
5198<div style='flex: 1.2;'>
5199<select class='ps-layout-select' id='size5' onchange='updatePsPreview()' style='width: 100%; padding: 8px; border-radius: 6px; border: 1px solid #cbd5e1; font-size: 14px; cursor: pointer;'>
5200<option selected='selected' value='passport'>Passport (1.5x1.9 in)</option>
5201<option value='stamp'>Stamp (22x27mm)</option>
5202<option value='joint'>Joint (1.9x1.5 in)</option>
5203</select>
5204</div>
5205<div class='counter-box' style='flex: 1;'>
5206<button onclick='adjustPhotoCount(4, -1)' type='button'>-</button>
5207<input id='count5' readonly='readonly' type='text' value='0'/>
5208<button onclick='adjustPhotoCount(4, 1)' type='button'>+</button>
5209</div>
5210<button class='ps-del-btn' id='delBtn5' onclick='removePsImage(4)' style='display: none; background: #fee2e2; border: none; color: #ef4444; width: 32px; height: 32px; border-radius: 50%; align-items: center; justify-content: center; cursor: pointer; transition: 0.2s; flex-shrink: 0;' title='Delete Image'>
5211<i class='fa-solid fa-trash-can'></i>
5212</button>
5213</div>
5214<!-- Person 6 Row -->
5215<div class='ps-person-row' style='display: flex; align-items: center; gap: 12px; background: #f8fafc; padding: 12px; border-radius: 12px; border: 1px solid #e2e8f0;'>
5216<span style='font-weight: 800; color: #6366f1; font-size: 15px; width: 25px; text-align: center; flex-shrink: 0;'>6.</span>
5217<div onclick='document.getElementById("psInput6").click()' style='width: 55px; height: 55px; border: 1px dashed #6366f1; border-radius: 8px; display: flex; align-items: center; justify-content: center; background: #fff; cursor: pointer; position: relative; overflow: hidden; flex-shrink: 0;'>
5218<input accept='image/*' id='psInput6' onchange='loadPsImage(event, 5)' style='display: none;' type='file'/>
5219<i class='fa-solid fa-camera' id='plus6' style='color: #6366f1; font-size: 16px;'></i>
5220<img id='prev6' style='width:100%; height:100%; object-fit:cover; display:none;'/>
5221</div>
5222<div style='flex: 1.2;'>
5223<select class='ps-layout-select' id='size6' onchange='updatePsPreview()' style='width: 100%; padding: 8px; border-radius: 6px; border: 1px solid #cbd5e1; font-size: 14px; cursor: pointer;'>
5224<option selected='selected' value='passport'>Passport (1.5x1.9 in)</option>
5225<option value='stamp'>Stamp (22x27mm)</option>
5226<option value='joint'>Joint (1.9x1.5 in)</option>
5227</select>
5228</div>
5229<div class='counter-box' style='flex: 1;'>
5230<button onclick='adjustPhotoCount(5, -1)' type='button'>-</button>
5231<input id='count6' readonly='readonly' type='text' value='0'/>
5232<button onclick='adjustPhotoCount(5, 1)' type='button'>+</button>
5233</div>
5234<button class='ps-del-btn' id='delBtn6' onclick='removePsImage(5)' style='display: none; background: #fee2e2; border: none; color: #ef4444; width: 32px; height: 32px; border-radius: 50%; align-items: center; justify-content: center; cursor: pointer; transition: 0.2s; flex-shrink: 0;' title='Delete Image'>
5235<i class='fa-solid fa-trash-can'></i>
5236</button>
5237</div>
5238<!-- Person 7 Row -->
5239<div class='ps-person-row' style='display: flex; align-items: center; gap: 12px; background: #f8fafc; padding: 12px; border-radius: 12px; border: 1px solid #e2e8f0;'>
5240<span style='font-weight: 800; color: #6366f1; font-size: 15px; width: 25px; text-align: center; flex-shrink: 0;'>7.</span>
5241<div onclick='document.getElementById("psInput7").click()' style='width: 55px; height: 55px; border: 1px dashed #6366f1; border-radius: 8px; display: flex; align-items: center; justify-content: center; background: #fff; cursor: pointer; position: relative; overflow: hidden; flex-shrink: 0;'>
5242<input accept='image/*' id='psInput7' onchange='loadPsImage(event, 6)' style='display: none;' type='file'/>
5243<i class='fa-solid fa-camera' id='plus7' style='color: #6366f1; font-size: 16px;'></i>
5244<img id='prev7' style='width:100%; height:100%; object-fit:cover; display:none;'/>
5245</div>
5246<div style='flex: 1.2;'>
5247<select class='ps-layout-select' id='size7' onchange='updatePsPreview()' style='width: 100%; padding: 8px; border-radius: 6px; border: 1px solid #cbd5e1; font-size: 14px; cursor: pointer;'>
5248<option selected='selected' value='passport'>Passport (1.5x1.9 in)</option>
5249<option value='stamp'>Stamp (22x27mm)</option>
5250<option value='joint'>Joint (1.9x1.5 in)</option>
5251</select>
5252</div>
5253<div class='counter-box' style='flex: 1;'>
5254<button onclick='adjustPhotoCount(6, -1)' type='button'>-</button>
5255<input id='count7' readonly='readonly' type='text' value='0'/>
5256<button onclick='adjustPhotoCount(6, 1)' type='button'>+</button>
5257</div>
5258<button class='ps-del-btn' id='delBtn7' onclick='removePsImage(6)' style='display: none; background: #fee2e2; border: none; color: #ef4444; width: 32px; height: 32px; border-radius: 50%; align-items: center; justify-content: center; cursor: pointer; transition: 0.2s; flex-shrink: 0;' title='Delete Image'>
5259<i class='fa-solid fa-trash-can'></i>
5260</button>
5261</div>
5262<!-- Person 8 Row -->
5263<div class='ps-person-row' style='display: flex; align-items: center; gap: 12px; background: #f8fafc; padding: 12px; border-radius: 12px; border: 1px solid #e2e8f0;'>
5264<span style='font-weight: 800; color: #6366f1; font-size: 15px; width: 25px; text-align: center; flex-shrink: 0;'>8.</span>
5265<div onclick='document.getElementById("psInput8").click()' style='width: 55px; height: 55px; border: 1px dashed #6366f1; border-radius: 8px; display: flex; align-items: center; justify-content: center; background: #fff; cursor: pointer; position: relative; overflow: hidden; flex-shrink: 0;'>
5266<input accept='image/*' id='psInput8' onchange='loadPsImage(event, 7)' style='display: none;' type='file'/>
5267<i class='fa-solid fa-camera' id='plus8' style='color: #6366f1; font-size: 16px;'></i>
5268<img id='prev8' style='width:100%; height:100%; object-fit:cover; display:none;'/>
5269</div>
5270<div style='flex: 1.2;'>
5271<select class='ps-layout-select' id='size8' onchange='updatePsPreview()' style='width: 100%; padding: 8px; border-radius: 6px; border: 1px solid #cbd5e1; font-size: 14px; cursor: pointer;'>
5272<option selected='selected' value='passport'>Passport (1.5x1.9 in)</option>
5273<option value='stamp'>Stamp (22x27mm)</option>
5274<option value='joint'>Joint (1.9x1.5 in)</option>
5275</select>
5276</div>
5277<div class='counter-box' style='flex: 1;'>
5278<button onclick='adjustPhotoCount(7, -1)' type='button'>-</button>
5279<input id='count8' readonly='readonly' type='text' value='0'/>
5280<button onclick='adjustPhotoCount(7, 1)' type='button'>+</button>
5281</div>
5282<button class='ps-del-btn' id='delBtn8' onclick='removePsImage(7)' style='display: none; background: #fee2e2; border: none; color: #ef4444; width: 32px; height: 32px; border-radius: 50%; align-items: center; justify-content: center; cursor: pointer; transition: 0.2s; flex-shrink: 0;' title='Delete Image'>
5283<i class='fa-solid fa-trash-can'></i>
5284</button>
5285</div>
5286<!-- Person 9 Row -->
5287<div class='ps-person-row' style='display: flex; align-items: center; gap: 12px; background: #f8fafc; padding: 12px; border-radius: 12px; border: 1px solid #e2e8f0;'>
5288<span style='font-weight: 800; color: #6366f1; font-size: 15px; width: 25px; text-align: center; flex-shrink: 0;'>9.</span>
5289<div onclick='document.getElementById("psInput9").click()' style='width: 55px; height: 55px; border: 1px dashed #6366f1; border-radius: 8px; display: flex; align-items: center; justify-content: center; background: #fff; cursor: pointer; position: relative; overflow: hidden; flex-shrink: 0;'>
5290<input accept='image/*' id='psInput9' onchange='loadPsImage(event, 8)' style='display: none;' type='file'/>
5291<i class='fa-solid fa-camera' id='plus9' style='color: #6366f1; font-size: 16px;'></i>
5292<img id='prev9' style='width:100%; height:100%; object-fit:cover; display:none;'/>
5293</div>
5294<div style='flex: 1.2;'>
5295<select class='ps-layout-select' id='size9' onchange='updatePsPreview()' style='width: 100%; padding: 8px; border-radius: 6px; border: 1px solid #cbd5e1; font-size: 14px; cursor: pointer;'>
5296<option selected='selected' value='passport'>Passport (1.5x1.9 in)</option>
5297<option value='stamp'>Stamp (22x27mm)</option>
5298<option value='joint'>Joint (1.9x1.5 in)</option>
5299</select>
5300</div>
5301<div class='counter-box' style='flex: 1;'>
5302<button onclick='adjustPhotoCount(8, -1)' type='button'>-</button>
5303<input id='count9' readonly='readonly' type='text' value='0'/>
5304<button onclick='adjustPhotoCount(8, 1)' type='button'>+</button>
5305</div>
5306<button class='ps-del-btn' id='delBtn9' onclick='removePsImage(8)' style='display: none; background: #fee2e2; border: none; color: #ef4444; width: 32px; height: 32px; border-radius: 50%; align-items: center; justify-content: center; cursor: pointer; transition: 0.2s; flex-shrink: 0;' title='Delete Image'>
5307<i class='fa-solid fa-trash-can'></i>
5308</button>
5309</div>
5310<!-- Person 10 Row -->
5311<div class='ps-person-row' style='display: flex; align-items: center; gap: 12px; background: #f8fafc; padding: 12px; border-radius: 12px; border: 1px solid #e2e8f0;'>
5312<span style='font-weight: 800; color: #6366f1; font-size: 15px; width: 25px; text-align: center; flex-shrink: 0;'>10.</span>
5313<div onclick='document.getElementById("psInput10").click()' style='width: 55px; height: 55px; border: 1px dashed #6366f1; border-radius: 8px; display: flex; align-items: center; justify-content: center; background: #fff; cursor: pointer; position: relative; overflow: hidden; flex-shrink: 0;'>
5314<input accept='image/*' id='psInput10' onchange='loadPsImage(event, 9)' style='display: none;' type='file'/>
5315<i class='fa-solid fa-camera' id='plus10' style='color: #6366f1; font-size: 16px;'></i>
5316<img id='prev10' style='width:100%; height:100%; object-fit:cover; display:none;'/>
5317</div>
5318<div style='flex: 1.2;'>
5319<select class='ps-layout-select' id='size10' onchange='updatePsPreview()' style='width: 100%; padding: 8px; border-radius: 6px; border: 1px solid #cbd5e1; font-size: 14px; cursor: pointer;'>
5320<option selected='selected' value='passport'>Passport (1.5x1.9 in)</option>
5321<option value='stamp'>Stamp (22x27mm)</option>
5322<option value='joint'>Joint (1.9x1.5 in)</option>
5323</select>
5324</div>
5325<div class='counter-box' style='flex: 1;'>
5326<button onclick='adjustPhotoCount(9, -1)' type='button'>-</button>
5327<input id='count10' readonly='readonly' type='text' value='0'/>
5328<button onclick='adjustPhotoCount(9, 1)' type='button'>+</button>
5329</div>
5330<button class='ps-del-btn' id='delBtn10' onclick='removePsImage(9)' style='display: none; background: #fee2e2; border: none; color: #ef4444; width: 32px; height: 32px; border-radius: 50%; align-items: center; justify-content: center; cursor: pointer; transition: 0.2s; flex-shrink: 0;' title='Delete Image'>
5331<i class='fa-solid fa-trash-can'></i>
5332</button>
5333</div>
5334</div>
5335<!-- Bottom settings (Always Static / Fixed at bottom of the panel) -->
5336<div style='margin-top: auto; padding-top: 15px; border-top: 1px dashed #cbd5e1;'>
5337<div style='display: flex; align-items: center; justify-content: space-between;'>
5338<div style='display: flex; align-items: center; gap: 8px;'>
5339<input checked='checked' id='psBorder' onchange='updatePsPreview()' style='width: 18px; height: 18px; cursor: pointer;' type='checkbox'/>
5340<label for='psBorder' style='font-size: 13px; font-weight: 700; color: #1e293b; cursor: pointer;'>Show Photos Border</label>
5341</div>
5342<span id='limitWarning' style='display:none; color: #dc2626; font-size: 11px; font-weight: 800; animation: blinker 1s linear infinite;'>&#9888;&#65039; PAPER LIMIT REACHED!</span>
5343</div>
5344<!-- Main Actions (Always Static / Fixed at bottom of the panel) -->
5345<div id='psActionBtns' style='margin-top: 15px; display: flex; gap: 10px;'>
5346<button onclick='generatePhotoSheetPDF()' style='flex: 1; background: #6366f1; color: white; border: none; padding: 12px; border-radius: 8px; font-weight: 700; cursor: pointer;'>
5347<i class='fa-solid fa-file-pdf'></i> Save PDF
5348              </button>
5349<button onclick='directPrintSheet()' style='flex: 1; background: #059669; color: white; border: none; padding: 12px; border-radius: 8px; font-weight: 700; cursor: pointer;'>
5350<i class='fa-solid fa-print'></i> Direct Print
5351              </button>
5352</div>
5353</div>
5354</div>
5355<!-- Right: Live A4 Preview Grid -->
5356<div style='background: #f1f5f9; border-radius: 12px; padding: 10px; text-align: center;'>
5357<p style='font-size: 11px; font-weight: 800; color: #64748b; margin-bottom: 5px;'>EXACT A4 PREVIEW (2PX MARGIN)</p>
5358<div id='a4-preview-area' style='width: 100%; aspect-ratio: 1 / 1.414; background: white; border: 1px solid #cbd5e1; box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1); position: relative; overflow: hidden; margin: 0 auto; display: flex; flex-wrap: wrap; gap: 1.5%; justify-content: flex-start; align-content: flex-start; align-items: flex-start !important; padding: 3%; box-sizing: border-box;'>
5359<!-- Active Photo Items Injected Here -->
5360</div>
5361<p id='footerNote' style='display:none; font-size: 10px; color: #ef4444; margin-top: 8px; font-weight: bold;'>PHOTOS OUTSIDE A4 RANGE</p>
5362</div>
5363</div>
5364</div>
5365</div>
5366</div>
5367<!-- Digital Signature Pad Modal -->
5368<div class='crop-modal-overlay' id='sigPadModal' style='display:none;'>
5369<div class='crop-modal-content' style='max-width: 600px; width:95%;'>
5370<span class='close-crop-modal' onclick='closeSigPadModal()'>&#215;</span>
5371<div class='cp-box' style='border: 2px solid #6366f1; border-radius: 20px; padding: 20px; background: #fff;'>
5372<h2 id='sp-title' style='color:#6366f1; text-align:center; margin-bottom:15px; font-weight: 800; font-size: 24px; font-family: "SolaimanLipi", sans-serif;'>
5373        Digital Signature Pad
5374      </h2>
5375<!-- Language Toggle -->
5376<div class='dt-lang-switch' style='margin-bottom: 20px; display: flex; justify-content: center; background: #f1f5f9; padding: 5px; border-radius: 50px; width: fit-content; margin: 0 auto 20px;'>
5377<button class='ph-tab active' id='sp-en-btn' onclick='setSpLang("en")' type='button'>English</button>
5378<button class='ph-tab' id='sp-bn-btn' onclick='setSpLang("bn")' style='font-family: "SolaimanLipi", sans-serif;' type='button'>ব&#2494;&#2434;ল&#2494;</button>
5379</div>
5380<!-- Settings Row -->
5381<div style='display: flex; gap: 10px; justify-content: center; margin-bottom: 15px; flex-wrap: wrap;'>
5382<div class='toolbar-item' title='Pen Color'>
5383<i class='fa-solid fa-palette' style='color:#6366f1;'></i>
5384<input id='sp-color' onchange='updateSpSettings()' type='color' value='#000000'/>
5385</div>
5386<div class='toolbar-item'>
5387<label for='sp-weight' style='font-size: 12px; font-weight: 800; margin-right: 5px;'>Thickness:</label>
5388<input id='sp-weight' max='10' min='1' oninput='updateSpSettings()' style='width: 60px;' type='range' value='3'/>
5389</div>
5390</div>
5391<!-- Signature Canvas Area -->
5392<div id='sp-canvas-wrapper' style='border: 2px dashed #6366f1; border-radius: 15px; background: #f8fafc; position: relative; overflow: hidden; touch-action: none;'>
5393<canvas id='sp-canvas' style='display: block;'></canvas>
5394</div>
5395<div id='sp-hint' style='text-align: center; color: #94a3b8; font-size: 13px; margin-top: 10px;'>
5396        Sign inside the box above using your Mouse or Finger
5397      </div>
5398<!-- Actions -->
5399<div class='actions' style='display:grid; grid-template-columns: 1fr 1fr 1fr; gap:10px; margin-top:20px;'>
5400<button class='conv-btn-main' onclick='clearSpPad()' style='background:#ef4444 !important; margin:0;' type='button'>
5401<i class='fa-solid fa-trash-can'></i>
5402<span id='txt-sp-clear'>Clear</span>
5403</button>
5404<button class='conv-btn-main' onclick='downloadSpPad()' style='background:#059669 !important; margin:0;' type='button'>
5405<i class='fa-solid fa-download'></i>
5406<span id='txt-sp-save'>Save PNG</span>
5407</button>
5408<button class='conv-btn-main' onclick='closeSigPadModal()' style='background:#64748b !important; margin:0;' type='button'>
5409<span id='txt-sp-close'>Close</span>
5410</button>
5411</div>
5412<div id='sp-instruction-box' style='margin-top: 15px; padding: 10px; background: #eef2ff; border-radius: 10px; font-size: 12px; color: #4338ca; text-align: left; line-height: 1.5;'>
5413<i class='fa-solid fa-circle-info'></i>
5414<span id='sp-note-text'>The signature will be saved as a high-quality transparent PNG, perfect for online forms and documents.</span>
5415</div>
5416</div>
5417</div>
5418</div>
5419<!-- Ready Notice Maker Modal -->
5420<div class='crop-modal-overlay' id='noticeModal' style='display:none;'>
5421<div class='crop-modal-content' style='max-width: 1200px;'>
5422<span class='close-crop-modal' onclick='closeNoticeModal()'>&#215;</span>
5423<div class='cp-box' style='border: 2px solid #f59e0b; border-radius: 20px; padding: 15px; background: #fff; font-family: "SolaimanLipi", Arial, sans-serif !important;'>
5424<h2 id='not-main-title' style='color:#f59e0b; text-align:center; margin-bottom:15px; font-weight: 800;'>
5425<i class='fa-solid fa-bullhorn'></i> Ready Notice Maker
5426      </h2>
5427<div class='notice-main-grid' style='display: grid; grid-template-columns: 1fr 1.2fr; gap: 20px;'>
5428<!-- Inputs Column -->
5429<div class='notice-inputs' style='display: flex; flex-direction: column; gap: 10px; max-height: 600px; overflow-y: auto; padding-right: 10px;'>
5430<div style='display: flex; gap: 10px; background: #fef3c7; padding: 10px; border-radius: 10px;'>
5431<button class='ph-tab active' id='not-bn-btn' onclick='setNoticeLang("bn")'>ব&#2494;&#2434;ল&#2494;</button>
5432<button class='ph-tab' id='not-en-btn' onclick='setNoticeLang("en")'>English</button>
5433</div>
5434<div class='st-input-group'>
5435<label for='not-inst' id='lbl-not-inst'>প&#2509;রত&#2495;ষ&#2509;ঠ&#2494;ন&#2503;র ন&#2494;ম</label>
5436<input id='not-inst' oninput='updateNotice()' placeholder='প্রতিষ্ঠানের নাম লিখুন' type='text'/>
5437</div>
5438<div class='st-input-group'>
5439<label for='not-addr' id='lbl-not-addr'>ঠ&#2495;ক&#2494;ন&#2494;</label>
5440<input id='not-addr' oninput='updateNotice()' placeholder='অবস্থান/ঠিকানা' type='text'/>
5441</div>
5442<div style='display: grid; grid-template-columns: 1fr 1fr; gap: 10px;'>
5443<div class='st-input-group'>
5444<label for='not-ref' id='lbl-not-ref'>স&#2509;ম&#2494;রক ন&#2434;</label>
5445<input id='not-ref' oninput='updateNotice()' placeholder='স্মারক নম্বর' type='text'/>
5446</div>
5447<div class='st-input-group'>
5448<label for='not-date' id='lbl-not-date'>ত&#2494;র&#2495;খ</label>
5449<input id='not-date' oninput='updateNotice()' type='text'/>
5450</div>
5451</div>
5452<div class='st-input-group'>
5453<label for='not-subject' id='lbl-not-subject'>ন&#2507;ট&#2495;শ&#2503;র ব&#2495;ষয়</label>
5454<input id='not-subject' oninput='updateNotice()' placeholder='নোটিশের বিষয় লিখুন' style='font-weight: bold;' type='text'/>
5455</div>
5456<div class='st-input-group'>
5457<label for='not-body' id='lbl-not-body'>ন&#2507;ট&#2495;শ&#2503;র ব&#2495;স&#2509;ত&#2494;র&#2495;ত তথ&#2509;য</label>
5458<textarea id='not-body' oninput='updateNotice()' placeholder='এখানে বিস্তারিত লিখুন...' rows='8' style='resize: vertical;'></textarea>
5459</div>
5460<div class='st-input-group'>
5461<label for='not-auth' id='lbl-not-auth'>কর&#2509;ত&#2499;পক&#2509;ষ&#2503;র ন&#2494;ম ও পদব&#2496;</label>
5462<input id='not-auth' oninput='updateNotice()' placeholder='অধ্যক্ষ / পরিচালক' type='text'/>
5463</div>
5464</div>
5465<!-- Preview Column -->
5466<div class='notice-preview-area' style='background: #52525b; padding: 20px; border-radius: 15px; text-align: center;'>
5467<div id='a4-notice-preview' style='width: 100%; aspect-ratio: 1/1.414; background: #fff; margin: 0 auto; box-shadow: 0 10px 25px rgba(0,0,0,0.3); padding: 50px; box-sizing: border-box; text-align: left; font-family: "SolaimanLipi", Arial, sans-serif;'>
5468<!-- Realtime Preview Content -->
5469<div id='preview-content'>
5470<div style='text-align: center; border-bottom: 2px solid #000; padding-bottom: 10px; margin-bottom: 20px;'>
5471<h1 id='p-inst' style='margin:0; font-size: 24px; text-transform: uppercase;'>INSTITUTION NAME</h1>
5472<p id='p-addr' style='margin:5px 0 0; font-size: 14px;'>Address Line Here</p>
5473</div>
5474<div style='display: flex; justify-content: space-between; font-size: 14px; margin-bottom: 30px;'>
5475<span id='p-ref'>Ref: ...</span>
5476<span id='p-date'>
5476Date: ...</span>
5477</div>
5478<div style='text-align: center; margin-bottom: 30px;'>
5479<h2 id='p-title' style='text-decoration: underline; font-size: 20px; display: inline-block;'>NOTICE</h2>
5480</div>
5481<div id='p-subject' style='font-weight: bold; margin-bottom: 15px; font-size: 16px;'>Subject: ...</div>
5482<div id='p-body' style='font-size: 16px; line-height: 1.6; min-height: 250px; text-align: justify;'>Notice description goes here...</div>
5483<div style='margin-top: 50px; text-align: right;'>
5484<div style='display: inline-block; border-top: 1px solid #000; padding-top: 5px; min-width: 150px; text-align: center;'>
5485<strong id='p-auth'>Authority Signature</strong>
5486</div>
5487</div>
5488</div>
5489</div>
5490<div style='margin-top: 20px; display: grid; grid-template-columns: 1fr 1fr; gap: 10px;'>
5491<button class='conv-btn-main' id='btn-not-print' onclick='printNotice()' style='background: #1e40af !important;'>
5492<i class='fa-solid fa-print'></i> প&#2509;র&#2495;ন&#2509;ট কর&#2497;ন (A4)
5493            </button>
5494<button class='conv-btn-main' id='btn-not-reset' onclick='resetNotice()' style='background: #ef4444 !important;'>
5495<i class='fa-solid fa-trash-can'></i> সব ম&#2497;ছ&#2497;ন
5496            </button>
5497</div>
5498</div>
5499</div>
5500</div>
5501</div>
5502</div>
5503<!-- Ultimate A4 Leaflet Maker Modal -->
5504<div class='crop-modal-overlay' id='leafletModal' style='display:none;'>
5505<div class='crop-modal-content' style='max-width: 1200px;'>
5506<span class='close-crop-modal' onclick='closeLeafletModal()'>&#215;</span>
5507<div class='cp-box' style='border: 2px solid #f43f5e; border-radius: 20px; padding: 20px; background: #fff; font-family: "SolaimanLipi", sans-serif !important;'>
5508<h2 id='leaf-ui-main-title' style='color:#f43f5e; text-align:center; margin-bottom:15px; font-weight: 800;'>
5509<i class='fa-solid fa-file-invoice'></i> A4 Leaflet Maker
5510      </h2>
5511<!-- Controls: Language & Rotation -->
5512<div style='display: flex; flex-wrap: wrap; justify-content: center; gap: 15px; margin-bottom: 20px;'>
5513<div style='display: flex; background: #f1f5f9; padding: 5px; border-radius: 50px;'>
5514<button class='ph-tab active' id='leaf-bn-btn' onclick='setLeafLang("bn")'>ব&#2494;&#2434;ল&#2494;</button>
5515<button class='ph-tab' id='leaf-en-btn' onclick='setLeafLang("en")'>English</button>
5516</div>
5517<button id='leaf-rotate-btn' onclick='toggleTextRotation()' style='background: #1e40af; color: white; border: none; padding: 8px 20px; border-radius: 50px; cursor: pointer; font-weight: 800; display: flex; align-items: center; gap: 8px; font-family: "SolaimanLipi", sans-serif;'>
5518<i class='fa-solid fa-arrows-rotate'></i>
5519<span id='lbl-leaf-rotate'>ল&#2503;খ&#2494; ঘ&#2507;র&#2494;ন (৯০&#176; ড&#2495;গ&#2509;র&#2496;)</span>
5520</button>
5521</div>
5522<div class='leaflet-main-grid' style='display: grid; grid-template-columns: 1fr 1.2fr; gap: 20px;'>
5523<!-- Inputs Side -->
5524<div class='leaflet-inputs' style='display: flex; flex-direction: column; gap: 12px; max-height: 650px; overflow-y: auto; padding-right: 10px;'>
5525<div class='st-input-group'>
5526<label for='leaf-template-select' id='lbl-leaf-temp' style='font-weight: 800; color: #f43f5e;'>ট&#2503;মপ&#2509;ল&#2503;ট ন&#2495;র&#2509;ব&#2494;চন কর&#2497;ন</label>
5527<select id='leaf-template-select' onchange='applyLeafTemplate(this.value)' style='width:100%; padding:10px; border-radius:8px; border:1px solid #cbd5e1; font-weight:700; font-family: "SolaimanLipi", sans-serif;'></select>
5528</div>
5529<!-- Title Controls -->
5530<div class='st-input-group' style='background: #f8fafc; padding: 10px; border-radius: 10px; border: 1px solid #e2e8f0;'>
5531<label for='leaf-title' id='lbl-leaf-title' style='font-weight: 800;'>শ&#2495;র&#2507;ন&#2494;ম / হ&#2503;ডল&#2494;ইন</label>
5532<input id='leaf-title' oninput='updateLeaflet()' placeholder='শিরোনাম লিখুন' style='font-family: "SolaimanLipi", sans-serif; width: 100%; margin-bottom: 8px;' type='text'/>
5533<div style='display: flex; align-items: center; justify-content: space-between;'>
5534<div style='display: flex; align-items: center; gap: 5px;'>
5535<button onclick='changeSize(&#39;title&#39;, -5)' style='padding: 2px 10px; font-weight: bold; cursor: pointer;'>-</button>
5536<span id='title-size-val' style='font-size: 12px; font-weight: 700;'>80px</span>
5537<button onclick='changeSize(&#39;title&#39;, 5)' style='padding: 2px 10px; font-weight: bold; cursor: pointer;'>+</button>
5538</div>
5539<input id='leaf-title-clr' oninput='updateLeaflet()' style='width: 40px; height: 25px; cursor: pointer; border: none;' type='color' value='#000000'/>
5540</div>
5541</div>
5542<!-- Body Controls -->
5543<div class='st-input-group' style='background: #f8fafc; padding: 10px; border-radius: 10px; border: 1px solid #e2e8f0;'>
5544<label for='leaf-body' id='lbl-leaf-body' style='font-weight: 800;'>ব&#2495;স&#2509;ত&#2494;র&#2495;ত তথ&#2509;য</label>
5545<textarea id='leaf-body' oninput='updateLeaflet()' placeholder='বিস্তারিত তথ্য এখানে লিখুন...' rows='3' style='resize: vertical; font-family: "SolaimanLipi", sans-serif; width: 100%; margin-bottom: 8px;'></textarea>
5546<div style='display: flex; align-items: center; justify-content: space-between;'>
5547<div style='display: flex; align-items: center; gap: 5px;'>
5548<button onclick='changeSize(&#39;body&#39;, -2)' style='padding: 2px 10px; font-weight: bold; cursor: pointer;'>-</button>
5549<span id='body-size-val' style='font-size: 12px; font-weight: 700;'>30px</span>
5550<button onclick='changeSize(&#39;body&#39;, 2)' style='padding: 2px 10px; font-weight: bold; cursor: pointer;'>+</button>
5551</div>
5552<input id='leaf-body-clr' oninput='updateLeaflet()' style='width: 40px; height: 25px; cursor: pointer; border: none;' type='color' value='#000000'/>
5553</div>
5554</div>
5555<!-- Footer Controls -->
5556<div class='st-input-group' style='background: #f8fafc; padding: 10px; border-radius: 10px; border: 1px solid #e2e8f0;'>
5557<label for='leaf-footer' id='lbl-leaf-footer' style='font-weight: 800;'>য&#2507;গ&#2494;য&#2507;গ / ফ&#2497;ট&#2494;র</label>
5558<input id='leaf-footer' oninput='updateLeaflet()' placeholder='মোবাইল নম্বর বা ঠিকানা' style='font-family: "SolaimanLipi", sans-serif; width: 100%; margin-bottom: 8px;' type='text'/>
5559<div style='display: flex; align-items: center; justify-content: space-between;'>
5560<div style='display: flex; align-items: center; gap: 5px;'>
5561<button onclick='changeSize(&#39;footer&#39;, -3)' style='padding: 2px 10px; font-weight: bold; cursor: pointer;'>-</button>
5562<span id='footer-size-val' style='font-size: 12px; font-weight: 700;'>40px</span>
5563<button onclick='changeSize(&#39;footer&#39;, 3)' style='padding: 2px 10px; font-weight: bold; cursor: pointer;'>+</button>
5564</div>
5565<input id='leaf-footer-clr' oninput='updateLeaflet()' style='width: 40px; height: 25px; cursor: pointer; border: none;' type='color' value='#000000'/>
5566</div>
5567</div>
5568<div class='st-input-group'>
5569<label for='leaf-align' id='lbl-leaf-align' style='font-weight: 800;'>এল&#2494;ইনম&#2503;ন&#2509;ট (Alignment)</label>
5570<select id='leaf-align' onchange='updateLeaflet()' style='width: 100%; padding:8px; border-radius:8px; border:1px solid #cbd5e1; font-family: "SolaimanLipi", sans-serif;'>
5571<option id='opt-center' value='center'>ম&#2494;ঝখ&#2494;ন&#2503;</option>
5572<option id='opt-left' value='left'>ব&#2494;ম&#2503;</option>
5573<option id='opt-right' value='right'>ড&#2494;ন&#2503;</option>
5574</select>
5575</div>
5576</div>
5577<!-- Preview Side -->
5578<div class='leaflet-preview-area' style='background: #3f3f46; padding: 20px; border-radius: 15px; text-align: center; display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 600px;'>
5579<p id='leaf-orient-text' style='font-size: 11px; color: #fbbf24; margin-bottom: 10px; font-weight: 800;'>A4 PORTRAIT PAGE</p>
5580<div id='a4-portrait-page' style='width: 340px; aspect-ratio: 1/1.414; background: #fff; box-shadow: 0 15px 40px rgba(0,0,0,0.5); position: relative; overflow: hidden; display: flex; align-items: center; justify-content: center;'>
5581<div id='leaflet-content-rotate' style='width: 100%; height: 100%; padding: 30px; box-sizing: border-box; display: flex; flex-direction: column; justify-content: space-between; transition: 0.4s ease; transform-origin: center;'>
5582<div id='lp-title' style='font-weight: 900; line-height: 1.1; word-wrap: break-word;'>শ&#2495;র&#2507;ন&#2494;ম</div>
5583<div id='lp-body' style='white-space: pre-wrap; margin: 10px 0; font-weight: 700; flex: 1; display: flex; align-items: center; overflow: hidden;'>ব&#2495;স&#2509;ত&#2494;র&#2495;ত তথ&#2509;য এখ&#2494;ন&#2503; দ&#2503;খ&#2494; য&#2494;ব&#2503;&#2404;</div>
5584<div id='lp-footer' style='font-weight: 900;
5584 border-top: 4px solid #000; padding-top: 10px;'>য&#2507;গ&#2494;য&#2507;গ</div>
5585</div>
5586</div>
5587<div style='margin-top: 25px; display: grid; grid-template-columns: 1fr 1fr; gap: 15px; width: 100%;'>
5588<button class='conv-btn-main' onclick='printLeaflet()' style='background: #059669 !important; padding: 12px;'>
5589<i class='fa-solid fa-print'></i>
5590<span id='lbl-leaf-print'>প&#2509;র&#2495;ন&#2509;ট কর&#2497;ন (A4)</span>
5591</button>
5592<button class='conv-btn-main' onclick='resetLeaflet()' style='background: #ef4444 !important; padding: 12px;'>
5593<i class='fa-solid fa-trash-can'></i>
5594<span id='lbl-leaf-reset'>সব ম&#2497;ছ&#2497;ন</span>
5595</button>
5596</div>
5597</div>
5598</div>
5599</div>
5600</div>
5601</div>
5602<!-- Land Calculator Modal -->
5603<div class='crop-modal-overlay' id='landModal' style='display:none;'>
5604<div class='crop-modal-content' style='max-width: 900px; width: 95%;'>
5605<span class='close-crop-modal' onclick='closeLandModal()' style='cursor:pointer;'>&#215;</span>
5606<div class='cp-box' style='border: 2px solid #059669; border-radius: 20px; padding: 20px; background: #fff; font-family: "Inter", "SolaimanLipi", sans-serif;'>
5607<h2 style='color:#059669; text-align:center; margin-bottom:15px; font-weight: 800;'>
5608<i class='fa-solid fa-map-location-dot'></i>
5609<span id='land-title'>Land Area Calculator</span>
5610</h2>
5611<!-- Language Toggle -->
5612<div class='dt-lang-switch' style='margin: 0 auto 20px; display: flex; justify-content: center; background: #f1f5f9; padding: 5px; border-radius: 50px; width: fit-content;'>
5613<button class='ph-tab active' id='land-en-btn' onclick='setLandLang("en")' type='button'>English</button>
5614<button class='ph-tab pnd-solaiman' id='land-bn-btn' onclick='setLandLang("bn")' type='button'>ব&#2494;&#2434;ল&#2494;</button>
5615</div>
5616<div style='display: flex; gap: 10px; margin-bottom: 20px;'>
5617<button class='cv3-demo-btn pnd-solaiman' id='btn-mode-rect' onclick='setLandMode("rect")' style='flex:1; background:#059669; color:#fff; border:none; padding:12px; border-radius:10px; font-weight:700; cursor:pointer;' type='button'>Rectangle (চত&#2497;র&#2509;ভ&#2497;জ)</button>
5618<button class='cv3-demo-btn pnd-solaiman' id='btn-mode-tri' onclick='setLandMode("tri")' style='flex:1; background:#64748b; color:#fff; border:none; padding:12px; border-radius:10px; font-weight:700; cursor:pointer;' type='button'>Triangle (ত&#2509;র&#2495;ভ&#2497;জ)</button>
5619</div>
5620<div class='land-ui-grid' style='display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 20px;'>
5621<div class='land-inputs'>
5622<div id='rect-inputs'>
5623<div class='st-input-group' style='margin-bottom:15px;'>
5624<label class='pnd-solaiman' for='land-len' id='lbl-len' style='font-weight:700; display:block; margin-bottom:5px;'>Average Length (Feet)</label>
5625<input id='land-len' oninput='calculateLand()' placeholder='0.00' style='width:100%; padding:10px; border:1.5px solid #ddd; border-radius:8px;' type='number'/>
5626</div>
5627<div class='st-input-group'>
5628<label class='pnd-solaiman' for='land-wid' id='lbl-wid' style='font-weight:700; display:block; margin-bottom:5px;'>Average Width (Feet)</label>
5629<input id='land-wid' oninput='calculateLand()' placeholder='0.00' style='width:100%; padding:10px; border:1.5px solid #ddd; border-radius:8px;' type='number'/>
5630</div>
5631</div>
5632<div id='tri-inputs' style='display:none;'>
5633<div class='st-input-group' style='margin-bottom:10px;'>
5634<label class='pnd-solaiman' for='tri-a' id='lbl-tri-a' style='font-weight:700;'>Side A (Feet)</label>
5635<input id='tri-a' oninput='calculateLand()' style='width:100%; padding:10px; border:1.5px solid #ddd; border-radius:8px;' type='number'/>
5636</div>
5637<div class='st-input-group' style='margin-bottom:10px;'>
5638<label class='pnd-solaiman' for='tri-b' id='lbl-tri-b' style='font-weight:700;'>Side B (Feet)</label>
5639<input id='tri-b' oninput='calculateLand()' style='width:100%; padding:10px; border:1.5px solid #ddd; border-radius:8px;' type='number'/>
5640</div>
5641<div class='st-input-group'>
5642<label class='pnd-solaiman' for='tri-c' id='lbl-tri-c' style='font-weight:700;'>Side C (Feet)</label>
5643<input id='tri-c' oninput='calculateLand()' style='width:100%; padding:10px; border:1.5px solid #ddd; border-radius:8px;' type='number'/>
5644</div>
5645</div>
5646<div style='background: #f0fdf4; padding: 15px; border-radius: 12px; border: 1px dashed #059669; margin-top: 15px;'>
5647<p class='pnd-solaiman' id='land-info' style='font-size: 13px; color: #166534; margin: 0; font-weight:700;'>Standard: 1 Decimal = 435.6 Sq. Ft</p>
5648</div>
5649</div>
5650<div class='land-results' style='background: #f8fafc; padding: 20px; border-radius: 15px; border: 1px solid #e2e8f0;'>
5651<h4 class='pnd-solaiman' id='res-head' style='margin-top:0; color:#059669; font-weight:800;'>Calculated Area:</h4>
5652<div style='display: grid; gap: 8px;'>
5653<div style='display:flex; justify-content:space-between; border-bottom:1px solid #eee; padding-bottom:5px;'><span class='pnd-solaiman' id='txt-sqft'>Sq. Feet:</span>
5654<b id='res-sqft'>0.00</b></div>
5655<div style='display:flex; justify-content:space-between; border-bottom:1px solid #eee; padding-bottom:5px;'><span class='pnd-solaiman' id='txt-decimal'>Decimal:</span>
5656<b id='res-decimal' style='color:#059669;'>0.00</b></div>
5657<div style='display:flex; justify-content:space-between; border-bottom:1px solid #eee; padding-bottom:5px;'><span class='pnd-solaiman' id='txt-katha'>Katha:</span>
5658<b id='res-katha'>0.00</b></div>
5659<div style='display:flex; justify-content:space-between; border-bottom:1px solid #eee; padding-bottom:5px;'><span class='pnd-solaiman' id='txt-bigha'>Bigha:</span>
5660<b id='res-bigha'>0.00</b></div>
5661<div style='display:flex; justify-content:space-between;'><span class='pnd-solaiman' id='txt-acre'>Acre:</span>
5662<b id='res-acre'>0.00</b></div>
5663</div>
5664<div style='margin-top: 20px; display: grid; grid-template-columns: 1fr 1fr; gap: 10px;'>
5665<button class='dp-btn dp-btn-blue' onclick='printLandReport()' style='margin:0; background:#059669 !important;' type='button'><i class='fa-solid fa-print'></i>
5666<span class='pnd-solaiman' id='btn-print-text'>Print A4</span></button>
5667<button class='dp-btn dp-btn-red' onclick='resetLand()' style='margin:0;' type='button'><i class='fa-solid fa-trash'></i>
5668<span class='pnd-solaiman' id='btn-reset-text'>Reset</span></button>
5669</div>
5670</div>
5671</div>
5672</div>
5673</div>
5674</div>
5675<!-- OMR Generator Modal -->
5676<div class='crop-modal-overlay' id='omrModal' style='display:none;'>
5677<div class='crop-modal-content' style='max-width: 550px; width: 95%;'>
5678<span class='close-crop-modal' onclick='closeOmrModal()'>&#215;</span>
5679<div class='cp-box' style='padding: 25px; border: 2px solid #6366f1; border-radius: 20px; background: #fff;'>
5680<h2 id='omr-ui-title' style='text-align:center; color:#6366f1; margin-bottom:20px; font-weight: 800;'>
5681<i class='fa-solid fa-circle-check'></i> OMR Sheet Generator
5682      </h2>
5683<!-- Language Switcher -->
5684<div style='display: flex; justify-content: center; background: #f1f5f9; padding: 5px; border-radius: 50px; width: fit-content; margin: 0 auto 20px;'>
5685<button class='ph-tab active' id='omr-en-btn' onclick='setOmrLang("en")' type='button'>English</button>
5686<button class='ph-tab' id='omr-bn-btn' onclick='setOmrLang("bn")' style='font-family: "SolaimanLipi", sans-serif;' type='button'>ব&#2494;&#2434;ল&#2494;</button>
5687</div>
5688<div class='st-input-group'>
5689<label for='omr-name' id='lbl-omr-inst'>Institution Name</label>
5690<input id='omr-name' placeholder='Type here...' type='text'/>
5691</div>
5692<div class='st-input-group'>
5693<label for='omr-exam' id='lbl-omr-exam'>Exam Title</label>
5694<input id='omr-exam' placeholder='Type here...' type='text'/>
5695</div>
5696<div style='display:grid; grid-template-columns: 1fr 1fr; gap:15px;'>
5697<div class='st-input-group'>
5698<label for='omr-q-total' id='lbl-omr-q'>Total Questions</label>
5699<select id='omr-q-total'>
5700<option value='25'>25 Questions</option>
5701<option value='30'>30 Questions</option>
5702<option selected='selected' value='50'>50 Questions</option>
5703<option value='100'>100 Questions</option>
5704</select>
5705</div>
5706<div class='st-input-group'>
5707<label for='omr-opt-total' id='lbl-omr-opt'>Options</label>
5708<select id='omr-opt-total'>
5709<option selected='selected' value='4'>4 (A-D)</option>
5710<option value='5'>5 (A-E)</option>
5711</select>
5712</div>
5713</div>
5714<button class='conv-btn-main' onclick='generateAndPrintOMR()' style='width:100%; margin-top:20px; font-weight: 800;' type='button'>
5715<i class='fa-solid fa-print'></i>
5716<span id='lbl-omr-print'>Generate & Print OMR</span>
5717</button>
5718</div>
5719</div>
5720</div>
5721<!-- Professional Affidavit Maker Modal -->
5722<div class='crop-modal-overlay' id='affidavitModal' style='display:none;'>
5723<div class='crop-modal-content' style='max-width: 1200px; width: 100%;'>
5724<span class='close-crop-modal' onclick='closeAffidavitModal()'>&#215;</span>
5725<div class='cp-box' style='border: 2px solid #0d9488; border-radius: 20px; padding: 15px; background: #fff; font-family: "SolaimanLipi", Arial, sans-serif !important;'>
5726<h2 id='aff-main-title' style='color:#0d9488; text-align:center; margin-bottom:15px; font-weight: 800;'>
5727<i class='fa-solid fa-file-contract'></i> Affidavit Writing
5728      </h2>
5729<!-- Language Switch -->
5730<div style='display: flex; justify-content: center; gap: 10px; margin-bottom: 20px; background: #f0fdfa; padding: 5px; border-radius: 50px; width: fit-content; margin: 0 auto 20px;'>
5731<button class='ph-tab active' id='aff-bn-btn' onclick='setAffLang("bn")'>
5732          ব&#2494;&#2434;ল&#2494; ভ&#2494;র&#2509;সন
5733        </button>
5734<button class='ph-tab' id='aff-en-btn' onclick='setAffLang("en")'>
5735          English Version
5736        </button>
5737</div>
5738<div class='aff-grid'>
5739<!-- Left Side: Inputs & Buttons -->
5740<div class='aff-inputs'>
5741<div class='st-input-group'>
5742<label for='aff-template-select' id='lbl-aff-temp' style='font-weight:800; color:#0d9488;'>ট&#2503;মপ&#2509;ল&#2503;ট ন&#2495;র&#2509;ব&#2494;চন কর&#2497;ন</label>
5743<select id='aff-template-select' onchange='applyAffTemplate(this.value)' style='width:100%; padding:10px; border-radius:8px; border:1px solid #cbd5e1; font-family: "SolaimanLipi", sans-serif;'></select>
5744</div>
5745<div class='st-input-group'>
5746<label for='aff-name' id='lbl-aff-name'>হলফক&#2494;র&#2496;র ন&#2494;ম</label>
5747<input id='aff-name' oninput='updateAffPreview()' type='text'/>
5748</div>
5749<div class='st-input-group'>
5750<label for='aff-father' id='lbl-aff-father'>প&#2495;ত&#2494;/স&#2509;ব&#2494;ম&#2496;র ন&#2494;ম</label>
5751<input id='aff-father' oninput='updateAffPreview()' type='text'/>
5752</div>
5753<div class='st-input-group'>
5754<label for='aff-mother' id='lbl-aff-mother'>ম&#2494;ত&#2494;র ন&#2494;ম</label>
5755<input id='aff-mother' oninput='updateAffPreview()' type='text'/>
5756</div>
5757<div class='st-input-group'>
5758<label for='aff-address' id='lbl-aff-addr'>ঠ&#2495;ক&#2494;ন&#2494;</label>
5759<textarea id='aff-address' oninput='updateAffPreview()' rows='2'></textarea>
5760</div>
5761<div class='st-input-group'>
5762<label for='aff-wrong' id='lbl-aff-wrong'>ভ&#2497;ল তথ&#2509;য (য&#2494; আছ&#2503;)</label>
5763<input id='aff-wrong' oninput='updateAffPreview()' type='text'/>
5764</div>
5765<div class='st-input-group'>
5766<label for='aff-correct' id='lbl-aff-correct'>সঠ&#2495;ক তথ&#2509;য (য&#2494; হব&#2503;)</label>
5767<input id='aff-correct' oninput='updateAffPreview()' type='text'/>
5768</div>
5769<div class='st-input-group' style='background: #f8fafc; border: 1px dashed #0d9488; padding: 10px; border-radius: 10px;'>
5770<label for='aff-margin-slider' id='lbl-aff-margin'>স&#2509;ট&#2509;য&#2494;ম&#2509;প টপ স&#2509;প&#2503;স (Inch)</label>
5771<input id='aff-margin-slider' max='700' min='100' oninput='updateAffMargin(this.value)' type='range' value='330'/>
5772<b id='aff-margin-val' style='color:#0d9488;'>3.3 Inch</b>
5773</div>
5774<!-- Buttons -->
5775<div style='margin-top: 20px; display: grid; grid-template-columns: 1fr 1fr; gap: 10px;'>
5776<button class='conv-btn-main' onclick='printAffidavit()' style='background: #1e40af !important; margin:0;'>
5777<i class='fa-solid fa-print'></i> Print PDF
5778            </button>
5779<button class='conv-btn-main' onclick='resetAffidavit()' style='background: #ef4444 !important; margin:0;'>
5780<i class='fa-solid fa-trash-can'></i> Reset All
5781            </button>
5782</div>
5783<!-- Introduction Box (New) -->
5784<div id='aff-intro-box' style='margin-top: 15px; padding: 12px; background: #fffbeb; border-left: 4px solid #f59e0b; font-size: 13px; line-height: 1.5; color: #92400e; border-radius: 5px;'>
5785<!-- Content dynamic via JS -->
5786</div>
5787</div>
5788<!-- Right Side: Preview -->
5789<div class='aff-preview-scroll'>
5790<p id='lbl-aff-preview-hint' style='color:#fbbf24; font-size: 11px; margin-bottom: 10px; font-weight: 800;'>
5791            STAMP PREVIEW (IMAGE WILL NOT PRINT)
5792          </p>
5793<div class='paper-wrapper' id='aff-wrapper'>
5794<div id='aff-editor-box'>
5795<div id='aff-top-margin' style='height: 330px;'></div>
5796<div id='aff-render-text'>
5797<h1 id='aff-title-ui' style='text-align:center; text-decoration: underline; margin-bottom: 25px; font-size: 24px;'>
5798                  হলফন&#2494;ম&#2494;
5799                </h1>
5800<div contenteditable='true' id='aff-body-ui' spellcheck='false' style='line-height: 1.8; font-size: 18px; outline: none; min-height: 500px;'></div>
5801<div id='aff-footer-ui' style='margin-top: 70px; display: flex; justify-content: space-between; font-weight: bold;'>
5802<div style='text-align:center;'>
5803<br/>________________<br/><span id='lbl-sig-1'>তদন&#2509;তক&#2494;র&#2496;
5804                      কর&#2509;মকর&#2509;ত&#2494;</span>
5805</div>
5806<div style='text-align:center;'>
5807<br/>________________<br/><span id='lbl-sig-2'>হলফক&#2494;র&#2496;র স&#2509;ব&#2494;ক&#2509;ষর</span>
5808</div>
5809</div>
5810</div>
5811</div>
5812</div>
5813</div>
5814</div>
5815</div>
5816</div>
5817</div>
5818<!-- Studio Cloud -->
5819<div class='crop-modal-overlay' id='studioCloudModal' style='display:none;'>
5820<div class='crop-modal-content' style='max-width: 1100px;'>
5821<span class='close-crop-modal' onclick='closeStudioCloudModal()'>&#215;</span>
5822<div class='cp-box' style='border: 2px solid #4285F4; border-radius: 20px; padding: 10px; background: #fff;'>
5823<h2 style='color:#4285F4; text-align:center; margin-bottom:15px; font-weight: 800; font-size: 22px;'>
5824<i class='fa-solid fa-cloud-bolt'></i> Personal Studio Cloud File Database
5825      </h2>
5826<!-- Auth Section -->
5827<div id='cloud-auth-section' style='text-align:center; padding: 40px 15px; border: 2px dashed #e2e8f0; border-radius: 20px; background: #f8fafc;'>
5828<div style='width: 70px; height: 70px; background: #fff; border-radius: 50%; display: flex; align-items: center; justify-content: center; margin: 0 auto 20px; box-shadow: 0 8px 15px rgba(0,0,0,0.05);'>
5829<i class='fa-brands fa-google' style='font-size: 35px; color: #4285F4;'></i>
5830</div>
5831<p style='margin-bottom: 25px; font-weight: 700; color: #475569; font-size: 16px;'>Connect with Google to manage your Photos and Files Securely.</p>
5832<button class='google-login-btn' onclick='handleAuthClick()'>Sign in with Google</button>
5833</div>
5834<!-- Main UI -->
5835<div id='cloud-main-ui' style='display:none;'>
5836<div class='cloud-user-bar'>
5837<div class='mode-switcher'>
5838<button class='active' id='btn-mode-photo' onclick='switchCloudMode("photo")'><i class='fa-solid fa-image'></i> Photo Cloud</button>
5839<button id='btn-mode-file' onclick='switchCloudMode("file")'><i class='fa-solid fa-file-invoice'></i> File Cloud</button>
5840</div>
5841<button class='st-logout-btn' onclick='handleSignoutClick()'>Logout</button>
5842</div>
5843<div class='studio-form-container'>
5844<div class='upload-wrapper'>
5845<div class='drag-area' id='drop-zone'>
5846<div class='icon'><i class='fa-solid fa-image' id='mode-icon-display'></i></div>
5847<header id='upload-instruction'>Click to import Photos</header>
5848<button onclick='document.getElementById("st-input-file").click()' type='button'>Browse File</button>
5849<input id='st-input-file' style='display:none;' type='file'/>
5850<div id='preview-container' style='display:none; position:absolute; inset:0; background:#fff; z-index:5; flex-direction:column; align-items:center; justify-content:center;'>
5851<img id='preview-img' src='' style='display:none; max-height:80%; max-width:90%; border-radius:10px;'/>
5852<div id='preview-file-icon' style='display:none; font-size:60px; color:#4285F4;'><i class='fa-solid fa-file-lines'></i></div>
5853<p id='preview-file-name' style='font-size:12px; font-weight:700; margin-top:10px; color:#1e293b; padding:0 15px; text-align:center;'></p>
5854</div>
5855</div>
5856</div>
5857<div class='form-inputs'>
5858<div class='st-input-group'>
5859<label for='st-name'>Owner / Name</label>
5860<input id='st-name' placeholder='Enter Name...' type='text'/>
5861</div>
5862<div class='st-input-group'>
5863<label for='st-phone'>Phone / Reference</label>
5864<input id='st-phone' placeholder='Contact No...' type='text'/>
5865</div>
5866<div class='st-input-group'>
5867<label for='st-address'>Address / Description</label>
5868<input id='st-address' placeholder='Additional Info...' type='text'/>
5869</div>
5870<button class='st-save-btn' id='save-btn' onclick='uploadToDrive()'>
5871<i class='fa-solid fa-cloud-arrow-up'></i> Save to <span id='save-mode-text'>Photos</span>
5872</button>
5873<div id='upload-loader' style='display:none; text-align:center; margin-top:10px; color:#4285F4; font-weight:700;'>
5874<i class='fa-solid fa-spinner fa-spin'></i> Uploading, please wait...
5875  </div>
5876</div>
5877</div>
5878<div class='studio-records-wrapper'>
5879<div class='records-header'>
5880<h3 id='gallery-title' style='font-size: 16px; color: #059669; font-weight: 800;'><i class='fa-solid fa-images'></i> Photos Database</h3>
5881<div class='search-box'><i class='fa-solid fa-magnifying-glass'></i><input id='st-search' oninput='searchRecords()' placeholder='Search records...' type='text'/></div>
5882</div>
5883<div class='cloud-gallery-grid' id='cloud-gallery'></div>
5884</div>
5885</div>
5886<!-- Security Note Section -->
5887<div style='margin-top: 20px; padding: 15px; background: #f0fdf4; border: 1px dashed #16a34a; border-radius: 12px; text-align: center; font-family: "SolaimanLipi", "Inter", sans-serif;'>
5888<p style='font-size: 14px; color: #166534; font-weight: 700; margin: 0; line-height: 1.6;'>
5889<i class='fa-solid fa-shield-halved' style='color: #16a34a;'></i>
5890<b>১০০% ন&#2495;র&#2494;পদ:</b> আপন&#2494;র আপল&#2507;ড কর&#2494; ফ&#2494;ইল সম&#2509;প&#2498;র&#2509;ণ আপন&#2494;র ন&#2495;জস&#2509;ব গ&#2497;গল ড&#2509;র&#2494;ইভ&#2503; (Google Drive) জম&#2494; হব&#2503;&#2404; এট&#2495; ক&#2507;ন&#2507;ভ&#2494;ব&#2503;ই আম&#2494;দ&#2503;র ওয়&#2503;বস&#2494;ইট&#2503;র স&#2494;র&#2509;ভ&#2494;র&#2503; স&#2503;ভ হয় ন&#2494;, ত&#2494;ই আপন&#2494;র ড&#2503;ট&#2494; সম&#2509;প&#2498;র&#2509;ণ স&#2497;রক&#2509;ষ&#2495;ত&#2404;<br/>
5891<div class='bhero-divider'></div>
5892<i class='fa-solid fa-lock' style='color: #16a34a; margin-top: 5px;'></i>
5893<b>100% Secure:</b> Your files will be stored directly in your personal Google Drive. They are never saved on our website's server, ensuring your data remains completely secure.
5894        </p>
5895</div>
5896</div>
5897</div>
5898</div>
5899<!-- Studio Cloud end -->
5900<!-- Image Preview Overlay -->
5901<div id='studioImgPreview' onclick='this.style.display="none"' style='display:none; position:fixed; inset:0; background:rgba(0,0,0,0.9); z-index:9999999; align-items:center; justify-content:center; flex-direction:column; padding:20px; cursor: zoom-out;'>
5902<span onclick='document.getElementById("studioImgPreview").style.display="none"' style='position:absolute; top:30px; right:40px;
5902 color:white; font-size:50px; font-weight:bold; cursor:pointer; line-height:1;'>&#215;</span>
5903<img id='preview-full-img' onclick='event.stopPropagation()' src='' style='max-width:100%; max-height:85vh; border-radius:10px; border: 3px solid #fff; box-shadow: 0 0 30px rgba(0,0,0,0.5); display:none; cursor: default;'/>
5904<p id='preview-caption' onclick='event.stopPropagation()' style='color:white; margin-top:15px; font-size:18px; font-weight:700; background: rgba(0,0,0,0.5); padding: 5px 20px; border-radius: 50px;'></p>
5905</div>
5906<!-- Job Circular Finder Modal (Single Category) -->
5907<div class='crop-modal-overlay' id='jobFinderModal' style='display:none;'>
5908<div class='crop-modal-content' style='max-width: 1100px; width: 95%;'>
5909<span class='close-crop-modal' onclick='closeJobModal()'>&#215;</span>
5910<div class='cp-box' style='border: 2px solid #6366f1; border-radius: 24px; padding: 15px; background: #fff; font-family: "Inter", "SolaimanLipi", sans-serif;'>
5911<!-- Scrolling Marquee -->
5912<div style='overflow:hidden; white-space:nowrap; width:100%; background:#f1f5f9; border:1px solid #e2e8f0; border-radius: 10px; padding:8px; margin-bottom: 15px;'>
5913<span class='job-scrolling-text' style='display:inline-block; font-size: 14px; color: #475563; font-weight: 600;'>
5914          🚀 সরক&#2494;র&#2495; চ&#2494;কর&#2495;, ব&#2509;য&#2494;&#2434;ক চ&#2494;কর&#2495;, শ&#2495;ক&#2509;ষকত&#2494;, চ&#2495;ক&#2495;ৎসক চ&#2494;কর&#2495;, ন&#2494;র&#2509;স&#2495;&#2434;, স&#2503;ন&#2494;ব&#2494;হ&#2495;ন&#2496; চ&#2494;কর&#2495;, প&#2497;ল&#2495;শ চ&#2494;কর&#2495;, ব&#2495;জ&#2495;ব&#2495;, ন&#2508;ব&#2494;হ&#2495;ন&#2496;, ব&#2495;ম&#2494;নব&#2494;হ&#2495;ন&#2496;, প&#2509;রক&#2508;শল&#2496; চ&#2494;কর&#2495;, তথ&#2509;যপ&#2509;রয&#2497;ক&#2509;ত&#2495; (আইট&#2495;) চ&#2494;কর&#2495;, স&#2494;&#2434;ব&#2494;দ&#2495;কত&#2494;, ব&#2503;সরক&#2494;র&#2495; অফ&#2495;স চ&#2494;কর&#2495;, এনজ&#2495;ও চ&#2494;কর&#2495;, গ&#2494;র&#2509;ম&#2503;ন&#2509;টস চ&#2494;কর&#2495;, ড&#2509;র&#2494;ইভ&#2494;র চ&#2494;কর&#2495;, ফ&#2509;র&#2495;ল&#2509;য&#2494;ন&#2509;স&#2495;&#2434; সহ ইত&#2509;য&#2494;দ&#2495; চ&#2494;কর&#2495;র আব&#2503;দন করত&#2503; প&#2494;রব&#2503;ন&#2404; 🚀
5915        </span>
5916</div>
5917<h2 style='color:#6366f1; text-align:center; margin-bottom:5px; font-weight: 800;'>
5918<i class='fa-solid fa-briefcase'></i>
5919<span id='jf-title'>Job Circular Finder</span>
5920</h2>
5921<p id='jf-subtitle' style='text-align:center; font-size:14px; color:#64748b; margin-bottom:15px; font-weight: 700;'>সকল চ&#2494;কর&#2495;র আব&#2503;দন ও স&#2494;র&#2509;ক&#2497;ল&#2494;র &#10004;</p>
5922<!-- Banner -->
5923<div style='text-align: center; margin-bottom: 20px;'>
5924<img alt='ডিজিটাল অনলাইন সার্ভিস' src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitsB5u5qwMLKAwq-8i1ucNTivfVz9OwR58_qeTmxyjvjXgY_FicZf90LIxnnS_Ipyu70zP-Djqv8gugajMt1E1t5lZUP_2WLm1iHLb487SD5htWSsnPi6OudKUF9HAGhLS2o0n4a_5PdcUhoDzV7AQvAAUSH5I7m6NM0lQhoE3_dneWsaZZC9apsX7RUs/s1600/job.png' style='width: 100%; max-width: 600px; border-radius: 12px;'/>
5925</div>
5926<div style='background: #f8fafc; padding: 15px; border-radius: 15px; border: 1px solid #e2e8f0; margin-bottom: 20px;'>
5927<div style='display: flex; gap: 10px;'>
5928<input id='jf-search-input' placeholder='পদের নাম লিখুন (যেমন: Computer Operator)...' style='flex: 1; padding: 12px; border: 2px solid #cbd5e1; border-radius: 10px; outline: none; font-size: 15px; font-family: "SolaimanLipi", sans-serif;' type='text'/>
5929<button onclick='searchJobs()' style='background: #6366f1; color: white; border: none; padding: 0 20px; border-radius: 10px; cursor: pointer; font-weight: 700; font-family: "SolaimanLipi", sans-serif;'>খ&#2497;&#2433;জ&#2497;ন</button>
5930</div>
5931</div>
5932<!-- MASTER CATEGORY GRID -->
5933<div class='jf-master-grid' id='job-master-grid'>
5934<!-- All cards (Logo first, then Icons) will be injected here -->
5935</div>
5936</div>
5937</div>
5938</div>
5939<!-- Online Application & Download Modal -->
5940<div class='crop-modal-overlay' id='onlineSebaModal' style='display:none;'>
5941<div class='crop-modal-content' style='max-width: 1150px; width: 95%;'>
5942<span class='close-crop-modal' onclick='closeSebaModal()'>&#215;</span>
5943<div class='cp-box' style='border: 2px solid #059669; border-radius: 24px; padding: 15px; background: #fff; font-family: "SolaimanLipi", "Inter", sans-serif !important;'>
5944<!-- Scrolling Marquee Notice -->
5945<div style='overflow:hidden; white-space:nowrap; width:100%; background:#ecfdf5; border:1px solid #10b981; border-radius: 10px; padding:8px; margin-bottom: 15px;'>
5946<span class='seba-scrolling-text' style='display:inline-block; font-size: 15px; color: #065f46; font-weight: 600;'>
5947          🚀 পল&#2509;ল&#2496; ব&#2495;দ&#2509;য&#2497;ৎ ম&#2495;ট&#2494;র আব&#2503;দন, অনল&#2494;ইন জ&#2495;ড&#2495; আব&#2503;দন, কল&#2503;জ ভর&#2509;ত&#2495; আব&#2503;দন, সকল ভ&#2494;ত&#2494;র আব&#2503;দন, প&#2509;রত&#2495;বন&#2509;ধ&#2496; ক&#2494;র&#2509;ড&#2503;র আব&#2503;দন, এ-চ&#2494;ল&#2494;ন, জন&#2509;ম ন&#2495;বন&#2509;ধন আব&#2503;দন, জন&#2509;ম ন&#2495;বন&#2509;ধন য&#2494;চ&#2494;ই, এন-আইড&#2495; ক&#2494;র&#2509;ড আব&#2503;দন, এন-আইড&#2495; ক&#2494;র&#2509;ড ড&#2494;উনল&#2507;ড, স&#2509;ম&#2494;র&#2509;ট এন-আইড&#2495; স&#2509;ট&#2509;য&#2494;ট&#2494;স চ&#2503;ক, প&#2497;ল&#2495;শ ক&#2509;ল&#2495;য়&#2494;র&#2503;ন&#2509;স আব&#2503;দন, ট&#2495;ন স&#2494;র&#2509;ট&#2495;ফ&#2495;ক&#2503;ট আব&#2503;দন, ড&#2509;র&#2494;ইভ&#2495;&#2434; ল&#2494;ইস&#2503;ন&#2509;স আব&#2503;দন, ট&#2494;ইফয&#2492;&#2503;ড ভ&#2509;য&#2494;কস&#2495;ন আব&#2503;দন, ম&#2503;ন&#2495;নজ&#2494;ইট&#2495;স ভ&#2509;য&#2494;কস&#2495;ন আব&#2503;দন, এইচপ&#2495;ভ&#2495; ভ&#2509;য&#2494;কস&#2495;ন আব&#2503;দন, এনর&#2507;লম&#2503;ন&#2509;ট ক&#2494;র&#2509;ড ড&#2494;উনল&#2507;ড, ট&#2509;র&#2503;ন&#2495;&#2434; স&#2494;র&#2509;ট&#2495;ফ&#2495;ক&#2503;ট ড&#2494;উনল&#2507;ড, ম&#2509;য&#2494;নপ&#2494;ওয&#2492;&#2494;র ড&#2494;উনল&#2507;ড, ব&#2495;এমইট&#2495; আব&#2503;দন, ই-প&#2494;সপ&#2507;র&#2509;ট আব&#2503;দন, প&#2494;সপ&#2507;র&#2509;ট আব&#2503;দন চ&#2503;ক, জম&#2495;র খ&#2494;র&#2495;জ আব&#2503;দন, ভ&#2498;ম&#2495; উন&#2509;নয&#2492;ন কর প&#2509;রদ&#2494;ন, ভ&#2498;ম&#2495; ম&#2509;য&#2494;প ও খত&#2495;য&#2492;&#2494;ন, স&#2509;ম&#2494;র&#2509;ট ন&#2494;গর&#2495;ক ইউন&#2495;য&#2492;ন, ট&#2495;স&#2495;ব&#2495; স&#2509;ম&#2494;র&#2509;ট ক&#2494;র&#2509;ড, ইত&#2509;য&#2494;দ&#2495; স&#2503;ব&#2494;গ&#2497;ল&#2507; প&#2494;ব&#2503;ন&#2404; 🚀
5948        </span>
5949</div>
5950<h2 style='color:#059669; text-align:center; margin-bottom:5px; font-weight: 800;'>
5951<i class='fa-solid fa-earth-americas'></i> অনল&#2494;ইন আব&#2503;দন ও ড&#2494;উনল&#2507;ড
5952      </h2>
5953<p style='text-align:center; font-size:16px; color:#64748b; margin-bottom:15px; font-weight: 700;'>সকল সরক&#2494;র&#2495; ও ব&#2503;সরক&#2494;র&#2495; অনল&#2494;ইন স&#2503;ব&#2494; &#10004;</p>
5954<!-- Banner Image -->
5955<div style='text-align: center; margin-bottom: 25px;'>
5956<img alt='ডিজিটাল অনলাইন সার্ভিস' src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYMmejGUTTmrC6nCgeNoU9IZJOWR0c2YQ_Q7Bzyl_AksbZYbiqz1JNHt_hriXYfxqHpwiqodEHhnAwb_tVIJzKd8NF0X3H3edT5W5uuIpga7h22UGo4J2XwgLC4C0tajUca0lJuyp5fynroRPvukj5Y9Z_p_KBQ93Y-KiPjjQQKRkSO9opyPaXOdN2pfk/s1600/Online.png' style='width: 100%; max-width: 600px; border-radius: 15px; box-shadow: 0 5px 15px rgba(0,0,0,0.05);'/>
5957</div>
5958<!-- SEBA CARDS GRID -->
5959<div class='os-master-grid' id='seba-master-grid'>
5960</div>
5961</div>
5962</div>
5963</div>
5964<!-- Photocopy Cost Calculator Modal -->
5965<div class='crop-modal-overlay' id='costCalcModal' style='display:none;'>
5966<div class='crop-modal-content' style='max-width: 600px; width: 95%;'>
5967<span class='close-crop-modal' onclick='closeCostCalcModal()'>&#215;</span>
5968<div class='cp-box' style='border: 2px solid #4f46e5; border-radius: 20px; padding: 25px; background: #fff; font-family: "Inter", "SolaimanLipi", sans-serif;'>
5969<h2 style='color:#4f46e5; text-align:center; margin-bottom:15px; font-weight: 800;'>
5970<i class='fa-solid fa-calculator'></i>
5971<span id='cost-title'>Photocopy & Print Cost Calculator</span>
5972</h2>
5973<!-- Language Toggle -->
5974<div style='display: flex; justify-content: center; background: #f1f5f9; padding: 5px; border-radius: 50px; width: fit-content; margin: 0 auto 20px;'>
5975<button class='ph-tab active' id='cost-en-btn' onclick='setCostLang("en")'>English</button>
5976<button class='ph-tab' id='cost-bn-btn' onclick='setCostLang("bn")'>ব&#2494;&#2434;ল&#2494;</button>
5977</div>
5978<div class='cost-ui-grid' style='display: grid; gap: 15px;'>
5979<!-- Paper Cost -->
5980<div class='st-input-group'>
5981<label for='paper-price' id='lbl-paper-price' style='font-weight:700; display:block; margin-bottom:5px;'>Paper Rim Price (BDT)</label>
5982<input id='paper-price' oninput='calculatePrintingCost()' placeholder='e.g. 500' type='number' value='500'/>
5983</div>
5984<!-- Ink Cost -->
5985<div style='display: grid; grid-template-columns: 1fr 1fr; gap: 10px;'>
5986<div class='st-input-group'>
5987<label for='ink-price' id='lbl-ink-price' style='font-weight:700;'>Ink/Toner Price</label>
5988<input id='ink-price' oninput='calculatePrintingCost()' placeholder='e.g. 800' type='number' value='800'/>
5989</div>
5990<div class='st-input-group'>
5991<label for='ink-yield' id='lbl-ink-yield' style='font-weight:700;'>Page Yield (Approx)</label>
5992<input id='ink-yield' oninput='calculatePrintingCost()' placeholder='e.g. 2000' type='number' value='2000'/>
5993</div>
5994</div>
5995<!-- Extra Costs -->
5996<div style='display: grid; grid-template-columns: 1fr 1fr; gap: 10px;'>
5997<div class='st-input-group'>
5998<label for='elec-cost' id='lbl-electricity' style='font-weight:700;'>Electricity/Bill (Per Page)</label>
5999<input id='elec-cost' oninput='calculatePrintingCost()' step='0.1' type='number' value='0.2'/>
6000</div>
6001<div class='st-input-group'>
6002<label for='sell-price' id='lbl-sell-price' style='font-weight:700;'>Selling Price (Per Page)</label>
6003<input id='sell-price' oninput='calculatePrintingCost()' step='0.5' type='number' value='5'/>
6004</div>
6005</div>
6006<!-- Result Section -->
6007<div style='background: #f8fafc; padding: 20px; border-radius: 15px; border: 1px solid #e2e8f0; margin-top: 10px;'>
6008<div style='display: flex; justify-content: space-between; border-bottom: 1px solid #eee; padding-bottom: 8px;'>
6009<span id='txt-cost-per-page'>Cost Per Page:</span>
6010<b style='color:#ef4444;'>
6011<span id='res-total-cost'>0.00</span>
6012<span id='unit-cost'>BDT</span>
6013</b>
6014</div>
6015<div style='display: flex; justify-content: space-between; padding-top: 8px;'>
6016<span id='txt-profit-per-page' style='font-weight: 800;'>Profit Per Page:</span>
6017<b style='color:#059669; font-size: 20px;'>
6018<span id='res-net-profit'>0.00</span>
6019<span id='unit-profit'>BDT</span>
6020</b>
6021</div>
6022</div>
6023<!-- Suggestion Info -->
6024<div id='cost-info-box' style='padding: 10px; background: #fffbeb; border: 1px dashed #f59e0b; border-radius: 10px; font-size: 13px; color: #92400e;'>
6025<i class='fa-solid fa-circle-info'></i>
6026<span id='cost-tip'>Tip: Generally, one Rim has 500 sheets. Calculation is based on single-side print.</span>
6027</div>
6028</div>
6029</div>
6030</div>
6031</div>
6032<!-- Bangladesh Result Check Modal -->
6033<div class='crop-modal-overlay' id='resultCheckModal' style='display:none;'>
6034<div class='crop-modal-content' style='max-width: 1100px; width: 95%;'>
6035<span class='close-crop-modal' onclick='closeResultModal()'>&#215;</span>
6036<div class='cp-box' style='border: 2px solid #6366f1; border-radius: 24px; padding: 15px; background: #fff; font-family: "SolaimanLipi", "Inter", sans-serif !important;'>
6037<!-- Scrolling Marquee -->
6038<div style='overflow:hidden; white-space:nowrap; width:100%; background:#f1f5f9; border:1px solid #e2e8f0; border-radius: 10px; padding:8px; margin-bottom: 15px;'>
6039<span class='result-scrolling-text' style='display:inline-block; font-size: 15px; color: #475563; font-weight: 600;'>
6040          🚀 প&#2509;র&#2494;থম&#2495;ক শ&#2495;ক&#2509;ষ&#2494; অধ&#2495;দপ&#2509;তর, প&#2509;র&#2494;থম&#2495;ক শ&#2495;ক&#2509;ষ&#2494; অধ&#2495;দপ&#2509;তর-ব&#2495;দ&#2509;য&#2494;লয় ভ&#2495;ত&#2509;ত&#2495;ক, ব&#2494;&#2434;ল&#2494;দ&#2503;শ শ&#2495;ক&#2509;ষ&#2494; ব&#2507;র&#2509;ড, পর&#2496;ক&#2509;ষ&#2494;র র&#2503;জ&#2494;ল&#2509;ট ব&#2495;ড&#2495;, কওম&#2496; ম&#2494;দর&#2494;স&#2494; শ&#2495;ক&#2509;ষ&#2494;ব&#2507;র&#2509;ড, ক&#2494;র&#2495;গর&#2496; শ&#2495;ক&#2509;ষ&#2494; ব&#2507;র&#2509;ড, ম&#2503;ড&#2495;ক&#2503;ল র&#2503;জ&#2494;ল&#2509;ট - MBBS, ম&#2503;ড&#2495;ক&#2503;ল র&#2503;জ&#2494;ল&#2509;ট - BDS, ব&#2495;দ&#2509;য&#2494;লয়&#2503;র অভ&#2509;যন&#2509;তর&#2496;ণ র&#2503;জ&#2494;ল&#2509;ট, সহ ব&#2494;&#2434;ল&#2494;দ&#2503;শ&#2503;র সকল পর&#2496;ক&#2509;ষ&#2494;র ফল&#2494;ফল দ&#2503;খত&#2503; প&#2494;রব&#2503;ন&#2404; 🚀
6041        </span>
6042</div>
6043<h2 style='color:#6366f1; text-align:center; margin-bottom:5px; font-weight: 800;'>
6044<i class='fa-solid fa-graduation-cap'></i> ব&#2494;&#2434;ল&#2494;দ&#2503;শ পর&#2496;ক&#2509;ষ&#2494;র র&#2503;জ&#2494;ল&#2509;ট চ&#2503;ক
6045      </h2>
6046<p style='text-align:center; font-size:16px; color:#64748b; margin-bottom:15px; font-weight: 700;'>দ&#2509;র&#2497;ত ও সঠ&#2495;ক ফল&#2494;ফল য&#2494;চ&#2494;ই &#10004;</p>
6047<!-- Banner Image -->
6048<div style='text-align: center; margin-bottom: 25px;'>
6049<img alt='ডিজিটাল অনলাইন সার্ভিস' src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhffqsZuknoTA9xfhbHah906rP8r6fuExopoeLXtK2mwvtZv6Zle7KmGFpCvPhcTJDR_WpcY1gf4eLZMxgNggdwNVbcMN61_pRdQLBTxfjc2pWMCBD8HzKCWnTddXHmtYgYf5BQJqWqCz60sRS-8OJLhrhVRDCRk057AgXdY8gXnCO-Ph-RyhKB0PQfg4o/s1600/Education.png' style='width: 100%; max-width: 600px; border-radius: 15px; box-shadow: 0 5px 15px rgba(0,0,0,0.05);'/>
6050</div>
6051<!-- RESULT CARDS GRID -->
6052<div class='result-master-grid' id='result-master-grid'>
6053</div>
6054</div>
6055</div>
6056</div>
6057<!-- iPhone Image Converter Modal (HEIC to JPG/PNG/WebP) -->
6058<div class='crop-modal-overlay' id='heicConverterModal' style='display:none;'>
6059<div class='crop-modal-content'>
6060<span class='close-crop-modal' onclick='closeHeicModal()'>&#215;</span>
6061<div class='cp-box' style='border: 2px solid #0ea5e9; border-radius: 18px; padding: 20px;'>
6062<div class='cv-container'>
6063<h2 style='background: linear-gradient(135deg, #0ea5e9, #22d3ee); -webkit-background-clip: text; -webkit-text-fill-color: transparent; margin-bottom:5px; font-size: 24px; font-weight: 800;'>
6064<i class='fa-solid fa-apple-whole'></i> iPhone Image Converter
6065        </h2>
6066<p class='sub' style='margin-bottom:15px; font-size: 14px; color: #64748b;'>
6067          Convert iPhone HEIC Photos to JPG, PNG or WebP
6068        </p>
6069<!-- ড&#2509;রপ এর&#2495;য&#2492;&#2494; -->
6070<div class='cp-upload-area' id='dropAreaHEIC' onclick='document.getElementById("heicInput").click()' role='button' tabindex='0'>
6071<i class='fa-solid fa-cloud-arrow-up' style='font-size: 40px; color: #0ea5e9; margin-bottom: 12px;'></i>
6072<p style='font-weight:600;'>Tap to Select or Drag HEIC Images</p>
6073<label for='heicInput' style='display:none;'>Select HEIC Images</label>
6074<input accept='.heic,.heif' id='heicInput' multiple='multiple' onchange='handleHeicSelection(event)' style='display:none;
6074' type='file'/>
6075</div>
6076<!-- স&#2503;ট&#2495;&#2434;স গ&#2509;র&#2495;ড -->
6077<div class='cv-setting-grid'>
6078<div class='cv-setting-item'>
6079<span><i class='fa-solid fa-file-export'></i> Select Image Format:</span>
6080<select id='heicFormatSelect'>
6081<option selected='selected' value='image/jpeg'>JPEG (Compact)</option>
6082<option value='image/png'>PNG (Lossless)</option>
6083<option value='image/webp'>WEBP (Recommended)</option>
6084</select>
6085</div>
6086<div class='cv-setting-item'>
6087<span><i class='fa-solid fa-sliders'></i> Quality: <b id='heicQualityLabel'>80%</b></span>
6088<input id='heicQualityRange' max='1' min='0.1' oninput='document.getElementById("heicQualityLabel").innerText = Math.round(this.value*100) + "%"' step='0.1' type='range' value='0.8'/>
6089</div>
6090</div>
6091<!-- স&#2509;ট&#2509;য&#2494;ট&#2494;স এব&#2434; প&#2509;র&#2495;ভ&#2495;উ -->
6092<div id='heicStatus' style='font-size: 13px; font-weight: 800; color: #0ea5e9; margin: 15px 0; display:none; text-align:center; padding: 10px; background: #f0f9ff; border-radius: 10px;'>Ready</div>
6093<div id='previewHEIC' style='display:flex; flex-wrap:wrap; gap:12px; justify-content:center; margin-bottom: 15px; max-height: 250px; overflow-y: auto; padding: 10px; border-radius: 10px; background: #f8fafc;'></div>
6094<!-- অ&#2509;য&#2494;কশন ব&#2494;টন -->
6095<div id='heicActionArea' style='display:none; gap:10px; grid-template-columns: 1fr 1fr;'>
6096<button class='conv-btn-main' id='downloadAllHeicBtn' onclick='downloadAllConvertedHeic()' style='background: #059669 !important; margin:0;'>
6097<i class='fa-solid fa-download'></i> Download All
6098            </button>
6099<button class='conv-btn-main' onclick='resetHeicTool()' style='background: #ef4444 !important; margin:0;'>
6100<i class='fa-solid fa-trash-can'></i> Clear
6101            </button>
6102</div>
6103<button class='conv-btn-main' id='convertHeicBtn' onclick='processHeicConversion()' style='background: #0ea5e9 !important; width: 100%; margin-top: 10px;'>
6104<i class='fa-solid fa-wand-magic-sparkles'></i> Convert
6105        </button>
6106</div>
6107</div>
6108</div>
6109</div>
6110<script src='https://cdn.jsdelivr.net/npm/[email protected]/dist/heic2any.min.js'></script>
6110
6111<!-- Full Question Paper Maker Modal -->
6112<div class='crop-modal-overlay' id='fqMakerModal' style='display:none;'>
6113<div class='crop-modal-content' style='max-width: 1200px; width: 95%;'>
6114<span class='close-crop-modal' onclick='closeFqModal()'>&#215;</span>
6115<div class='cp-box' style='border: 2px solid #4f46e5; border-radius: 20px; padding: 20px; background: #fff;'>
6116<h2 style='color:#4f46e5; text-align:center; margin-bottom:15px; font-weight: 800; font-family: "SolaimanLipi", sans-serif !important;'>
6117<!-- আইকন&#2503;র জন&#2509;য আল&#2494;দ&#2494; ফন&#2509;ট ফ&#2509;য&#2494;ম&#2495;ল&#2495; ড&#2495;ক&#2509;ল&#2503;য&#2492;&#2494;র কর&#2494; হয&#2492;&#2503;ছ&#2503; -->
6118<i class='fa-solid fa-file-pen' style='font-family: "Font Awesome 6 Free" !important;'></i>
6119<span id='fq-main-title'>পর&#2496;ক&#2509;ষ&#2494;র প&#2509;রশ&#2509;নপত&#2509;র ম&#2503;ক&#2494;র</span>
6120</h2>
6121<!-- Language Toggle -->
6122<div class='fq-lang-box'>
6123<button class='ph-tab active' id='fq-btn-bn' onclick='setFqLang("bn")'>ব&#2494;&#2434;ল&#2494;</button>
6124<button class='ph-tab' id='fq-btn-en' onclick='setFqLang("en")'>English</button>
6125</div>
6126<div class='fq-main-layout'>
6127<!-- ব&#2494;ম প&#2494;শ: এড&#2495;ট অপশন -->
6128<div class='fq-inputs-side' id='fq-inputs-area'>
6129<div class='fq-group-box'>
6130<p class='fq-step-title' id='lbl-step1'>১. প&#2509;রত&#2495;ষ&#2509;ঠ&#2494;ন&#2503;র তথ&#2509;য</p>
6131<div class='fq-logo-row'>
6132<div class='fq-logo-upload' onclick='document.getElementById("fq-logo-in").click()'>
6133<img id='fq-logo-pv' style='display:none;'/>
6134<i class='fa-solid fa-plus' id='fq-plus-ico'></i>
6135<input accept='image/*' id='fq-logo-in' onchange='loadFqLogo(event)' style='display:none;' type='file'/>
6136</div>
6137<input class='fq-bold-input' id='fq-name' oninput='drawFq()' placeholder='প্রতিষ্ঠানের নাম' type='text'/>
6138</div>
6139<input id='fq-exam-title' oninput='drawFq()' placeholder='পরীক্ষার শিরোনাম' type='text'/>
6140<div class='fq-grid-2'>
6141<input id='fq-class' oninput='drawFq()' placeholder='শ্রেণি' type='text'/>
6142<input id='fq-sub' oninput='drawFq()' placeholder='বিষয়' type='text'/>
6143<input id='fq-time' oninput='drawFq()' placeholder='সময়' type='text'/>
6144<input id='fq-marks' oninput='drawFq()' placeholder='পূর্ণমান' type='text'/>
6145</div>
6146</div>
6147<div class='fq-group-box'>
6148<p class='fq-step-title' id='lbl-step2'>২. প&#2509;রশ&#2509;নপত&#2509;র ত&#2504;র&#2495; কর&#2497;ন</p>
6149<div id='fq-questions-container'></div>
6150<div class='fq-action-grid'>
6151<button class='btn-desc' id='btn-add-desc' onclick='addFqItem(&#39;desc&#39;)'>+ বড় প&#2509;রশ&#2509;ন</button>
6152<button class='btn-mcq' id='btn-add-mcq' onclick='addFqItem(&#39;mcq&#39;)'>+ MCQ প&#2509;রশ&#2509;ন</button>
6153</div>
6154</div>
6155</div>
6156<!-- ড&#2494;ন প&#2494;শ: প&#2509;র&#2495;ভ&#2495;উ -->
6157<div class='fq-preview-side'>
6158<div class='fq-preview-container'>
6159<div id='fq-render-area'>
6160<!-- ল&#2494;ইভ প&#2509;র&#2495;ভ&#2495;উ এখ&#2494;ন&#2503; দ&#2503;খ&#2494;ব&#2503; -->
6161</div>
6162</div>
6163<div class='fq-final-actions'>
6164<button class='btn-print' id='btn-fq-print' onclick='printFqPaper()'>
6165<i class='fa-solid fa-print'></i> প&#2509;র&#2495;ন&#2509;ট কর&#2497;ন
6166            </button>
6167<button class='btn-reset' id='btn-fq-reset' onclick='resetFqTool()'>
6168<i class='fa-solid fa-trash-can'></i> সব ম&#2497;ছ&#2497;ন
6169            </button>
6170</div>
6171</div>
6172</div>
6173</div>
6174</div>
6175</div>
6176<!-- Professional Agreement Maker Modal -->
6177<div class='crop-modal-overlay' id='agreementModal' style='display:none;'>
6178<div class='crop-modal-content' style='max-width: 1200px; width: 100%;'>
6179<span class='close-crop-modal' onclick='closeAgreementModal()'>&#215;</span>
6180<div class='cp-box' style='border: 2px solid #4f46e5; border-radius: 20px; padding: 15px; background: #fff; font-family: "SolaimanLipi", Arial, sans-serif !important;'>
6181<h2 id='ag-main-title' style='color:#4f46e5; text-align:center; margin-bottom:15px; font-weight: 800;'>
6182<i class='fa-solid fa-file-signature'></i> Agreement letter writing
6183      </h2>
6184<!-- Language Switch -->
6185<div style='display: flex; justify-content: center; gap: 10px; margin-bottom: 20px; background: #f1f5f9; padding: 5px; border-radius: 50px; width: fit-content; margin: 0 auto 20px;'>
6186<button class='ph-tab active' id='ag-bn-btn' onclick='setAgLang("bn")'>
6187          ব&#2494;&#2434;ল&#2494;
6188        </button>
6189<button class='ph-tab' id='ag-en-btn' onclick='setAgLang("en")'>
6190          English
6191        </button>
6192</div>
6193<div class='ag-grid'>
6194<!-- Left Side: Inputs & Buttons -->
6195<div class='ag-inputs'>
6196<div class='st-input-group'>
6197<label for='ag-template-select' id='lbl-ag-temp' style='font-weight:800; color:#4f46e5;'>চ&#2497;ক&#2509;ত&#2495;পত&#2509;র ন&#2495;র&#2509;ব&#2494;চন কর&#2497;ন</label>
6198<select id='ag-template-select' onchange='applyAgTemplate(this.value)' style='width:100%; padding:10px; border-radius:8px; border:1px solid #cbd5e1; font-family: "SolaimanLipi", sans-serif;'></select>
6199</div>
6200<div class='st-input-group'>
6201<label for='ag-p1' id='lbl-ag-p1'>প&#2509;রথম পক&#2509;ষ&#2503;র ন&#2494;ম</label>
6202<input id='ag-p1' oninput='updateAgPreview()' type='text'/>
6203</div>
6204<div class='st-input-group'>
6205<label for='ag-p2' id='lbl-ag-p2'>দ&#2509;ব&#2495;ত&#2496;য&#2492; পক&#2509;ষ&#2503;র ন&#2494;ম</label>
6206<input id='ag-p2' oninput='updateAgPreview()' type='text'/>
6207</div>
6208<div class='st-input-group'>
6209<label for='ag-witness' id='lbl-ag-witness'>স&#2494;ক&#2509;ষ&#2496;র ন&#2494;ম</label>
6210<input id='ag-witness' oninput='updateAgPreview()' type='text'/>
6211</div>
6212<div class='st-input-group'>
6213<label for='ag-address' id='lbl-ag-addr'>ব&#2495;ষয়&#2503;র ব&#2495;বরণ/ঠ&#2495;ক&#2494;ন&#2494;</label>
6214<textarea id='ag-address' oninput='updateAgPreview()' rows='2'></textarea>
6215</div>
6216<div class='st-input-group'>
6217<label for='ag-val1' id='lbl-ag-val1'>ট&#2494;ক&#2494;র পর&#2495;ম&#2494;ণ/শর&#2509;ত ১</label>
6218<input id='ag-val1' oninput='updateAgPreview()' type='text'/>
6219</div>
6220<div class='st-input-group'>
6221<label for='ag-val2' id='lbl-ag-val2'>ম&#2503;য়&#2494;দ/শর&#2509;ত ২</label>
6222<input id='ag-val2' oninput='updateAgPreview()' type='text'/>
6223</div>
6224<div class='st-input-group' style='background: #f8fafc; border: 1px dashed #4f46e5; padding: 10px; border-radius: 10px;'>
6225<label for='ag-margin-slider' id='lbl-ag-margin'>স&#2509;ট&#2509;য&#2494;ম&#2509;প টপ স&#2509;প&#2503;স (Inch)</label>
6226<input id='ag-margin-slider' max='700' min='100' oninput='updateAgMargin(this.value)' type='range' value='330'/>
6227<b id='ag-margin-val' style='color:#4f46e5;'>3.3 Inch</b>
6228</div>
6229<!-- Buttons -->
6230<div style='margin-top: 20px; display: grid; grid-template-columns: 1fr 1fr; gap: 10px;'>
6231<button class='conv-btn-main' onclick='printAgreement()' style='background: #1e40af !important; margin:0;'>
6232<i class='fa-solid fa-print'></i> Print PDF
6233            </button>
6234<button class='conv-btn-main' onclick='resetAgreement()' style='background: #ef4444 !important; margin:0;'>
6235<i class='fa-solid fa-trash-can'></i> Reset All
6236            </button>
6237</div>
6238<!-- Introduction Box -->
6239<div id='ag-intro-box' style='margin-top: 15px; padding: 12px; background: #fffbeb; border-left: 4px solid #f59e0b; font-size: 13px; line-height: 1.5; color: #92400e; border-radius: 5px;'>
6240<!-- Content dynamic via JS -->
6241</div>
6242</div>
6243<!-- Right Side: Preview -->
6244<div class='ag-preview-scroll'>
6245<p id='lbl-ag-preview-hint' style='color:#fbbf24; font-size: 11px; margin-bottom: 10px; font-weight: 800;'>
6246            STAMP PREVIEW (IMAGE WILL NOT PRINT)
6247          </p>
6248<div class='ag-paper-wrapper' id='ag-wrapper'>
6249<div id='ag-editor-box'>
6250<div id='ag-top-margin' style='height: 330px;'></div>
6251<div id='ag-render-text'>
6252<h1 id='ag-title-ui' style='text-align:center; text-decoration: underline; margin-bottom: 25px; font-size: 24px;'>
6253                  চ&#2497;ক&#2509;ত&#2495;পত&#2509;র
6254                </h1>
6255<div contenteditable='true' id='ag-body-ui' spellcheck='false'></div>
6256<div id='ag-footer-ui' style='margin-top: 70px; display: flex; justify-content: space-between; font-weight: bold;'>
6257<div style='text-align:center;'>
6258<br/>________________<br/><span id='lbl-ag-sig1'>প&#2509;রথম পক&#2509;ষ&#2503;র স&#2509;ব&#2494;ক&#2509;ষর</span>
6259</div>
6260<div style='text-align:center;'>
6261<br/>________________<br/><span id='lbl-ag-sig2'>দ&#2509;ব&#2495;ত&#2496;য় পক&#2509;ষ&#2503;র স&#2509;ব&#2494;ক&#2509;ষর</span>
6262</div>
6263</div>
6264</div>
6265</div>
6266</div>
6267</div>
6268</div>
6269</div>
6270</div>
6271</div>
6272<!-- PDF Merger & Splitter Modal -->
6273<div class='crop-modal-overlay' id='pdfToolModal' style='display:none;'>
6274<div class='crop-modal-content' style='max-width: 800px; width: 95%;'>
6275<span class='close-crop-modal' onclick='closePdfToolModal()'>&#215;</span>
6276<div class='cp-box' style='border: 2px solid #6366f1; border-radius: 20px; padding: 25px; background: #fff; font-family: "Inter", sans-serif;'>
6277<h2 style='color:#6366f1; text-align:center; margin-bottom:15px; font-weight: 800;'>
6278<i class='fa-solid fa-file-pdf'></i> PDF Merger & Splitter Pro
6279      </h2>
6280<!-- Tab Switcher -->
6281<div style='display: flex; justify-content: center; background: #f1f5f9; padding: 5px; border-radius: 50px; width: fit-content; margin: 0 auto 25px;'>
6282<button class='ph-tab active' id='tab-merge-btn' onclick='switchPdfTab("merge")'>Merge PDF</button>
6283<button class='ph-tab' id='tab-split-btn' onclick='switchPdfTab("split")'>Split PDF</button>
6284</div>
6285<!-- MERGE SECTION -->
6286<div id='section-merge' style='display: block;'>
6287<div class='cp-upload-area' id='pdf-merge-drop' onclick='document.getElementById("pdf-merge-in").click()' style='border: 2px dashed #6366f1; background: #f8fafc; padding: 30px; border-radius: 15px; text-align: center; cursor: pointer;'>
6288<i class='fa-solid fa-plus-circle' style='font-size: 40px; color: #6366f1; margin-bottom: 10px;'></i>
6289<p style='font-weight: 700; color: #1e293b;'>Select Multiple PDF Files</p>
6290<input accept='application/pdf' id='pdf-merge-in' multiple='multiple' onchange='handleMergeFiles(event)' style='display:none' type='file'/>
6291</div>
6292<div id='merge-file-list' style='margin-top: 15px; max-height: 200px; overflow-y: auto; border: 1px solid #e2e8f0; border-radius: 10px; display: none;'></div>
6293<button class='conv-btn-main' id='btn-merge-start' onclick='processMergePDF()' style='background: #059669 !important; width: 100%; margin-top: 20px; display: none;'>
6294<i class='fa-solid fa-object-group'></i> Merge & Download
6295        </button>
6296</div>
6297<!-- SPLIT SECTION -->
6298<div id='section-split' style='display: none;'>
6299<div class='cp-upload-area' id='pdf-split-drop' onclick='document.getElementById("pdf-split-in").click()' style='border: 2px dashed #ef4444; background: #fff1f2; padding: 30px; border-radius: 15px; text-align: center; cursor: pointer;'>
6300<i class='fa-solid fa-scissors' style='font-size: 40px; color: #ef4444; margin-bottom: 10px;'></i>
6301<p id='split-file-name' style='font-weight: 700; color: #1e293b;'>Select Single PDF File</p>
6302<input accept='application/pdf' id='pdf-split-in' onchange='handleSplitFile(event)' style='display:none' type='file'/>
6303</div>
6304<div id='split-controls' style='margin-top: 20px; display: none;'>
6305<label for='split-pages-input' style='font-size: 13px; font-weight: 800; color: #4b5563;'>Page Ranges (e.g. 1-3, 5):</label>
6306<input id='split-pages-input' placeholder='Example: 1, 2-5, 8' style='width: 100%; padding: 12px; border: 1.5px solid #cbd5e1; border-radius: 8px; margin-top: 5px;'/>
6307<button class='conv-btn-main' onclick='processSplitPDF()' style='background: #ef4444 !important; width: 100%; margin-top: 15px;'>
6308<i class='fa-solid fa-file-export'></i> Extract & Download
6309            </button>
6310</div>
6311</div>
6312<div id='pdf-tool-status' style='margin-top: 15px; text-align: center; font-weight: 700; color: #6366f1; display: none;'></div>
6313</div>
6314</div>
6315</div>
6316<!-- GD Application Maker Modal -->
6317<div class='crop-modal-overlay' id='gdMakerModal' style='display:none;'>
6318<div class='crop-modal-content' style='max-width: 1250px; width: 98%; height: auto;'>
6319<span class='close-crop-modal' onclick='closeGdModal()'>&#215;</span>
6320<div class='cp-box' style='border: 2px solid #1e40af; border-radius: 20px; padding: 20px; background: #fff;'>
6321<h2 style='color:#1e40af; text-align:center; margin-bottom:15px; font-weight: 800; font-family: "SolaimanLipi", sans-serif !important;'>
6322<i class='fa-solid fa-file-shield' style='font-family: "Font Awesome 6 Free" !important;'></i>
6323<span id='gdm-ui-title'>প&#2497;ল&#2495;শ জ&#2495;ড&#2495; আব&#2503;দন র&#2494;ইট&#2495;&#2434;</span>
6324</h2>
6325<!-- Language Toggle -->
6326<div class='fq-lang-box' style='display: flex; justify-content: center; background: #f1f5f9; padding: 5px; border-radius: 50px; width: fit-content; margin: 0 auto 20px;'>
6327<button class='ph-tab active' id='gdm-btn-bn' onclick='setGdLang("bn")'>ব&#2494;&#2434;ল&#2494;</button>
6328<button class='ph-tab' id='gdm-btn-en' onclick='setGdLang("en")'>English</button>
6329</div>
6330<div class='fq-main-layout' style='display: grid; grid-template-columns: 380px 1fr; gap: 20px;'>
6331<div class='leaflet-inputs' id='gdm-input-panel' style='display: flex; flex-direction: column; gap: 12px; padding-right: 10px;'>
6332<div class='st-input-group'>
6333<!-- ১. ট&#2503;মপ&#2509;ল&#2503;ট ল&#2503;ব&#2503;ল ঠ&#2495;ক কর&#2494; হয়&#2503;ছ&#2503; -->
6334<label for='gdm-template-select' id='lbl-gdm-temp' style='font-weight: 800; color: #1e40af;'>জ&#2495;ড&#2495;র ব&#2495;ষয় ন&#2495;র&#2509;ব&#2494;চন কর&#2497;ন</label>
6335<select id='gdm-template-select' onchange='applyGdTemplate(this.value)' style='width:100%; padding:10px; border-radius:8px; border:1px solid #cbd5e1; font-weight:700;'></select>
6336</div>
6337<div class='st-input-group' style='background: #f8fafc; padding: 15px; border-radius: 12px; border: 1px solid #e2e8f0;'>
6338<!-- ২. স&#2503;কশন ট&#2494;ইট&#2503;ল হ&#2495;স&#2503;ব&#2503; span ব&#2509;যবহ&#2494;র কর&#2494; হয়&#2503;ছ&#2503; (এরর এড়&#2494;ত&#2503;) -->
6339<span id='lbl-gdm-step1' style='font-weight: 800; color: #1e40af; border-bottom:1px solid #ddd; display:block; padding-bottom:5px; margin-bottom:10px;'>১. থ&#2494;ন&#2494; ও ত&#2494;র&#2495;খ</span>
6340<div style='display: grid; grid-template-columns: 1fr 1fr; gap: 8px;'>
6341<input id='gdm-ps-name' oninput='updateGd()' placeholder='থানার নাম' type='text'/>
6342<input id='gdm-date' oninput='updateGd()' placeholder='আবেদনের তারিখ' type='text'/>
6343</div>
6344</div>
6345<div class='st-input-group' style='background: #f8fafc; padding: 15px; border-radius: 12px; border: 1px solid #e2e8f0;'>
6346<!-- ৩. স&#2503;কশন ট&#2494;ইট&#2503;ল -->
6347<span id='lbl-gdm-step2' style='font-weight: 800; color: #1e40af; border-bottom:1px solid #ddd; display:block; padding-bottom:5px; margin-bottom:10px;'>২. আব&#2503;দনক&#2494;র&#2496;র তথ&#2509;য</span>
6348<input id='gdm-name' oninput='updateGd()' placeholder='আপনার পূর্ণ নাম' type='text'/>
6349<div style='display: grid; grid-template-columns: 1fr 1fr; gap: 8px;'>
6350<input id='gdm-father' oninput='updateGd()' placeholder='পিতার নাম' type='text'/>
6351<input id='gdm-phone' oninput='updateGd()' placeholder='মোবাইল নম্বর' type='text'/>
6352</div>
6353<textarea id='gdm-address' oninput='updateGd()' placeholder='পূর্ণ ঠিকানা' rows='2'></textarea>
6354</div>
6355<div class='st-input-group' style='background: #f8fafc; padding: 15px; border-radius: 12px; border: 1px solid #e2e8f0;'>
6356<!-- ৪. স&#2503;কশন ট&#2494;ইট&#2503;ল -->
6357<span id='lbl-gdm-step3' style='font-weight: 800; color: #1e40af; border-bottom:1px solid #ddd; display:block; padding-bottom:5px; margin-bottom:10px;'>৩. হ&#2494;র&#2494;ন&#2507; জ&#2495;ন&#2495;স&#2503;র ব&#2495;বরণ</span>
6358<input id='gdm-lost-place' oninput='updateGd()' placeholder='কোথা থেকে হারিয়েছে?' type='text'/>
6359<input id='gdm-lost-time' oninput='updateGd()' placeholder='কখন হারিয়েছে?' type='text'/>
6360<textarea id='gdm-lost-desc' oninput='updateGd()' placeholder='IMEI, আইডি নম্বর বা অন্যান্য বিবরণ' rows='3'></textarea>
6361</div>
6362</div>
6363<div class='leaflet-preview-area' style='background: #3f3f46; padding: 20px; border-radius: 15px; text-align: center;'>
6364<p id='gdm-preview-hint' style='color:#fbbf24; font-size: 11px; margin-bottom: 10px; font-weight: 800;'>A4 SHEET PREVIEW (PRINT READY)</p>
6365<div id='gdm-a4-page' style='background: #fff; margin: 0 auto; box-shadow: 0 15px 40px rgba(0,0,0,0.5); padding: 10mm; box-sizing: border-box; text-align: left; font-family: "SolaimanLipi", sans-serif !important; color:#000;'>
6366<div id='gdm-render-area'></div>
6367</div>
6368<div style='margin-top: 25px; display: grid; grid-template-columns: 1fr 1fr; gap: 15px; width: 100%; max-width: 500px; margin-left: auto; margin-right: auto;'>
6369<button class='conv-btn-main' id='btn-gdm-print' onclick='printGd()' style='background: #059669 !important;'>
6370<i class='fa-solid fa-print' style='font-family: "Font Awesome 6 Free" !important;'></i>
6371<span>প&#2509;র&#2495;ন&#2509;ট কর&#2497;ন (A4)</span>
6372</button>
6373<button class='conv-btn-main' id='btn-gdm-reset' onclick='resetGd()' style='background: #ef4444 !important;'>
6374<i class='fa-solid fa-trash-can' style='font-family: "Font Awesome 6 Free" !important;'></i>
6375<span>সব ম&#2497;ছ&#2497;ন</span>
6376</button>
6377</div>
6378</div>
6379</div>
6380</div>
6381</div>
6382</div>
6383<!-- Weekly Routine Maker Modal -->
6384<div class='crop-modal-overlay' id='routineMakerModal' style='display:none;'>
6385<div class='crop-modal-content' style='max-width: 1250px; width: 95%; height: auto;'>
6386<span class='close-crop-modal' onclick='closeRoutineModal()'>&#215;</span>
6387<div class='cp-box' style='border: 2px solid #6366f1; border-radius: 20px; padding: 20px; background: #fff; font-family: "SolaimanLipi", sans-serif !important;'>
6388<h2 style='color:#6366f1; text-align:center; margin-bottom:15px; font-weight: 800; font-family: "SolaimanLipi", sans-serif !important;'>
6389<i class='fa-solid fa-calendar-week' style='font-family: "Font Awesome 6 Free" !important;'></i>
6390<span id='rt-main-title'>ক&#2509;ল&#2494;স র&#2497;ট&#2495;ন ম&#2503;ক&#2494;র</span>
6391</h2>
6392<!-- Language Toggle -->
6393<div class='fq-lang-box' style='display: flex; justify-content: center; background: #f1f5f9; padding: 5px; border-radius: 50px; width: fit-content; margin: 0 auto 20px;'>
6394<button class='ph-tab active' id='rt-btn-bn' onclick='setRtLang("bn")'>ব&#2494;&#2434;ল&#2494;</button>
6395<button class='ph-tab' id='rt-btn-en' onclick='setRtLang("en")'>English</button>
6396</div>
6397<div class='fq-main-layout' style='display: grid; grid-template-columns: 1fr 1.3fr; gap: 20px;'>
6398<div class='fq-inputs-side' style='display: flex; flex-direction: column; gap: 15px; max-height: 750px; overflow-y: auto; padding-right: 10px;'>
6399<div class='fq-group-box' style='background: #f8fafc; padding: 15px; border-radius: 12px; border: 1px solid #e2e8f0;'>
6400<p id='lbl-rt-step1' style='margin: 0 0 10px; font-weight: 800; color: #6366f1; border-bottom: 1px solid #ddd; padding-bottom: 5px;'>১. প&#2509;রত&#2495;ষ&#2509;ঠ&#2494;ন&#2503;র তথ&#2509;য</p>
6401<input id='rt-inst-name' oninput='updateRoutine()' placeholder='প্রতিষ্ঠানের নাম' style='font-weight:bold; margin-bottom: 8px;' type='text'/>
6402<input id='rt-sub-title' oninput='updateRoutine()' placeholder='রুটিনের শিরোনাম' style='margin-bottom: 8px;' type='text'/>
6403<div style='display: grid; grid-template-columns: 1fr 1fr; gap: 10px;'>
6404<input id='rt-class-info' oninput='updateRoutine()' placeholder='শ্রেণি' type='text'/>
6405<input id='rt-version-info' oninput='updateRoutine()' placeholder='শাখা/সেকশন' type='text'/>
6406</div>
6407</div>
6408<div class='fq-group-box' style='background: #f8fafc; padding: 15px; border-radius: 12px; border: 1px solid #e2e8f0;'>
6409<p id='lbl-rt-step2' style='margin: 0 0 10px; font-weight: 800; color: #6366f1; border-bottom: 1px solid #ddd; padding-bottom: 5px;'>২. প&#2495;র&#2495;য়ড ও সময়</p>
6410<div id='rt-periods-container' style='display: flex; flex-direction: column; gap: 8px;'></div>
6411<button id='btn-add-period' onclick='addRtPeriod()' style='background:#6366f1; color:white; border:none; padding:10px; border-radius:8px; cursor:pointer; font-weight:700; margin-top:10px; width:100%; font-family: &#39;SolaimanLipi&#39;, sans-serif;'>+ প&#2495;র&#2495;য়ড য&#2507;গ কর&#2497;ন</button>
6412</div>
6413<div class='fq-group-box' style='background: #f8fafc; padding: 15px; border-radius: 12px; border: 1px solid #e2e8f0;'>
6414<p id='lbl-rt-step3' style='margin: 0 0 10px; font-weight: 800; color: #6366f1; border-bottom: 1px solid #ddd; padding-bottom: 5px;'>৩. ব&#2495;ষয় ব&#2495;ন&#2509;য&#2494;স</p>
6415<div id='rt-days-container' style='display: flex; flex-direction: column; gap: 12px;'></div>
6416</div>
6417</div>
6418<div class='fq-preview-side'>
6419<div style='background:#52525b; border-radius: 12px; padding: 15px; border: 4px solid #f1f5f9; position: sticky; top: 10px;'>
6420<div id='rt-render-area'></div>
6421</div>
6422<div class='fq-final-actions' style='margin-top: 20px; display: grid; grid-template-columns: 1fr 1fr; gap: 10px;'>
6423<button class='btn-print' id='btn-rt-print' onclick='printRoutinePaper()' style='background:#059669 !important; color:#fff; padding:14px; border-radius:12px; border:none; cursor:pointer; font-weight:bold; font-family: &#39;SolaimanLipi&#39;, sans-serif;'>
6424<i class='fa-solid fa-print' style='font-family: "Font Awesome 6 Free" !important;'></i> প&#2509;র&#2495;ন&#2509;ট কর&#2497;ন
6425            </button>
6426<button class='btn-reset' id='btn-rt-reset' onclick='resetRoutineTool()' style='background:#ef4444 !important; color:#fff; padding:14px; border-radius:12px; border:none; cursor:pointer; font-weight:bold; font-family: &#39;SolaimanLipi&#39;, sans-serif;'>
6427<i class='fa-solid fa-trash-can' style='font-family: "Font Awesome 6 Free" !important;'></i> সব ম&#2497;ছ&#2497;ন
6428            </button>
6429</div>
6430</div>
6431</div>
6432</div>
6433</div>
6434</div>
6435<!-- Property Distribution Calculator Modal -->
6436<div class='crop-modal-overlay' id='propertyCalcModal' style='display:none;'>
6437<div class='crop-modal-content' style='max-width: 1250px; width: 98%; height: auto; max-height: none;'>
6438<span class='close-crop-modal' onclick='closePropModal()'>&#215;</span>
6439<div class='cp-box' style='border: 2px solid #059669; border-radius: 20px; padding: 20px; background: #fff; font-family: "SolaimanLipi", sans-serif !important;'>
6440<h2 style='color:#059669; text-align:center; margin-bottom:15px; font-weight: 800;'>
6441<i class='fa-solid fa-scale-balanced'></i>
6442<span id='prop-ui-title'>সম&#2509;পত&#2509;ত&#2495; বন&#2509;টন ক&#2509;য&#2494;লক&#2497;ল&#2503;টর (ফ&#2494;র&#2494;য&#2492;&#2503;জ)</span>
6443</h2>
6444<!-- Language Toggle -->
6445<div class='fq-lang-box' style='display: flex; justify-content: center; background: #f1f5f9; padding: 5px; border-radius: 50px; width: fit-content; margin: 0 auto 20px;'>
6446<button class='ph-tab active' id='prop-bn-btn' onclick='setPropLang("bn")'>ব&#2494;&#2434;ল&#2494;</button>
6447<button class='ph-tab' id='prop-en-btn' onclick='setPropLang("en")'>English</button>
6448</div>
6449<div class='bio-grid' style='display: grid; grid-template-columns: 1fr 1.5fr; gap: 20px;'>
6450<!-- ব&#2494;ম প&#2494;শ: তথ&#2509;য ইনপ&#2497;ট -->
6451<div class='bio-inputs-side' id='prop-input-area' style='display: flex; flex-direction: column; gap: 15px;'>
6452<div style='background: #f8fafc; padding: 15px; border-radius: 12px; border: 1px solid #e2e8f0;'>
6453<p id='lbl-prop-step1' style='margin: 0 0 10px; font-weight: 800; color: #059669; border-bottom: 1px solid #ddd; padding-bottom: 5px;'>১. সম&#2509;পত&#2509;ত&#2495;র ব&#2495;বরণ</p>
6454<div style='display: grid; grid-template-columns: 1fr 1fr; gap: 10px;'>
6455<div>
6456<!-- Land Label Fixed -->
6457<label for='prop-land' id='lbl-prop-land' style='font-size:12px; font-weight:bold;'>ম&#2507;ট জম&#2495; (শত&#2494;&#2434;শ)</label>
6458<input id='prop-land' oninput='calculateFarayez()' placeholder='০.০০' type='number'/>
6459</div>
6460<div>
6461<!-- Cash Label Fixed -->
6462<label for='prop-cash' id='lbl-prop-cash' style='font-size:12px; font-weight:bold;'>ম&#2507;ট ট&#2494;ক&#2494; (নগদ)</label>
6463<input id='prop-cash' oninput='calculateFarayez()' placeholder='০.০০' type='number'/>
6464</div>
6465</div>
6466</div>
6467<div style='background: #f8fafc; padding: 15px; border-radius: 12px; border: 1px solid #e2e8f0; margin-top: 15px;'>
6468<p id='lbl-prop-step2' style='margin: 0 0 10px; font-weight: 800; color: #059669; border-bottom: 1px solid #ddd; padding-bottom: 5px;'>২. জ&#2496;ব&#2495;ত উত&#2509;তর&#2494;ধ&#2495;ক&#2494;র&#2496;গণ</p>
6469<div id='heir-inputs-grid' style='display: grid; grid-template-columns: 1fr 1fr; gap: 10px;'>
6470<!-- Wife Section -->
6471<div class='prop-input-card'>
6472<label for='h-wife' style='cursor:pointer; font-weight:700; font-size:14px; display:flex; align-items:center; gap:8px;'>
6473<input id='h-wife' onchange='calculateFarayez()' type='checkbox'/>
6474<span id='t-wife'>স&#2509;ত&#2509;র&#2496;</span>
6475</label>
6476<input aria-label='Wife Quantity' id='q-wife' max='4' min='1' oninput='calculateFarayez()' type='number' value='1'/>
6477</div>
6478<!-- Husband Section -->
6479<div class='prop-input-card'>
6480<label for='h-husband' style='cursor:pointer; font-weight:700; font-size:14px; display:flex; align-items:center; gap:8px;'>
6481<input id='h-husband' onchange='calculateFarayez()' type='checkbox'/>
6482<span id='t-husband'>স&#2509;ব&#2494;ম&#2496;</span>
6483</label>
6484</div>
6485<!-- Son Section -->
6486<div class='prop-input-card'>
6487<label for='h-son' style='cursor:pointer; font-weight:700; font-size:14px; display:flex; align-items:center; gap:8px;'>
6488<input id='h-son' onchange='calculateFarayez()' type='checkbox'/>
6489<span id='t-son'>প&#2497;ত&#2509;র</span>
6490</label>
6491<input aria-label='Son Quantity' id='q-son' min='1' oninput='calculateFarayez()' type='number' value='1'/>
6492</div>
6493<!-- Daughter Section -->
6494<div class='prop-input-card'>
6495<label for='h-daughter' style='cursor:pointer; font-weight:700; font-size:14px; display:flex; align-items:center; gap:8px;'>
6496<input id='h-daughter' onchange='calculateFarayez()' type='checkbox'/>
6497<span id='t-daughter'>কন&#2509;য&#2494;</span>
6498</label>
6499<input aria-label='Daughter Quantity' id='q-daughter' min='1' oninput='calculateFarayez()' type='number' value='1'/>
6500</div>
6501<!-- Father Section -->
6502<div class='prop-input-card'>
6503<label for='h-father' style='cursor:pointer; font-weight:700; font-size:14px; display:flex; align-items:center; gap:8px;'>
6504<input id='h-father' onchange='calculateFarayez()' type='checkbox'/>
6505<span id='t-father'>প&#2495;ত&#2494;</span>
6506</label>
6507</div>
6508<!-- Mother Section -->
6509<div class='prop-input-card'>
6510<label for='h-mother' style='cursor:pointer; font-weight:700; font-size:14px; display:flex; align-items:center; gap:8px;'>
6511<input id='h-mother' onchange='calculateFarayez()' type='checkbox'/>
6512<span id='t-mother'>ম&#2494;ত&#2494;</span>
6513</label>
6514</div>
6515</div>
6516</div>
6517<div id='prop-info-note' style='padding: 12px; background: #fffbeb; border: 1px dashed #f59e0b; border-radius: 10px; font-size: 13px; color: #92400e; text-align: justify;'>
6518             ন&#2495;র&#2509;দ&#2503;শন&#2494;: ম&#2499;ত ব&#2509;যক&#2509;ত&#2495;র স&#2509;ত&#2509;র&#2496;, স&#2509;ব&#2494;ম&#2496;, সন&#2509;ত&#2494;ন ব&#2494; প&#2495;ত&#2494;-ম&#2494;ত&#2494; য&#2494;র&#2494; ব&#2503;&#2433;চ&#2503; আছ&#2503;ন ত&#2494;দ&#2503;র প&#2494;শ&#2503; ট&#2495;ক দ&#2495;ন এব&#2434; স&#2434;খ&#2509;য&#2494; ল&#2495;খ&#2497;ন&#2404;
6519          </div>
6520</div>
6521<div class='bio-preview-side'>
6522<div id='prop-preview-box' style='background:#52525b; border-radius: 12px; padding: 20px; border: 4px solid #f1f5f9; min-height: 600px;'>
6523<div id='prop-print-area' style='background: white; width: 100%; min-height: 197mm; padding: 40px; box-sizing: border-box; color: #000; box-shadow: 0 5px 15px rgba(0,0,0,0.2);'>
6524</div>
6525</div>
6526<div class='actions' style='display:grid; grid-template-columns: 1fr 1fr; gap:10px; margin-top:20px;'>
6527<button class='conv-btn-main' id='btn-prop-print' onclick='printPropPaper()' style='background:#059669 !important;'>
6528<i class='fa-solid fa-print'></i> প&#2509;র&#2495;ন&#2509;ট র&#2495;প&#2507;র&#2509;ট
6529            </button>
6530<button class='conv-btn-main' id='btn-prop-reset' onclick='resetPropTool()' style='background:#ef4444 !important;'>
6531<i class='fa-solid fa-trash-can'></i> সব ম&#2497;ছ&#2497;ন
6532            </button>
6533</div>
6534</div>
6535</div>
6536</div>
6537</div>
6538</div>
6539<!-- Photoshop Shortcuts Modal -->
6540<div class='crop-modal-overlay' id='psShortcutsModal' style='display:none;'>
6541<div class='crop-modal-content' style='max-width: 1000px; width: 95%; height: auto;'>
6542<span class='close-crop-modal' onclick='closePsModal()'>&#215;</span>
6543<div class='cp-box' style='border: 2px solid #312e81; border-radius: 20px; padding: 20px; background: #fff; font-family: "SolaimanLipi", sans-serif !important;'>
6544<h2 style='color:#312e81; text-align:center; margin-bottom:15px; font-weight: 800;'>
6545<i class='fa-solid fa-keyboard'></i>
6546<span id='ps-ui-title'>ফট&#2507;শপ ম&#2494;স&#2509;ট&#2494;র শর&#2509;টক&#2494;ট</span>
6547</h2>
6548<!-- Language Toggle -->
6549<div style='display: flex; justify-content: center; background: #f1f5f9; padding: 5px; border-radius: 50px; width: fit-content; margin: 0 auto 20px;'>
6550<button class='ph-tab active' id='ps-btn-bn' onclick='setPsLang("bn")'>ব&#2494;&#2434;ল&#2494;</button>
6551<button class='ph-tab' id='ps-btn-en' onclick='setPsLang("en")'>English</button>
6552</div>
6553<!-- Search Bar -->
6554<div style='background: #f8fafc; padding: 15px; border-radius: 15px; border: 1px solid #e2e8f0; margin-bottom: 20px;'>
6555<div style='display: flex; gap: 10px;'>
6556<input id='ps-search-input' onkeyup='filterPsShortcuts()' placeholder='টুল বা কমান্ড লিখে সার্চ করুন...' style='flex: 1; padding: 12px; border: 2px solid #cbd5e1; border-radius: 10px; outline: none; font-size: 15px; font-family: "SolaimanLipi", sans-serif;' type='text'/>
6557</div>
6558</div>
6559<!-- Category Filter Tabs -->
6560<div id='ps-cat-tabs' style='display: flex; gap: 8px; flex-wrap: wrap; justify-content: center; margin-bottom: 20px;'>
6561<button class='ps-cat-btn active' onclick='filterPsByCategory(&#39;all&#39;)'>All</button>
6562<button class='ps-cat-btn' onclick='filterPsByCategory(&#39;tool&#39;)'>Tools</button>
6563<button class='ps-cat-btn' onclick='filterPsByCategory(&#39;file&#39;)'>File</button>
6564<button class='ps-cat-btn' onclick='filterPsByCategory(&#39;layer&#39;)'>Layers</button>
6565<button class='ps-cat-btn' onclick='filterPsByCategory(&#39;adjust&#39;)'>Adjustments</button>
6566</div>
6567<!-- Shortcuts Grid -->
6568<div class='ps-master-grid' id='ps-master-grid'>
6569</div>
6570</div>
6571</div>
6572</div>
6573<!-- Salary Sheet Maker Modal -->
6574<div class='crop-modal-overlay' id='salaryMakerModal' style='display:none;'>
6575<div class='crop-modal-content' style='max-width: 1250px; display: flex; flex-direction: column;'>
6576<span class='close-crop-modal' onclick='closeSalModal()'>&#215;</span>
6577<div class='cp-box' style='flex: 1; display: flex; flex-direction: column; overflow: hidden; border: 2px solid #6366f1; border-radius: 20px; padding: 15px; background: #fff;'>
6578<h2 style='color:#6366f1; text-align:center; margin-bottom:10px; font-weight: 800;'>
6579<i class='fa-solid fa-file-invoice-dollar' id='sal-icon-main'></i>
6580<span id='sal-ui-title'>স&#2509;য&#2494;ল&#2494;র&#2495; শ&#2496;ট ম&#2503;ক&#2494;র</span>
6581</h2>
6582<!-- Language Toggle -->
6583<div class='fq-lang-box' style='display: flex; justify-content: center; background: #f1f5f9; padding: 5px; border-radius: 50px; width: fit-content; margin: 0 auto 15px;'>
6584<button class='ph-tab active' id='sal-btn-bn' onclick='setSalLang("bn")'>ব&#2494;&#2434;ল&#2494;</button>
6585<button class='ph-tab' id='sal-btn-en' onclick='setSalLang("en")'>English</button>
6586</div>
6587<div class='sal-main-wrapper' style='display: grid; grid-template-columns: 380px 1fr; gap: 20px; overflow: hidden; height: 100%;'>
6588<div class='sal-inputs-side' id='sal-edit-panel' style='overflow-y: auto; padding-right: 10px; display: flex; flex-direction: column; gap: 12px;'>
6589<div class='fq-group-box' style='background: #f8fafc; padding: 15px; border-radius: 12px; border: 1px solid #e2e8f0;'>
6590<p id='lbl-sal-step1' style='margin: 0 0 10px; font-weight: 800; color: #6366f1; border-bottom: 1px solid #ddd; padding-bottom: 5px;'>১. প&#2509;রত&#2495;ষ&#2509;ঠ&#2494;ন&#2503;র তথ&#2509;য</p>
6591<div style='display: flex; gap: 10px; align-items: center; margin-bottom: 10px;'>
6592<div class='fq-logo-upload' onclick='document.getElementById("sal-logo-in").click()' style='border:2px dashed #6366f1; width:60px; height:60px; display:flex; align-items:center; justify-content:center; cursor:pointer; border-radius:8px; background:#fff;'>
6593<img id='sal-logo-pv' style='display:none; max-width:100%; max-height:100%;'/>
6594<i class='fa-solid fa-camera' id='sal-plus-ico' style='color:#6366f1;'></i>
6595<input accept='image/*' id='sal-logo-in' onchange='loadSalLogo(event)' style='display:none;
6595' type='file'/>
6596</div>
6597<input id='sal-inst-name' oninput='drawSal()' placeholder='প্রতিষ্ঠানের নাম' style='font-weight:bold;' type='text'/>
6598</div>
6599<input id='sal-sub-title' oninput='drawSal()' placeholder='মাস ও বছর (উদা: জানুয়ারি - ২০২৬)' type='text'/>
6600</div>
6601<div class='fq-group-box' style='background: #f8fafc; padding: 15px; border-radius: 12px; border: 1px solid #e2e8f0;'>
6602<p id='lbl-sal-step2' style='margin: 0 0 10px; font-weight: 800; color: #6366f1; border-bottom: 1px solid #ddd; padding-bottom: 5px;'>২. স&#2503;ট&#2495;&#2434;স</p>
6603<div style='display: grid; grid-template-columns: 1fr 1fr; gap: 8px;'>
6604<button id='btn-add-sal' onclick='addSalRow()' style='background:#6366f1; color:white; border:none; padding:10px; border-radius:8px; cursor:pointer; font-weight:bold; font-size: 13px;'>+ কর&#2509;মচ&#2494;র&#2496; য&#2507;গ</button>
6605<select id='sal-orient' onchange='setSalOrient(this.value)' style='padding:8px; border-radius:8px; border:1px solid #cbd5e1;'>
6606<option value='p'>লম&#2509;ব&#2494;লম&#2509;ব&#2495; (P)</option>
6607<option value='l'>আড়&#2494;আড়&#2495; (L)</option>
6608</select>
6609</div>
6610</div>
6611<div class='actions' style='display:grid; grid-template-columns: 1fr 1fr; gap:10px;'>
6612<button class='conv-btn-main' id='btn-sal-print-ui' onclick='printSalPaper()' style='background:#059669 !important; margin:0;'>
6613<i class='fa-solid fa-print'></i> প&#2509;র&#2495;ন&#2509;ট
6614            </button>
6615<button class='conv-btn-main' id='btn-sal-reset-ui' onclick='resetSalTool()' style='background:#ef4444 !important; margin:0;'>
6616<i class='fa-solid fa-trash-can'></i> র&#2495;স&#2503;ট
6617            </button>
6618</div>
6619</div>
6620<div class='sal-preview-area' style='background: #52525b; border-radius: 15px; padding: 15px; overflow: auto; display: flex; justify-content: center; align-items: start;'>
6621<div id='sal-render-area' style='background: white; transform-origin: top center; box-shadow: 0 10px 30px rgba(0,0,0,0.5);'>
6622</div>
6623</div>
6624</div>
6625</div>
6626</div>
6627</div>
6628<div class='crop-modal-overlay' id='visaModal' style='display:none;'>
6629<div class='crop-modal-content' style='max-width: 1000px; width: 95%; position: relative;'>
6630<span class='close-crop-modal' onclick='closeVisaModal()'>&#215;</span>
6631<div class='cp-box' style='border: 2px solid #0284c7; border-radius: 20px; padding: 20px; background: #fff; font-family: "Inter", "SolaimanLipi", sans-serif; position: relative;'>
6632<!-- NEW: Custom Copies UI Overlay -->
6633<div class='visa-copies-overlay' id='visaCopiesModal' style='display:none;'>
6634<div class='visa-copies-box'>
6635<h3><i class='fa-solid fa-copy'></i> Print Quantity</h3>
6636<p>How many photos will you print?</p>
6637<div class='copies-input-wrap'>
6638<button onclick='changeVisaCopies(-1)'>-</button>
6639<input id='visa-copy-count' max='50' min='1' type='number' value='4'/>
6640<button onclick='changeVisaCopies(1)'>+</button>
6641</div>
6642<div class='copies-action'>
6643<button class='btn-v-cancel' onclick='closeVisaCopiesModal()'>Cancel</button>
6644<button class='btn-v-confirm' onclick='executeVisaPDF()'>
6645<i class='fa-solid fa-check'></i> Confirm
6646             </button>
6647</div>
6648</div>
6649</div>
6650<!-- End of Custom Copies UI -->
6651<h2 style='color:#0284c7; text-align:center; margin-bottom:15px; font-weight: 800;'>
6652<i class='fa-solid fa-plane-departure'></i> All Visa Photo Cropper
6653      </h2>
6654<div class='visa-grid'>
6655<!-- Left: Controls -->
6656<div class='visa-controls'>
6657<div class='st-input-group'>
6658<label for='visaSearchInput' style='font-weight: 800; color: #0284c7; display: block; margin-bottom: 5px;'>Search Country / Visa Type</label>
6659<div class='custom-search-dropdown' id='visaDropdown'>
6660<div class='dropdown-selected' onclick='toggleVisaDropdown()'>
6661<span id='selected-country-text'>United States (US) (2 x 2 inch)</span>
6662<i class='fa-solid fa-chevron-down'></i>
6663</div>
6664<div class='dropdown-menu' id='dropdownMenu'>
6665<div class='dropdown-search'>
6666<input id='visaSearchInput' onkeyup='filterVisaCountries()' placeholder='Type country name...' type='text'/>
6667</div>
6668<ul class='dropdown-list' id='visaCountryList'></ul>
6669</div>
6670</div>
6671</div>
6672<div class='cp-upload-area' id='visa-upload-btn' onclick='document.getElementById("visa-input").click()' style='background: #fff; border: 2px dashed #0284c7; padding: 20px; border-radius: 12px; cursor: pointer; text-align: center;'>
6673<i class='fa-solid fa-cloud-arrow-up' style='font-size: 30px; color: #0284c7; margin-bottom: 10px;'></i>
6674<p style='margin: 0; font-weight: 700; color: #1e293b;'>Click to Upload Photo</p>
6675<input accept='image/*' id='visa-input' onchange='loadVisaImage(event)' style='display:none' type='file'/>
6676</div>
6677<div style='background: #f0f9ff; padding: 12px; border-radius: 10px; border: 1px solid #bae6fd;'>
6678<p style='margin:0; font-size: 12px; color: #0369a1; font-weight: 700;'>
6679<i class='fa-solid fa-circle-info'></i>
6680<b>Print Size:</b>
6681<span id='visa-specs-text'>2 x 2 inch</span>
6682</p>
6683</div>
6684<div class='visa-btn-group' id='visa-precrop-actions' style='display: none;'>
6685<button class='visa-btn' onclick='performVisaCrop()' style='background: #f59e0b;'>
6686<i class='fa-solid fa-crop-simple'></i> Crop Photo
6687            </button>
6688<button class='visa-btn' onclick='deleteVisaImage()' style='background: #ef4444;'>
6689<i class='fa-solid fa-trash-can'></i> Delete
6690            </button>
6691</div>
6692<div class='visa-btn-group' style='margin-top: auto;'>
6693<button class='visa-btn' disabled='disabled' id='btn-visa-jpg' onclick='downloadVisaSingle()' style='background: #0ea5e9;'>
6694<i class='fa-solid fa-image'></i> Save JPG
6695            </button>
6696<button class='visa-btn' disabled='disabled' id='btn-visa-pdf' onclick='openVisaCopiesModal()' style='background: #059669;'>
6697<i class='fa-solid fa-print'></i> A4 PDF
6698            </button>
6699</div>
6700<button class='visa-btn' id='btn-visa-reset' onclick='deleteVisaImage()' style='background: #64748b; margin-top: 10px; width: 100%; display: none;'>
6701<i class='fa-solid fa-rotate-right'></i> Start Over
6702          </button>
6703</div>
6704<!-- Right: Cropper / Preview -->
6705<div class='visa-cropper-area' id='visa-cropper-container'>
6706<div id='visa-placeholder' style='color: #64748b; font-weight: 700; text-align: center;'>
6707<i class='fa-solid fa-camera-retro' style='font-size: 40px; margin-bottom: 10px; opacity: 0.5;'></i><br/>
6708              Upload a photo to start
6709           </div>
6710<img id='visa-image' src='' style='display: none;'/>
6711<img id='visa-result-preview' src=''/>
6712</div>
6713</div>
6714</div>
6715</div>
6716</div>
6717<!-- Family Card Maker Modal START -->
6718<div class='crop-modal-overlay' id='familyCardModal' style='display:none;'>
6719<div class='crop-modal-content fc-modal-content'>
6720<span class='close-crop-modal' onclick='closeFamilyCardModal()'>&#215;</span>
6721<div class='fc-main-box'>
6722<h2 style='color:#7c3aed; text-align:center; margin:0 0 20px 0; font-weight: 800; font-size: 26px;'>
6723<i class='fa-solid fa-users-rectangle'></i> ফ&#2509;য&#2494;ম&#2495;ল&#2495; ক&#2494;র&#2509;ড আব&#2503;দন ফরম ২০২৬
6724      </h2>
6725<div style='text-align: center; margin-bottom: 25px;'>
6726<img alt='ফ্যামিলি কার্ডের আবেদন ফরম পূরণ। family card online apply 2026' src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhm24RkaCkHwEwYMVsU5GjtjV3_ITKUAzaz0n_16AkrdajxAYdbg_KYv7GnyTyYZgPnkjkI6hSnFq2l1n8c131Is_kL16RRCb9JrK3AQZYDiNaGi8UKYm5Hux92T6kSHUHhdj1PezCLBmA9ci6eOE62Qk0_fY0hWCf80Yp_8gOZQZPZP-vH94CiKEeYMPA/s1600/family-card-online-apply.webp' style='max-width:100%; height:auto; border-radius: 10px; box-shadow: 0 4px 10px rgba(0,0,0,0.1);'/>
6727</div>
6728<div class='fc-grid-layout'>
6729<!-- Left Side: Data Entry -->
6730<div class='fc-input-side'>
6731<div class='fc-input-card'>
6732<p class='fc-section-title'>১. স&#2494;ধ&#2494;রণ তথ&#2509;য&#2494;দ&#2495;</p>
6733<div class='fc-field-grid'>
6734<div>
6735<label class='fc-label' for='fc-authority'>প&#2509;র&#2494;পক ন&#2495;র&#2509;ব&#2494;চন কর&#2497;ন</label>
6736<select class='fc-select' id='fc-authority' onchange='updateFamilyCard()'>
6737<option value='এলাকার গণ্যমান্য ব্যক্তি'>এল&#2494;ক&#2494;র গণ&#2509;যম&#2494;ন&#2509;য ব&#2509;যক&#2509;ত&#2495;</option>
6738<option selected='selected' value='ওয়ার্ড মেম্বার'>ওয&#2492;&#2494;র&#2509;ড ম&#2503;ম&#2509;ব&#2494;র</option>
6739<option value='চেয়ারম্যান'>চ&#2503;য়&#2494;রম&#2509;য&#2494;ন</option>
6740<option value='কাউন্সিলর'>ক&#2494;উন&#2509;স&#2495;লর</option>
6741<option value='মেয়র'>ম&#2503;য়র</option>
6742</select>
6743</div>
6744<div>
6745<label class='fc-label' for='fc-union'>ইউন&#2495;য&#2492;ন/প&#2508;রসভ&#2494;র ন&#2494;ম</label>
6746<input class='fc-input' id='fc-union' oninput='updateFamilyCard()' placeholder='যেমন: ১নং ইউনিয়ন পরিষদ' type='text'/>
6747</div>
6748</div>
6749<div style='margin-bottom: 12px;'>
6750<label class='fc-label' for='fc-name'>আব&#2503;দনক&#2494;র&#2496;র প&#2498;র&#2509;ণ ন&#2494;ম</label>
6751<input class='fc-input' id='fc-name' oninput='updateFamilyCard()' placeholder='আবেদনকারীর নাম' style='font-weight: bold; color: #0ea5e9;' type='text'/>
6752</div>
6753<div class='fc-field-grid'>
6754<div>
6755<label class='fc-label' for='fc-father'>প&#2495;ত&#2494;/স&#2509;ব&#2494;ম&#2496;র ন&#2494;ম</label>
6756<input class='fc-input' id='fc-father' oninput='updateFamilyCard()' placeholder='পিতা/স্বামীর নাম' type='text'/>
6757</div>
6758<div>
6759<label class='fc-label' for='fc-mother'>ম&#2494;ত&#2494;র ন&#2494;ম</label>
6760<input class='fc-input' id='fc-mother' oninput='updateFamilyCard()' placeholder='মাতার নাম' type='text'/>
6761</div>
6762</div>
6763<div class='fc-field-grid'>
6764<div>
6765<label class='fc-label' for='fc-nid'>জ&#2494;ত&#2496;য&#2492; পর&#2495;চয&#2492;পত&#2509;র (NID) নম&#2509;বর</label>
6766<input class='fc-input' id='fc-nid' oninput='updateFamilyCard()' placeholder='NID Number' type='text'/>
6767</div>
6768<div>
6769<label class='fc-label' for='fc-mobile'>ম&#2507;ব&#2494;ইল নম&#2509;বর</label>
6770<input class='fc-input' id='fc-mobile' oninput='updateFamilyCard()' placeholder='017...' type='text'/>
6771</div>
6772</div>
6773</div>
6774<div class='fc-input-card'>
6775<p class='fc-section-title'>২. প&#2498;র&#2509;ণ ঠ&#2495;ক&#2494;ন&#2494;</p>
6776<div class='fc-field-grid'>
6777<div>
6778<label class='fc-label' for='fc-vill'>গ&#2509;র&#2494;ম / মহল&#2509;ল&#2494;</label>
6779<input class='fc-input' id='fc-vill' oninput='updateFamilyCard()' placeholder='গ্রামের নাম' type='text'/>
6780</div>
6781<div>
6782<label class='fc-label' for='fc-po'>ড&#2494;কঘর</label>
6783<input class='fc-input' id='fc-po' oninput='updateFamilyCard()' placeholder='ডাকঘরের নাম' type='text'/>
6784</div>
6785</div>
6786<div class='fc-field-grid'>
6787<div>
6788<label class='fc-label' for='fc-word'>ওয&#2492;&#2494;র&#2509;ড ন&#2434;</label>
6789<input class='fc-input' id='fc-word' oninput='updateFamilyCard()' placeholder='যেমন: ০৫' type='number'/>
6790</div>
6791<div>
6792<label class='fc-label' for='fc-upz'>উপজ&#2503;ল&#2494;</label>
6793<input class='fc-input' id='fc-upz' oninput='updateFamilyCard()' placeholder='উপজেলার নাম' type='text'/>
6794</div>
6795</div>
6796<div style='margin-bottom: 12px;'>
6797<label class='fc-label' for='fc-dist'>জ&#2503;ল&#2494;</label>
6798<input class='fc-input' id='fc-dist' oninput='updateFamilyCard()' placeholder='জেলার নাম' type='text'/>
6799</div>
6800</div>
6801<!-- Family Members Details -->
6802<div class='fc-input-card'>
6803<p class='fc-section-title'>৩. পর&#2495;ব&#2494;র&#2503;র ব&#2495;বরণ (সন&#2509;ত&#2494;ন)</p>
6804<div class='fc-field-grid'>
6805<div>
6806<label class='fc-label' for='fc-son'>ছ&#2503;ল&#2503; সন&#2509;ত&#2494;ন (কতজন)</label>
6807<input class='fc-input' id='fc-son' oninput='updateFamilyCard()' placeholder='উদা: ২' type='number'/>
6808</div>
6809<div>
6810<label class='fc-label' for='fc-daughter'>ম&#2503;য&#2492;&#2503; সন&#2509;ত&#2494;ন (কতজন)</label>
6811<input class='fc-input' id='fc-daughter' oninput='updateFamilyCard()' placeholder='উদা: ১' type='number'/>
6812</div>
6813</div>
6814</div>
6815</div>
6816<!-- Right Side: A4 Preview Wrapper -->
6817<div class='fc-right-column'>
6818<div class='fc-preview-side'>
6819<div class='fc-a4-paper' id='fc-pdf-container'></div>
6820</div>
6821<div class='fc-btn-grid' style='display: grid; grid-template-columns: 1fr 1fr; gap: 15px; width: 100%;'>
6822<button class='fc-btn-action' id='btn-fc-download' onclick='downloadFamilyCardPDF()' style='background:#059669;'>
6823<i class='fa-solid fa-cloud-arrow-down'></i> PDF ড&#2494;উনল&#2507;ড কর&#2497;ন
6824            </button>
6825<button class='fc-btn-action' onclick='resetFamilyCard()' style='background:#ef4444;'>
6826<i class='fa-solid fa-trash-can'></i> সব ম&#2497;ছ&#2503; ফ&#2503;ল&#2497;ন
6827            </button>
6828</div>
6829</div>
6830</div>
6831<!--Introduction Box-->
6832<div class='fc-input-card' style='background: rgb(224, 242, 254); border-color: rgb(14, 165, 233); margin-top: 12px; padding: 20px;'>
6833<p class='fc-section-title' style='border-bottom-color: rgb(167, 217, 247); color: #0ea5e9;'>
6834    গ&#2497;র&#2497;ত&#2509;বপ&#2498;র&#2509;ণ তথ&#2509;য&#2494;দ&#2495; ও ন&#2495;র&#2509;দ&#2503;শন&#2494;:
6835  </p>
6836<h4 style='color: #475569; font-size: 15px; margin-bottom: 10px; margin-top: 20px;'>
6837    ন&#2495;ম&#2509;নল&#2495;খ&#2495;ত ক&#2494;গজপত&#2509;র স&#2434;য&#2497;ক&#2509;ত করত&#2503; হব&#2503;:
6838  </h4>
6839<ul style='color: #1e293b; font-size: 14px; line-height: 1.6; list-style-type: disc; margin-left: 20px;'>
6840<li>
6841      আব&#2503;দন ফরম&#2503;র স&#2494;থ&#2503; একট&#2495; রঙ&#2495;ন প&#2494;সপ&#2507;র&#2509;ট স&#2494;ইজ&#2503;র ছব&#2495; স&#2509;ট&#2503;পল&#2494;র ম&#2503;র&#2503; স&#2434;য&#2497;ক&#2509;ত করত&#2503;
6842      হব&#2503;&#2404;
6843    </li>
6844<li>আব&#2503;দন ফরম&#2503;র স&#2494;থ&#2503; জ&#2494;ত&#2496;য় পর&#2495;চয়পত&#2509;র (NID) এর ফট&#2507;কপ&#2495; জম&#2494; দ&#2495;ত&#2503; হব&#2503;&#2404;</li>
6845<li>
6846      পর&#2495;ব&#2494;র&#2503;র অন&#2509;য সদস&#2509;যদ&#2503;র (যদ&#2495; থ&#2494;ক&#2503;) জ&#2494;ত&#2496;য় পর&#2495;চয়পত&#2509;র (NID)-এর ফট&#2507;কপ&#2495; দ&#2495;ত&#2503;
6847      হব&#2503;&#2404;
6848    </li>
6849<li>একট&#2495; সচল ম&#2507;ব&#2494;ইল ন&#2494;ম&#2509;ব&#2494;র অবশ&#2509;যই উল&#2509;ল&#2503;খ কর&#2503; দ&#2495;ত&#2503; হব&#2503;&#2404;</li>
6850</ul>
6851<br/>
6852<p style='font-size: 14px; line-height: 1.6;'>
6853<span style='color: #ef4444; font-weight: bold;'>সম&#2509;প&#2498;র&#2509;ণ তথ&#2509;য সঠ&#2495;ক ও ন&#2495;র&#2509;ভ&#2497;লভ&#2494;ব&#2503; প&#2498;রণ কর&#2497;ন&#2404; ভ&#2497;ল তথ&#2509;য প&#2509;রদ&#2494;ন&#2503;র জন&#2509;য আব&#2503;দন
6854      ব&#2494;ত&#2495;ল হত&#2503; প&#2494;র&#2503;&#2404;</span><br/>
6855<span style='color: #f97316; font-weight: bold;'>এই ফর&#2509;মট&#2495; আপন&#2494;র এল&#2494;ক&#2494;র গণ&#2509;যম&#2494;ন&#2509;য ব&#2509;যক&#2509;ত&#2495;, ম&#2503;ম&#2509;ব&#2494;র, চ&#2503;য&#2492;&#2494;রম&#2509;য&#2494;ন, ক&#2494;উন&#2509;স&#2495;লর
6856      অথব&#2494; ম&#2503;য়র&#2503;র ক&#2494;ছ&#2503; জম&#2494; দ&#2495;ন&#2404; ক&#2494;রন, ফ&#2509;য&#2494;ম&#2495;ল&#2495; ক&#2494;র&#2509;ড&#2503;র জন&#2509;য অনল&#2494;ইন&#2503; আব&#2503;দন কর&#2494;র
6857      ক&#2507;ন&#2507; স&#2495;স&#2509;ট&#2503;ম ন&#2503;ই&#2404;</span><br/>
6858<span style='color: #059669; font-weight: bold;'>সরক&#2494;র&#2495; এই স&#2497;ব&#2495;ধ&#2494; প&#2503;ত&#2503; ক&#2507;ন&#2507; দ&#2494;ল&#2494;ল&#2503;র স&#2494;হ&#2494;য&#2509;য ন&#2503;ওয়&#2494;র প&#2509;রয়&#2507;জন ন&#2503;ই ব&#2494; ক&#2494;উক&#2503;
6859      ট&#2494;ক&#2494; দ&#2503;ওয়&#2494;র প&#2509;রয়&#2507;জন ন&#2503;ই; ক&#2494;রন, এই ফ&#2509;য&#2494;ম&#2495;ল&#2495; ক&#2494;র&#2509;ড সরক&#2494;র থ&#2503;ক&#2503; ব&#2495;ন&#2494;ম&#2498;ল&#2509;য&#2503;
6860      ব&#2495;তরণ কর&#2494; হব&#2503;&#2404;</span>
6861</p>
6862<p style='font-size: 14px; line-height: 1.6;'>
6863<span style='color: #2b00fe; font-weight: bold;'><a href='https://www.youtube.com/watch?v=uMzRetE5Fpc' target='_blank'>👉 আর&#2507;ও ব&#2495;স&#2509;ত&#2494;র&#2495;ত জ&#2494;নত&#2503; এখ&#2494;ন&#2503; ক&#2509;ল&#2495;ক কর&#2497;ন!</a></span>
6864</p>
6865</div>
6866</div>
6867</div>
6868</div>
6869<!-- Family Card Maker Modal END -->
6870<!-- Calendar Modal START -->
6871<div class='crop-modal-overlay' id='calendarModal' style='display:none;'>
6872<div class='crop-modal-content cal-modal-content'>
6873<span class='close-crop-modal' onclick='closeCalendarModal()'>&#215;</span>
6874<div class='cal-main-box'>
6875<!-- Top Title & Live Clock -->
6876<div style='text-align: center;'>
6877<h2 style='color:#d946ef; margin:0 0 10px 0; font-weight: 800; font-size: 24px;'>
6878<i class='fa-solid fa-calendar-days'></i> ব&#2494;&#2434;ল&#2494; ক&#2509;য&#2494;ল&#2503;ন&#2509;ড&#2494;র (ই&#2434;র&#2503;জ&#2495;, ব&#2494;&#2434;ল&#2494; ও আরব&#2495;)
6879          </h2>
6880<div class='cal-clock-box' id='cal-clock-text'>
6881<i class='fa-regular fa-clock'></i> বর&#2509;তম&#2494;ন সময়: ল&#2507;ড হচ&#2509;ছ&#2503;...
6882          </div>
6883</div>
6884<!-- Daily Summary Box -->
6885<div class='cal-summary-box'>
6886<strong style='display:flex; align-items:center; gap:8px; font-size:16px; color:#d946ef; margin-bottom:8px; border-bottom:1px dashed #fbcfe8; padding-bottom:5px;'>
6887<i class='fa-solid fa-book-open'></i> আজক&#2503;র স&#2494;রস&#2434;ক&#2509;ষ&#2503;প
6888          </strong>
6889<span id='cal-summary-text' style='font-size: 15px; font-weight: 700;'>ল&#2507;ড হচ&#2509;ছ&#2503;...</span>
6890</div>
6891<!-- Calendar Header -->
6892<div class='cal-header'>
6893<button class='cal-nav-btn' onclick='changeMonth(-1)' title='পূর্বের মাস'>
6894<i class='fa-solid fa-chevron-left'></i>
6895</button>
6896<div class='cal-month-title'>
6897<h2 id='cal-title-main'>ম&#2494;স বছর</h2>
6898<p id='cal-title-sub'>ব&#2494;&#2434;ল&#2494; ও আরব&#2495; ম&#2494;স</p>
6899<button class='cal-today-btn' onclick='goToToday()'>আজক&#2503;র ত&#2494;র&#2495;খ&#2503; ফ&#2495;র&#2503; য&#2494;ই...</button>
6900</div>
6901<button class='cal-nav-btn' onclick='changeMonth(1)' title='পরের মাস'>
6902<i class='fa-solid fa-chevron-right'></i>
6903</button>
6904</div>
6905<!-- Calendar Grid -->
6906<div class='cal-grid' id='cal-weekdays'>
6907<div class='cal-weekday'>রব&#2495;</div>
6908<div class='cal-weekday'>স&#2507;ম</div>
6909<div class='cal-weekday'>মঙ&#2509;গল</div>
6910<div class='cal-weekday'>ব&#2497;ধ</div>
6911<div class='cal-weekday'>ব&#2499;হস&#2509;পত&#2495;</div>
6912<div class='cal-weekday weekend'>শ&#2497;ক&#2509;র</div>
6913<div class='cal-weekday weekend'>শন&#2495;</div>
6914</div>
6915<div class='cal-grid' id='cal-body' style='margin-top: 10px;'>
6916<!-- Dates will inject here via JS -->
6917</div>
6918<!-- Footer Info -->
6919<div style='margin-top: 20px; padding: 12px; background: #fffbeb; border: 1px dashed #f59e0b; border-radius: 12px; text-align: justify;'>
6920<p style='font-size: 13.5px; color: #92400e; font-weight: 700; margin: 0; line-height: 1.6;'>
6921<i class='fa-solid fa-circle-info'></i>
6922<b>ব&#2495;শ&#2503;ষ দ&#2509;রষ&#2509;টব&#2509;য:</b> হ&#2495;জর&#2495; পঞ&#2509;জ&#2495;ক&#2494; চ&#2494;&#2433;দ দ&#2503;খ&#2494;র উপর ন&#2495;র&#2509;ভরশ&#2496;ল&#2404; এই গণন&#2494; আগ&#2494;ম আন&#2497;ম&#2494;ন&#2495;ক ধ&#2494;রণ&#2494; দ&#2503;য় ম&#2494;ত&#2509;র&#2404; ব&#2494;স&#2509;তব ত&#2494;র&#2495;খ&#2503;র স&#2494;থ&#2503;, শ&#2497;ধ&#2497;ম&#2494;ত&#2509;র ১ থ&#2503;ক&#2503; ২ দ&#2495;ন&#2503;র তফ&#2494;ৎ হত&#2503; প&#2494;র&#2503;&#2404;
6923        </p>
6924</div>
6925</div>
6926</div>
6927</div>
6928<!-- Calendar Modal END -->
6929<!-- Flight Ticket Check Modal -->
6930<div class='crop-modal-overlay' id='flightModal' style='display:none;'>
6931<div class='crop-modal-content flight-modal-content'>
6932<span class='close-crop-modal' onclick='closeFlightModal()'>&#215;</span>
6933<div class='cp-box' style='border: 2px solid #0284c7; border-radius: 20px; padding: 20px; background: #fff;'>
6934<h2 style='color:#0284c7; text-align:center; margin-bottom:10px; font-weight: 800; font-family: "Inter", sans-serif;'>
6935<i class='fa-solid fa-plane-circle-check'></i> All Airline Flight Ticket Check &#10004;
6936       </h2>
6937<div style='text-align: center; margin-bottom: 25px;'>
6938<img alt='Banner' src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgojLPJogvFJ1ubtVEPPjtNj_pDmkDf_9OgKzTqJCH5dt3oSzbiF402yMt3ui6ZWCUFKHHxOLimQZGMNiaHWjeWktfn3hQOcSA0kQ06vLCFsTxxX7XqOt9xdX5v9cI_RyaxNt4F0OdeGnoZRMG8vaq-HgzLVafvabKxjhehzWTmEmOp7GtIZ7xPYacMhR8/s1600/Online%20Airline%20Flight%20Ticket%20Check.webp' style='max-width:100%; height:auto;  border-radius: 12px; box-shadow: 0 4px 10px rgba(0,0,0,0.1);'/>
6939</div>
6940<!-- Search Box -->
6941<div class='flight-search-container'>
6942<i class='fa-solid fa-magnifying-glass flight-search-icon'></i>
6943<input class='flight-search-box' id='flightSearchInput' onkeyup='filterFlights()' placeholder='Search by country name (e.g. Malaysia, Oman)...' type='text'/>
6944</div>
6945<!-- Dynamic Cards Render Area -->
6946<div class='flight-grid' id='flightGrid'>
6947<!-- Cards will be injected here via JavaScript -->
6948</div>
6949<!-- Note Section -->
6950<div style='margin-top: 20px; padding: 12px; background: #fffbeb; border: 1px dashed #f59e0b; border-radius: 12px; font-family: "SolaimanLipi", sans-serif;'>
6951<p style='font-size: 14px; color: #92400e; font-weight: 700; margin: 0 0 8px 0; line-height: 1.6;'>
6952<i class='fa-solid fa-circle-info'></i>
6953<b>Special Notice:</b> 
6954    The airlines&#8217; official website checking links may change at any time. If any link here does not work, please let us know by sending a message through our 
6955    <a href='/p/contact.html' style='color: #ea580c; text-decoration: underline;'>Contact</a> page, so that we can update it promptly.
6956  </p>
6957<div class='mode-separator'></div>
6958<p style='font-size: 14px; color: #92400e; font-weight: 700; margin: 0; line-height: 1.6;'>
6959<i class='fa-solid fa-circle-info'></i>
6960<b>ব&#2495;শ&#2503;ষ দ&#2509;রষ&#2509;টব&#2509;য:</b> 
6961    এয&#2492;&#2494;রল&#2494;ইন&#2509;সগ&#2497;ল&#2507;র অফ&#2495;স&#2495;য&#2492;&#2494;ল ওয&#2492;&#2503;বস&#2494;ইট&#2503;র চ&#2503;ক&#2495;&#2434; ল&#2495;&#2434;ক য&#2503;ক&#2507;ন&#2507; সময&#2492; পর&#2495;বর&#2509;তন হত&#2503; প&#2494;র&#2503;&#2404; যদ&#2495; এখ&#2494;নক&#2494;র ক&#2507;ন&#2507; ল&#2495;&#2434;ক ক&#2494;জ ন&#2494; কর&#2503;, তব&#2503; অন&#2497;গ&#2509;রহ কর&#2503; আম&#2494;দ&#2503;র 
6962    <a href='/p/contact.html' style='color: #ea580c; text-decoration: underline;'>Contact</a> প&#2503;জ&#2503;র ম&#2494;ধ&#2509;যম&#2503; ম&#2503;স&#2503;জ কর&#2503; জ&#2494;ন&#2494;ব&#2503;ন, য&#2494;ত&#2503; আমর&#2494; দ&#2509;র&#2497;ত ত&#2494; আপড&#2503;ট করত&#2503; প&#2494;র&#2495;&#2404;
6963  </p>
6964</div>
6965</div>
6966</div>
6967</div>
6968<!-- Flight Ticket Check Modal END -->
6969<!-- Online Visa Check Modal -->
6970<div class='crop-modal-overlay' id='vchkModalMain' style='display:none;'>
6971<div class='crop-modal-content vchk-modal-content'>
6972<span class='close-crop-modal' onclick='closeVchkModal()'>&#215;</span>
6973<div class='cp-box' style='border: 2px solid #10b981; border-radius: 20px; padding: 20px; background: #fff;'>
6974<h2 style='color:#10b981; text-align:center; margin-bottom:10px; font-weight: 800; font-family: "Inter", sans-serif;'>
6975<i class='fa-solid fa-passport'></i> Online Visa Check &#10004;
6976       </h2>
6977<div style='text-align: center; margin-bottom: 25px;'>
6978<img alt='Visa Banner' src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiB4sY9y78AhpDYiRaucrMLkC__HwPuq1uMhFw4KUMRcnPA1w6gIHbguAlFRI7CbwLjuEBisP4vtqrpF5q3WYMovRJmGOVBG_B2QXhUNl
6978L8jSeoR-14c3GFlBO6Jr7yxY-EPpeiwdqN2o6yRf6-TpdLj6mAvkR8a1v_-DWM4L6UacBfVbdxZZZriGky9AY/s1600/Online%20Visa%20Check.webp' style='max-width:100%; height:auto; border-radius: 12px; box-shadow: 0 4px 10px rgba(0,0,0,0.1);'/>
6979</div>
6980<!-- Search Box -->
6981<div class='vchk-search-wrap'>
6982<i class='fa-solid fa-magnifying-glass vchk-search-icon'></i>
6983<input class='vchk-search-box' id='vchkSearchInput' onkeyup='filterVchk()' placeholder='Search by country name (e.g. KSA, UAE, Canada)...' type='text'/>
6984</div>
6985<!-- Dynamic Cards Render Area -->
6986<div class='vchk-grid' id='vchkGridArea'>
6987<!-- Cards will be injected here via JavaScript -->
6988</div>
6989<!-- Note Section -->
6990<div style='margin-top: 20px; padding: 12px; background: #fffbeb; border: 1px dashed #f59e0b; border-radius: 12px; font-family: "SolaimanLipi", sans-serif;'>
6991<p style='font-size: 14px; color: #007702; font-weight: 700; margin: 0 0 8px 0; line-height: 1.6;'>
6992<i class='fa-solid fa-circle-info'></i>
6993<b>Special Notice:</b> 
6994    The Online visa checking&#8217; official website checking links may change at any time. If any link here does not work, please let us know by sending a message through our 
6995    <a href='/p/contact.html' style='color: #ea580c; text-decoration: underline;'>Contact</a> page, so that we can update it promptly.
6996  </p>
6997<div class='mode-separator'></div>
6998<p style='font-size: 14px; color: #3c36fb; font-weight: 700; margin: 0; line-height: 1.6;'>
6999<i class='fa-solid fa-circle-info'></i>
7000<b>ব&#2495;শ&#2503;ষ দ&#2509;রষ&#2509;টব&#2509;য:</b> 
7001অনল&#2494;ইন&#2503; ভ&#2495;স&#2494; চ&#2503;ক&#2495;&#2434;, অফ&#2495;স&#2495;য&#2492;&#2494;ল ওয&#2492;&#2503;বস&#2494;ইট&#2503;র চ&#2503;ক&#2495;&#2434; ল&#2495;&#2434;ক য&#2503;ক&#2507;ন&#2507; সময&#2492; পর&#2495;বর&#2509;তন হত&#2503; প&#2494;র&#2503;&#2404; যদ&#2495; এখ&#2494;নক&#2494;র ক&#2507;ন&#2507; ল&#2495;&#2434;ক ক&#2494;জ ন&#2494; কর&#2503;, তব&#2503; অন&#2497;গ&#2509;রহ কর&#2503; আম&#2494;দ&#2503;র 
7002    <a href='/p/contact.html' style='color: #ea580c; text-decoration: underline;'>Contact</a> প&#2503;জ&#2503;র ম&#2494;ধ&#2509;যম&#2503; ম&#2503;স&#2503;জ কর&#2503; জ&#2494;ন&#2494;ব&#2503;ন, য&#2494;ত&#2503; আমর&#2494; দ&#2509;র&#2497;ত ত&#2494; আপড&#2503;ট করত&#2503; প&#2494;র&#2495;&#2404;
7003  </p>
7004</div>
7005</div>
7006</div>
7007</div>
7008<!-- Online Visa Check Modal END -->
7009<!-- Date Converter Modal -->
7010<div class='crop-modal-overlay' id='dateConverterModal' style='display:none;'>
7011<div class='crop-modal-content' style='max-width: 750px; width: 95%;'>
7012<span class='close-crop-modal' onclick='hideDateConverter()' style='cursor:pointer;'>&#215;</span>
7013<div class='cp-box' id='dc-main-container' style='border: 2px solid #6366f1; border-radius: 20px; padding: 25px; background: #fff;'>
7014<!-- Language Selector -->
7015<div style='display: flex; justify-content: center; background: #f1f5f9; padding: 5px; border-radius: 50px; width: fit-content; margin: 0 auto 20px;'>
7016<button class='ph-tab active' id='dc-btn-bn' onclick='switchDateLang("bn")' type='button'>ব&#2494;&#2434;ল&#2494; ভ&#2494;র&#2509;সন</button>
7017<button class='ph-tab' id='dc-btn-en' onclick='switchDateLang("en")' type='button'>English Version</button>
7018</div>
7019<h2 id='dc-ui-title' style='color:#6366f1; text-align:center; margin-bottom:20px; font-weight: 800; font-family: "SolaimanLipi", sans-serif;'>অ&#2509;য&#2494;ডভ&#2494;ন&#2509;সড ত&#2494;র&#2495;খ কনভ&#2494;র&#2509;ট&#2494;র</h2>
7020<div style='background: #f8fafc; padding: 20px; border-radius: 15px; border: 1px solid #e2e8f0; margin-bottom: 25px;'>
7021<label for='dc-input' id='dc-lbl-input' style='font-weight: 800; color: #4b5563; display: block; margin-bottom: 10px; font-family: "SolaimanLipi", sans-serif;'>ই&#2434;র&#2503;জ&#2495; ত&#2494;র&#2495;খ ন&#2495;র&#2509;ব&#2494;চন কর&#2497;ন:</label>
7022<input id='eng-date-input' onchange='processAllDateConversions()' style='width: 100%; padding: 12px; border: 2px solid #6366f1; border-radius: 10px; font-size: 18px; font-weight: bold; outline: none; cursor: pointer;' type='date'/>
7023</div>
7024<!-- Result Cards -->
7025<div id='dc-results' style='display: none;'>
7026<div class='dc-card' style='background: #f0f7ff; border: 1px solid #bae6fd; padding: 15px; border-radius: 12px; margin-bottom: 15px;'>
7027<strong id='dc-res-en-title' style='color:#0284c7; display: block; font-size: 13px; font-weight: 800;'>ENGLISH DATE:</strong>
7028<div id='res-en-num' style='font-size: 20px; font-weight: 800; margin: 5px 0; color: #1e293b;'></div>
7029</div>
7030<div class='dc-card' style='background: #f0fdf4; border: 1px solid #bbf7d0; padding: 15px; border-radius: 12px; margin-bottom: 15px;'>
7031<strong id='dc-res-bn-title' style='color:#16a34a; display: block; font-size: 13px; font-weight: 800;'>ব&#2494;&#2434;ল&#2494; ত&#2494;র&#2495;খ:</strong>
7032<div id='res-bn-num' style='font-size: 22px; font-weight: 800; margin: 5px 0; color: #065f46;'></div>
7033</div>
7034<div class='dc-card' style='background: #fff7ed; border: 1px solid #fed7aa; padding: 15px; border-radius: 12px;'>
7035<strong id='dc-res-ar-title' style='color:#ea580c; display: block; font-size: 13px; font-weight: 800;'>আরব&#2495; ত&#2494;র&#2495;খ:</strong>
7036<div id='res-ar-num' style='font-size: 22px; font-weight: 800; margin: 5px 0; color: #7c2d12;'></div>
7037</div>
7038</div>
7039<div style='margin-top: 25px; display: grid; grid-template-columns: 1fr 1fr; gap: 15px;'>
7040<button onclick='resetDatePro()' style='background: #ef4444; color: white; border: none; padding: 12px; border-radius: 10px; cursor: pointer; font-weight: 800; font-family: "SolaimanLipi", sans-serif;' type='button'>র&#2495;স&#2503;ট</button>
7041<button id='dc-btn-copy' onclick='copyDateResult(this)' style='background: #059669; color: white; border: none; padding: 12px; border-radius: 10px; cursor: pointer; font-weight: 800; font-family: "SolaimanLipi", sans-serif;' type='button'>কপ&#2495; কর&#2497;ন</button>
7042</div>
7043<!-- Footer Info -->
7044<div style='margin-top: 20px; padding: 12px; background: #fffbeb; border: 1px dashed #f59e0b; border-radius: 12px; text-align: justify;'>
7045<p style='font-size: 13.5px; color: #92400e; font-weight: 700; margin: 0; line-height: 1.6;'>
7046<i class='fa-solid fa-circle-info'></i>
7047<b>ব&#2495;শ&#2503;ষ দ&#2509;রষ&#2509;টব&#2509;য:</b> হ&#2495;জর&#2495; পঞ&#2509;জ&#2495;ক&#2494; চ&#2494;&#2433;দ দ&#2503;খ&#2494;র উপর ন&#2495;র&#2509;ভরশ&#2496;ল&#2404; এই গণন&#2494; আগ&#2494;ম আন&#2497;ম&#2494;ন&#2495;ক ধ&#2494;রণ&#2494; দ&#2503;য় ম&#2494;ত&#2509;র&#2404; ব&#2494;স&#2509;তব ত&#2494;র&#2495;খ&#2503;র স&#2494;থ&#2503;, শ&#2497;ধ&#2497;ম&#2494;ত&#2509;র ১ থ&#2503;ক&#2503; ২ দ&#2495;ন&#2503;র তফ&#2494;ৎ হত&#2503; প&#2494;র&#2503;&#2404;
7048        </p>
7049</div>
7050</div>
7051</div>
7052</div>
7053<!-- Travel Ticket Booking Modal -->
7054<div class='crop-modal-overlay' id='travelBookingModal' style='display:none;'>
7055<div class='crop-modal-content travel-pro-width'>
7056<span class='close-crop-modal' onclick='closeTravelModal()'>&#215;</span>
7057<div class='cp-box' style='border: 2px solid #0ea5e9; border-radius: 20px; padding: 20px; background: #fff;'>
7058<h2 style='color:#0284c7; text-align:center; margin-bottom:15px; font-weight: 800;'>
7059<i class='fa-solid fa-ticket'></i> Travel Ticket Booking Hub
7060      </h2>
7061<div style='text-align: center; margin-bottom: 25px;'>
7062<img alt='Travel Ticket Booking' src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhP4a3qi6jHKLwokq-e1zUaY4lC2xCXnIFkL
7062Z1SSXhA01caLstcTzpMctoUFP52saSBR6bvG_YIbqkNcC2GVbcKCzSM8_OgR3LLvSJfsRoZiRYKk9wrkSVas8S3XL8fpk-PAkTrde3drcXDmWn1-UrsfGwIAiVhJ1dNpMIGEU_dQG1og99yu1Pga3zvWwQ/s1200/travel-ticket.webp' style='max-width:100%; height:auto; border-radius: 12px; box-shadow: 0 4px 10px rgba(0,0,0,0.1);'/>
7063</div>
7064<!-- Category Tabs with Icons -->
7065<div class='travel-tabs'>
7066<button class='t-tab active' onclick='showTravelCat("airline", this)'>
7067<i class='fa-solid fa-plane'></i> Airlines
7068        </button>
7069<button class='t-tab' onclick='showTravelCat("bus", this)'>
7070<i class='fa-solid fa-bus'></i> Bus
7071        </button>
7072<button class='t-tab' onclick='showTravelCat("launch", this)'>
7073<i class='fa-solid fa-ship'></i> Launch
7074        </button>
7075<button class='t-tab' onclick='showTravelCat("train", this)'>
7076<i class='fa-solid fa-train'></i> Train
7077        </button>
7078<button class='t-tab' onclick='showTravelCat("hotel", this)'>
7079<i class='fa-solid fa-hotel'></i> Hotel
7080        </button>
7081</div>
7082<!-- Main Result Grid -->
7083<div class='travel-grid-container' id='travelMasterGrid'>
7084<!-- Items will be loaded here via JS -->
7085</div>
7086</div>
7087</div>
7088</div>
7089<!-- Eid Card Maker -->
7090<div class='crop-modal-overlay' id='eidPosterModal' style='display:none;'>
7091<div class='crop-modal-content ep-modal-content'>
7092<span class='close-crop-modal' onclick='closeEidPosterModal()'>&#215;</span>
7093<div class='ep-main-box'>
7094<h2 style='color:#d97706; text-align:center; margin:0 0 20px 0; font-weight: 800; font-size: 26px;'>
7095<i class='fa-solid fa-star-and-crescent'></i> ঈদ ম&#2507;ব&#2494;রক ক&#2494;র&#2509;ড ড&#2495;জ&#2494;ইন
7096      </h2>
7097<div class='ep-grid-layout'>
7098<!-- Left Side: Data Entry -->
7099<div class='ep-input-side'>
7100<div class='ep-input-card'>
7101<p class='ep-section-title'><i class='fa-solid fa-palette'></i> প&#2507;স&#2509;ট&#2494;র ড&#2495;জ&#2494;ইন স&#2503;টআপ</p>
7102<label class='ep-label' for='ep1'>আপন&#2494;র ছব&#2495; আপল&#2507;ড কর&#2497;ন</label>
7103<div class='ep-upload-box' onclick='document.getElementById(&#39;ep-photo-in&#39;).click()'>
7104<i class='fa-solid fa-cloud-arrow-up'></i>
7105<div style='font-weight: bold; color: #92400e;'>ক&#2509;ল&#2495;ক কর&#2503; ছব&#2495; ন&#2495;র&#2509;ব&#2494;চন কর&#2497;ন</div>
7106<input accept='image/*' id='ep-photo-in' onchange='loadEpPhoto(event)' style='display:none' type='file'/>
7107</div>
7108<label class='ep-label' for='ep2'>ট&#2503;মপ&#2509;ল&#2503;ট ড&#2495;জ&#2494;ইন</label>
7109<select class='ep-select' id='ep-layout' onchange='updateEidPoster()'>
7110<option value='layout-1'>র&#2494;উন&#2509;ড ফ&#2509;র&#2503;ম (Standard)</option>
7111<option value='layout-2'>স&#2509;কয&#2492;&#2494;র ফ&#2509;র&#2503;ম (Classic)</option>
7112<option value='layout-3'>হ&#2503;ক&#2509;স&#2494;গন ফ&#2509;র&#2503;ম (Modern)</option>
7113</select>
7114<label class='ep-label' for='ep3'>প&#2507;স&#2509;ট&#2494;র&#2503;র ক&#2494;ল&#2494;র থ&#2495;ম</label>
7115<select class='ep-select' id='ep-theme' onchange='updateEidPoster()'>
7116<option value='theme-blue'>Royal Blue (রয়&#2503;ল ব&#2509;ল&#2497;)</option>
7117<option value='theme-green'>Emerald Green (সব&#2497;জ)</option>
7118<option value='theme-purple'>Deep Purple (প&#2494;র&#2509;পল)</option>
7119<option value='theme-red'>Crimson Red (ল&#2494;ল)</option>
7120</select>
7121<label class='ep-label' for='ep4'>শ&#2497;ভ&#2503;চ&#2509;ছ&#2494; ব&#2494;র&#2509;ত&#2494;</label>
7122<input class='ep-input' id='ep-msg' oninput='updateEidPoster()' type='text' value='সবাইকে পবিত্র ঈদুল ফিতরের শুভেচ্ছা ও অভিনন্দন'/>
7123<label class='ep-label' for='ep5'>আপন&#2494;র ন&#2494;ম</label>
7124<input class='ep-input' id='ep-name' oninput='updateEidPoster()' placeholder='আপনার নাম লিখুন...' type='text'/>
7125<label class='ep-label' for='ep6'>আপন&#2494;র পদব&#2495; / পর&#2495;চয়</label>
7126<input class='ep-input' id='ep-title' oninput='updateEidPoster()' placeholder='আপনার পদবী ও পেশা লিখুন...' type='text'/>
7127<label class='ep-label' for='ep7'>আপন&#2494;র ঠ&#2495;ক&#2494;ন&#2494;</label>
7128<input class='ep-input' id='ep-address' oninput='updateEidPoster()' placeholder='আপনার ঠিকানা লিখুন...' type='text'/>
7129</div>
7130</div>
7131<!-- Right Side: Poster Preview -->
7132<div class='ep-preview-side'>
7133<p style='color:#94a3b8; font-size: 14px; margin: 0 0 15px 0; font-weight: bold;'><i class='fa-solid fa-eye'></i> হ&#2494;ই ক&#2507;য&#2492;&#2494;ল&#2495;ট&#2495; HD ঈদ ক&#2494;র&#2509;ড</p>
7134<!-- Scalable Wrapper for Mobile -->
7135<div id='ep-preview-wrapper'>
7136<!-- The Actual Poster (800x800 Fixed Size) -->
7137<div class='ep-poster-export theme-blue layout-1' id='eid-poster-export'>
7138<!-- Bismillah Text -->
7139<div class='ep-bismillah'>ব&#2495;সম&#2495;ল&#2509;ল&#2494;হ&#2495;র র&#2494;হম&#2494;ন&#2495;র র&#2494;হ&#2495;ম</div>
7140<div class='ep-stars'></div>
7141<div class='ep-frame'></div>
7142<div class='ep-frame-inner'></div>
7143<i class='fa-solid fa-mosque ep-mosque-bg'></i>
7144<i class='fa-solid fa-moon ep-moon-bg'></i>
7145<!-- Moons Replacing Idea Icons -->
7146<i class='fa-solid fa-moon ep-lantern-left'></i>
7147<i class='fa-solid fa-moon ep-lantern-right'></i>
7148<div class='ep-title'>ঈদ ম&#2507;ব&#2494;রক</div>
7149<div class='ep-message' id='out-ep-msg'>সব&#2494;ইক&#2503; পব&#2495;ত&#2509;র ঈদ&#2497;ল ফ&#2495;তর&#2503;র শ&#2497;ভ&#2503;চ&#2509;ছ&#2494; ও অভ&#2495;নন&#2509;দন</div>
7150<div class='ep-user-area'>
7151<div class='ep-user-photo-wrap'>
7152<!--Default Placeholder Icon-->
7153<img class='ep-user-photo' id='out-ep-photo' src='data:image/svg+xml;utf8,<svg xmlns=&#39;http://www.w3.org/2000/svg&#39; viewBox=&#39;0 0 448 512&#39;><path fill=&#39;%2394a3b8&#39; d=&#39;M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z&#39;/></svg>'/>
7154</div>
7155<div class='ep-user-name' id='out-ep-name'>আপন&#2494;র ন&#2494;ম</div>
7156<div class='ep-user-title' id='out-ep-title'>আপন&#2494;র পদব&#2495;</div>
7157<div class='ep-address' id='out-ep-address'>আপন&#2494;র ঠ&#2495;ক&#2494;ন&#2494;</div>
7158</div>
7159</div>
7160</div>
7161<!-- Buttons -->
7162<div class='ep-action-buttons'>
7163<button class='ep-btn-action' id='btn-ep-download' onclick='downloadEidPoster()' style='background: linear-gradient(135deg, #10b981, #059669);'>
7164<i class='fa-solid fa-download'></i> HD ড&#2494;উনল&#2507;ড
7165            </button>
7166<button class='ep-btn-action' onclick='resetEidPoster()' style='background: linear-gradient(135deg, #ef4444, #b91c1c);'>
7167<i class='fa-solid fa-trash-can'></i> র&#2495;স&#2503;ট
7168            </button>
7169</div>
7170</div>
7171</div>
7172</div>
7173<!--Tool Guidelines Box START-->
7174<div class='ep-guidelines-box'>
7175<h3 class='ep-guidelines-title'>
7176<i class='fa-solid fa-circle-info'></i> ক&#2496;ভ&#2494;ব&#2503; ঈদ ম&#2507;ব&#2494;রক প&#2507;স&#2509;ট&#2494;র ত&#2504;র&#2495; করব&#2503;ন?
7177    </h3>
7178<p class='ep-guidelines-text'>
7179        খ&#2497;ব সহজ&#2503;ই ন&#2495;জ&#2503;র ছব&#2495; দ&#2495;য়&#2503; চমৎক&#2494;র ঈদ ক&#2494;র&#2509;ড ত&#2504;র&#2495; করত&#2503; প&#2509;রথম&#2503; আপন&#2494;র পছন&#2509;দ&#2503;র <span>ট&#2503;মপ&#2509;ল&#2503;ট ও থ&#2495;ম</span> ন&#2495;র&#2509;ব&#2494;চন কর&#2497;ন&#2404; এরপর বক&#2509;স&#2503; আপন&#2494;র <span>ন&#2494;ম, পদব&#2495; ও ঠ&#2495;ক&#2494;ন&#2494;</span> ল&#2495;খ&#2503; <span>ছব&#2495; আপল&#2507;ড</span> অপশন&#2503; ক&#2509;ল&#2495;ক কর&#2503; গ&#2509;য&#2494;ল&#2494;র&#2495; থ&#2503;ক&#2503; একট&#2495; স&#2497;ন&#2509;দর ছব&#2495; স&#2495;ল&#2503;ক&#2509;ট ও ক&#2509;রপ কর&#2497;ন&#2404; সবক&#2495;ছ&#2497; ঠ&#2495;ক থ&#2494;কল&#2503; ড&#2494;নপ&#2494;শ&#2503;র ল&#2494;ইভ প&#2509;র&#2495;ভ&#2495;উ দ&#2503;খ&#2503; <span>"HD ড&#2494;উনল&#2507;ড"</span> ব&#2494;টন&#2503; ক&#2509;ল&#2495;ক করল&#2503;ই প&#2507;স&#2509;ট&#2494;রট&#2495; আপন&#2494;র গ&#2509;য&#2494;ল&#2494;র&#2495;ত&#2503; স&#2503;ভ হয়&#2503; য&#2494;ব&#2503;&#2404; <span style='color: red;'><b><a href='https://www.idcardscannerpro.com/2026/03/best-eid-mubarak-poster-maker.html' target='_blank'>আরও ব&#2495;স&#2509;ত&#2494;র&#2495;ত জ&#2494;ন&#2497;ন!</a></b></span>
7180</p>
7181</div>
7182<!--Tool Guidelines Box END-->
7183</div>
7184</div>
7185<!-- Cropper Modal -->
7186<div class='ep-cropper-overlay' id='ep-cropper-modal'>
7187<div class='ep-cropper-box'>
7188<h3 style='margin:0; color:#d97706; text-align:center; font-family:"SolaimanLipi", sans-serif;'>ছব&#2495; ক&#2509;রপ কর&#2497;ন</h3>
7189<div class='ep-cropper-area'>
7190<img id='ep-crop-image' src='' style='max-width:100%; display:block;'/>
7191</div>
7192<div style='display:grid; grid-template-columns:1fr 1fr; gap:10px;'>
7193<button class='ep-btn-action' onclick='saveEpCrop()' style='background: #10b981;'><i class='fa-solid fa-check'></i> স&#2503;ভ কর&#2497;ন</button>
7194<button class='ep-btn-action' onclick='closeEpCrop()' style='background: #ef4444;'><i class='fa-solid fa-xmark'></i> ব&#2494;ত&#2495;ল</button>
7195</div>
7196</div>
7197</div>
7198<!-- Eid Poster Maker Modal END -->
7199<!-- Quotation Maker Modal START -->
7200<div class='crop-modal-overlay' id='quotationMakerModal' style='display:none;'>
7201<div class='crop-modal-content' style='max-width: 750px;'>
7202<span class='close-crop-modal' onclick='closeQuotationMakerModal()'>&#215;</span>
7203<div class='cp-box' style='border-radius: 20px; padding: 25px;'>
7204<div class='ip-container'>
7205<h2 style='background: linear-gradient(135deg, #1e3a8a, #0ea5e9); -webkit-background-clip: text; -webkit-text-fill-color: transparent; margin-bottom:10px; font-size: 24px; font-weight: 800;'>
7206<i class='fa-solid fa-file-invoice-dollar'></i> Quotation Maker
7207        </h2>
7208<p class='sub' style='margin-bottom:20px; font-size:14px; color:#64748b;'>
7209          Generate and print official premium A4 quotations instantly
7210        </p>
7211<!-- Form Scroll Container -->
7212<div class='q-form-scroll'>
7213<!-- Company Info (Sender) -->
7214<div class='q-sec-title q-sec-sender'><i class='fa-solid fa-building'></i> Company / Sender Details</div>
7215<div class='q-grid-2'>
7216<div class='q-setting-item'>
7217<label>Company Name</label>
7218<input id='qSenderName' oninput='saveQuotationSender()' placeholder='Your Company Name' type='text'/>
7219</div>
7220<div class='q-setting-item'>
7221<label>Contacts (Line 1)</label>
7222<input id='qSenderContact' oninput='saveQuotationSender()' placeholder='Mob: 01834030544, 01403178709' type='text'/>
7223</div>
7224</div>
7225<div class='q-grid-2' style='margin-top: 12px; margin-bottom: 25px;'>
7226<div class='q-setting-item'>
7227<label>Company Physical Address</label>
7228<input id='qSenderAddress' oninput='saveQuotationSender()' placeholder='Comilla, Chittagong, Bangladesh.' type='text'/>
7229</div>
7230<div class='q-setting-item'>
7231<label>Upload Logo (Image)</label>
7232<input accept='image/*' id='qLogoInput' onchange='handleQuotationLogo(this)' type='file'/>
7233<div id='qLogoPreviewText' style='font-size: 11px; color: #10b981; margin-top: 4px; display: none; font-weight: 700;'>
7234<i class='fa-solid fa-circle-check'></i> Logo loaded successfully!
7235              </div>
7236</div>
7237</div>
7238<!-- Billing Details (Receiver) -->
7239<div class='q-sec-title q-sec-client'><i class='fa-solid fa-user-tie'></i> Billing Address (Client Details)</div>
7240<div class='q-grid-3' style='margin-bottom: 25px;'>
7241<div class='q-setting-item'>
7242<label>Billing Name (Client)</label>
7243<input id='qClientName' placeholder='e.g., MD FYZUL KARIM' type='text'/>
7244</div>
7245<div class='q-setting-item'>
7246<label>Client Location</label>
7247<input id='qClientLocation' placeholder='e.g., Comilla' type='text'/>
7248</div>
7249<div class='q-setting-item'>
7250<label>Customer Mobile</label>
7251<input id='qClientMobile' placeholder='e.g., 99100777' type='text'/>
7252</div>
7253</div>
7254<!-- Quotation Metadata -->
7255<div class='q-sec-title q-sec-meta'><i class='fa-solid fa-calendar-days'></i> Quotation Details</div>
7256<div class='q-grid-3' style='margin-top: 5px; margin-bottom: 12px;'>
7257<div class='q-setting-item'>
7258<label>Quotation Number</label>
7259<input id='qNumber' placeholder='ALM0207-202306' type='text'/>
7260</div>
7261<div class='q-setting-item'>
7262<label>Quotation Date</label>
7263<input id='qDate' type='date'/>
7264</div>
7265<div class='q-setting-item'>
7266<label>Due Date</label>
7267<input id='qDueDate' type='date'/>
7268</div>
7269</div>
7270<div class='q-grid-3' style='margin-bottom: 25px;'>
7271<div class='q-setting-item'>
7272<label>Payment Term</label>
7273<input id='qPayTerm' placeholder='e.g., 7 days' type='text'/>
7274</div>
7275<div class='q-setting-item'>
7276<label>Payment Method</label>
7277<input id='qPayMethod' placeholder='e.g., Cash' type='text'/>
7278</div>
7279<div class='q-setting-item'>
7280<label>Salesperson</label>
7281<input id='qSalesperson' placeholder='Salesperson Name' type='text'/>
7282</div>
7283</div>
7284<!-- Dynamic Items List -->
7285<div class='q-sec-title q-sec-items'><i class='fa-solid fa-cart-shopping'></i> Quotation Items List</div>
7286<div id='quotationItemsList' style='display: flex; flex-direction: column; gap: 10px; margin-bottom: 15px;'>
7287<!-- Rows will be injected here via JS -->
7288</div>
7289<button class='conv-btn-main' onclick='addQuotationItemRow()' style='padding: 8px 15px; font-size: 13px; max-width: 140px; background: #1e3a8a !important; margin-bottom: 25px;'>
7290<i class='fa-solid fa-plus'></i> Add Item
7291          </button>
7292<!-- T&C and Financial Adjustments -->
7293<div class='q-sec-title q-sec-terms'><i class='fa-solid fa-file-contract'></i> Terms, Conditions & Paid Amount</div>
7294<div class='q-setting-item' style='margin-bottom: 20px;'>
7295<label>Terms & Conditions (One line per number)</label>
7296<textarea id='qTermsText' rows='5' style='resize: vertical; font-size: 13.5px; line-height: 1.5;'></textarea>
7297</div>
7298<div class='q-grid-3' style='margin-bottom: 15px;'>
7299<div class='q-setting-item'>
7300<label>Paid Amount</label>
7301<input id='qPaid' min='0' oninput='calculateQuotationTotals()' step='0.001' type='number' value='0.000'/>
7302</div>
7303<div class='q-setting-item'>
7304<label>Currency Symbol</label>
7305<input id='qCurrency' oninput='calculateQuotationTotals()' style='text-align: center;' type='text' value='BDT'/>
7306</div>
7307</div>
7308<!-- Live Totals Card -->
7309<div class='q-total-card'>
7310<div class='q-total-row'>
7311<span>Subtotal Amount:</span>
7312<span id='qLiveSubtotalText'>0.000 BDT</span>
7313</div>
7314<div class='q-total-row' style='border-top: 1px dashed rgba(30, 58, 138, 0.15); padding-top: 8px; color: #047857;'>
7315<span>Total Due (Balance):</span>
7316<span id='qLiveDueText'>0.000 BDT</span>
7317</div>
7318</div>
7319</div>
7320<!-- Form scroll end -->
7321<!-- Status Bar -->
7322<div class='ip-status' id='quotationMakerStatus'>Ready to generate</div>
7323<!-- Action Buttons -->
7324<div class='actions' style='display:grid; grid-template-columns: 1fr 1fr; gap:10px; margin-bottom: 10px;'>
7325<button class='conv-btn-main' id='qGenerateBtn' onclick='startQuotationGeneration("download")' style='margin:0; background:#1e3a8a !important;'>
7326<i class='fa-solid fa-file-pdf'></i> Download PDF
7327          </button>
7328<button class='conv-btn-main' id='qPrintBtn' onclick='startQuotationGeneration("print")' style='margin:0; background:#059669 !important;'>
7329<i class='fa-solid fa-print'></i> Print Quotation
7330          </button>
7331</div>
7332<button class='conv-btn-main' onclick='clearQuotationMakerForm()' style='margin:0; background:#ef4444 !important; width: 100%;'>
7333<i class='fa-solid fa-trash-can'></i> Clear Form
7334        </button>
7335</div>
7336</div>
7337</div>
7338</div>
7339<!-- Quotation Maker Modal END -->
7340<!-- Invoice Maker Modal START -->
7341<div class='crop-modal-overlay' id='invoiceMakerModal' style='display:none;'>
7342<div class='crop-modal-content' style='max-width: 700px;'>
7343<span class='close-crop-modal' onclick='closeInvoiceMakerModal()'>&#215;</span>
7344<div class='cp-box' style='border-radius: 20px; padding: 25px;'>
7345<div class='ip-container'>
7346<h2 style='background: linear-gradient(135deg, #4f46e5, #06b6d4); -webkit-background-clip: text; -webkit-text-fill-color: transparent; margin-bottom:10px; font-size: 24px; font-weight: 800;'>
7347<i class='fa-solid fa-file-invoice'></i> Invoice Maker
7348        </h2>
7349<p class='sub' style='margin-bottom:20px; font-size:14px; color:#64748b;'>
7350          Generate, download, or print clean, professional A4 invoices instantly
7351        </p>
7352<!-- Scrollable Form Container -->
7353<div class='invoice-form-scroll'>
7354<!-- Company Details (Sender) -->
7355<div class='inv-sec-title sec-sender'><i class='fa-solid fa-building'></i> Sender Details (My Company)</div>
7356<div class='invoice-grid-2'>
7357<div class='ip-setting-item'>
7358<label>Company/Sender Name</label>
7359<input id='invSenderName' oninput='saveSenderDetails()' placeholder='Your Company Name' type='text'/>
7360</div>
7361<div class='ip-setting-item'>
7362<label>Contact Email / Phone</label>
7363<input id='invSenderContact' oninput='saveSenderDetails()' placeholder='[email protected] / +1234567890' type='text'/>
7364</div>
7365</div>
7366<div class='invoice-grid-2' style='margin-top: 12px; margin-bottom: 25px;'>
7367<div class='ip-setting-item'>
7368<label>Company Physical Address</label>
7369<input id='invSenderAddress' oninput='saveSenderDetails()' placeholder='City, Country' type='text'/>
7370</div>
7371<!-- Logo Upload Field -->
7372<div class='ip-setting-item'>
7373<label>Company Logo (Image)</label>
7374<input accept='image/*' id='invLogoInput' onchange='handleLogoUpload(this)' type='file'/>
7375<div id='logoPreviewText' style='font-size: 11px; color: #10b981; margin-top: 4px; display: none; font-weight: 700;'>
7376<i class='fa-solid fa-circle-check'></i> Logo loaded successfully!
7377              </div>
7378</div>
7379</div>
7380<!-- Client Details (Receiver) -->
7381<div class='inv-sec-title sec-client'><i class='fa-solid fa-user-tie'></i> Bill To (Client Details)</div>
7382<div class='invoice-grid-2'>
7383<div class='ip-setting-item'>
7384<label>Client / Customer Name</label>
7385<input id='invClientName' placeholder='Client Name' type='text'/>
7386</div>
7387<div class='ip-setting-item'>
7388<label>Client Phone / Email</label>
7389<input id='invClientContact' placeholder='e.g., +1234567890' type='text'/>
7390</div>
7391</div>
7392<div class='ip-setting-item' style='margin-top: 12px; margin-bottom: 25px;'>
7393<label>Client Physical Address</label>
7394<input id='invClientAddress' placeholder='Client Location / Address' type='text'/>
7395</div>
7396<!-- Invoice Metadata -->
7397<div class='inv-sec-title sec-meta'><i class='fa-solid fa-calendar-days'></i> Invoice Details</div>
7398<div class='invoice-grid-3' style='margin-bottom: 25px;'>
7399<div class='ip-setting-item'>
7400<label>Invoice Number</label>
7401<input id='invNumber' placeholder='e.g., #INV-1001' type='text'/>
7402</div>
7403<div class='ip-setting-item'>
7404<label>Invoice Date</label>
7405<input id='invDate' type='date'/>
7406</div>
7407<div class='ip-setting-item'>
7408<label>Due Date</label>
7409<input id='invDueDate' type='date'/>
7410</div>
7411</div>
7412<!-- Dynamic Item Rows Section -->
7413<div class='inv-sec-title sec-items'><i class='fa-solid fa-cart-shopping'></i> Invoice Items List</div>
7414<div id='invoiceItemsList' style='display: flex; flex-direction: column; gap: 12px; margin-bottom: 15px;'>
7415<!-- Rows will be injected here via Javascript -->
7416</div>
7417<button class='conv-btn-main' onclick='addInvoiceItemRow()' style='padding: 8px 15px; font-size: 13px; max-width: 140px; background: #4f46e5 !important; margin-bottom: 25px;'>
7418<i class='fa-solid fa-plus'></i> Add Item
7419          </button>
7420<!-- Tax, Discount and Currency Settings -->
7421<div class='inv-sec-title sec-tax'><i class='fa-solid fa-percent'></i> Taxes, Discounts & Currency</div>
7422<div class='invoice-grid-3' style='margin-bottom: 15px;'>
7423<div class='ip-setting-item'>
7424<label>Tax (%)</label>
7425<input id='invTax' min='0' oninput='calculateInvoiceTotals()' type='number' value='0'/>
7426</div>
7427<div class='ip-setting-item'>
7428<label>Discount (%)</label>
7429<input id='invDiscount' min='0' oninput='calculateInvoiceTotals()' type='number' value='0'/>
7430</div>
7431<div class='ip-setting-item'>
7432<label>Currency Symbol</label>
7433<input id='invCurrency' oninput='calculateInvoiceTotals()' style='text-align: center;' type='text' value='BDT'/>
7434</div>
7435</div>
7436<!-- Live Total Counter Card -->
7437<div class='inv-total-card'>
7438<span>Total Payable Amount:</span>
7439<span id='invLiveTotalText'>0.00 USD</span>
7440</div>
7441</div>
7442<!-- Status -->
7443<div class='ip-status' id='invoiceMakerStatus'>Ready to generate</div>
7444<!-- Action Buttons -->
7445<div class='actions' style='display:grid; grid-template-columns: 1fr 1fr; gap:10px; margin-bottom: 10px;'>
7446<button class='conv-btn-main' id='invGenerateBtn' onclick='startInvoiceGeneration("download")' style='margin:0; background:#4f46e5 !important;'>
7447<i class='fa-solid fa-file-pdf'></i> Download PDF
7448          </button>
7449<button class='conv-btn-main' id='invPrintBtn' onclick='startInvoiceGeneration("print")' style='margin:0; background:#059669 !important;'>
7450<i class='fa-solid fa-print'></i> Print Invoice
7451          </button>
7452</div>
7453<button class='conv-btn-main' onclick='clearInvoiceMakerForm()' style='margin:0; background:#ef4444 !important; width: 100%;'>
7454<i class='fa-solid fa-trash-can'></i> Clear Form
7455        </button>
7456</div>
7457</div>
7458</div>
7459</div>
7460<!-- Invoice Maker Modal END -->
7461<!-- PDF Compressor Modal START -->
7462<div class='pco-modal-overlay' id='pcoCompressModal' style='display:none;'>
7463<div class='pco-modal-content'>
7464<span class='pco-close-modal' onclick='closePcoCompressModal()'>&#215;</span>
7465<div class='pco-cp-box' style='border-radius: 20px; padding: 25px;'>
7466<div class='pco-ip-container'>
7467<h2 style='background: linear-gradient(135deg, #4f46e5, #06b6d4); -webkit-background-clip: text; -webkit-text-fill-color: transparent; margin-bottom:10px; font-size: 24px; font-weight: 800;'>
7468<i class='fa-solid fa-file-signature'></i> PDF Compressor
7469        </h2>
7470<p class='sub' style='margin-bottom:20px; font-size:14px; color:#64748b;'>
7471          Instantly compress and optimize large PDF files to a smaller size.
7472        </p>
7473<!-- Upload Area -->
7474<div class='pco-upload-area' id='pcoDropZone' onclick='document.getElementById("pcoCompressFileInput").click()'>
7475<i class='fa-solid fa-file-pdf' style='font-size: 40px; color: #4f46e5; margin-bottom: 12px;'></i>
7476<p id='pcoCompressFileName' style='font-weight:700; margin:0; color:#1e293b;'>
7477            Select or Drag PDF File
7478          </p>
7479<input accept='application/pdf' id='pcoCompressFileInput' style='display:none' type='file'/>
7480</div>
7481<!-- Compression Settings -->
7482<div class='pco-settings'>
7483<div class='pco-setting-item'>
7484<label for='pcoCompressLevel'>Compression Quality</label>
7485<select id='pcoCompressLevel' onchange='clearPcoStatus()'>
7486<option value='medium'>Target ~300 KB (Highly Optimized)</option>
7487<option value='ultra'>Ultra High Quality (Best for Fine Text & Prints)</option>
7488<option value='high'>High Quality (Sharp Text & Graphics)</option>
7489<option value='medium_high'>Medium-High Quality (Great Balance)</option>
7490<option value='medium_low'>Medium-Low Quality (Small Size)</option>
7491<option value='extreme'>Extreme Compress (Smallest Size / Low Quality)</option>
7492</select>
7493</div>
7494</div>
7495<!-- PDF Meta/Preview Box -->
7496<div class='pco-preview-grid' id='pcoMetaBox' style='display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; min-height: 100px; background: #f8fafc; border-radius: 12px; border: 1px solid #e2e8f0; margin-bottom: 15px;'>
7497<div id='pcoMetaText' style='padding: 20px; color: #94a3b8; text-align: center; font-size: 14.5px;'>
7498            No PDF selected yet.
7499          </div>
7500</div>
7501<!-- Status Bar -->
7502<div class='pco-status' id='pcoCompressStatus'>Ready to compress</div>
7503<!-- Action Buttons -->
7504<div class='actions' style='display:grid; grid-template-columns: 1fr 1fr; gap:10px;'>
7505<button class='pco-btn-main' id='pcoCompressBtn' onclick='startPcoCompression()' style='margin:0; background:#4f46e5 !important;'>
7506<i class='fa-solid fa-compress'></i> Compress PDF
7507          </button>
7508<button class='pco-btn-main' onclick='clearPcoCompressTool()' style='margin:0; background:#ef4444 !important;'>
7509<i class='fa-solid fa-trash-can'></i> Clear File
7510          </button>
7511</div>
7512</div>
7513</div>
7514</div>
7515</div>
7516<!-- PDF Compressor Modal END -->
7517<!-- WhatsApp Message Formatter Modal START -->
7518<div class='crop-modal-overlay' id='waFormatterModal' style='display:none;'>
7519<div class='crop-modal-content' style='max-width: 650px;'>
7520<span class='close-crop-modal' onclick='closeWaFormatterModal()'>&#215;</span>
7521<div class='cp-box' style='border-radius: 20px; padding: 25px;'>
7522<div class='ip-container'>
7523<h2 style='background: linear-gradient(135deg, #25d366, #128c7e); -webkit-background-clip: text; -webkit-text-fill-color: transparent; margin-bottom:10px; font-size: 24px; font-weight: 800;'>
7524<i class='fa-brands fa-whatsapp'></i> WhatsApp Message Formatter
7525        </h2>
7526<p class='sub' style='margin-bottom:20px; font-size:14px; color:#64748b;'>
7527          Easily format your text with Bold, Italic, Strikethrough, Lists, Quotes, and Code Blocks
7528        </p>
7529<!-- Formatting Toolbar (Expanded with 8 professional tools) -->
7530<div class='waf-toolbar'>
7531<button class='waf-tool-btn' onclick='insertWaFormat(&#39;bold&#39;)'><i class='fa-solid fa-bold'></i> Bold</button>
7532<button class='waf-tool-btn' onclick='insertWaFormat(&#39;italic&#39;)'><i class='fa-solid fa-italic'></i> Italic</button>
7533<button class='waf-tool-btn' onclick='insertWaFormat(&#39;strike&#39;)'><i class='fa-solid fa-strikethrough'></i> Strike</button>
7534<button class='waf-tool-btn' onclick='insertWaFormat(&#39;code&#39;)'><i class='fa-solid fa-code'></i> Monospace</button>
7535<button class='waf-tool-btn' onclick='insertWaFormat(&#39;bullet&#39;)'><i class='fa-solid fa-list-ul'></i> Bullet List</button>
7536<button class='waf-tool-btn' onclick='insertWaFormat(&#39;number&#39;)'><i class='fa-solid fa-list-ol'></i> Number List</button>
7537<button class='waf-tool-btn' onclick='insertWaFormat(&#39;quote&#39;)'><i class='fa-solid fa-quote-left'></i> Quote</button>
7538<button class='waf-tool-btn' onclick='insertWaFormat(&#39;codeblock&#39;)'><i class='fa-solid fa-terminal'></i> Code Block</button>
7539</div>
7540<!-- Input Box and Phone Settings Grid -->
7541<div class='waf-grid-2'>
7542<!-- Textarea Input (Left) -->
7543<div class='ip-setting-item' style='margin: 0; min-width: 0;'>
7544<label>Write Your Message</label>
7545<textarea id='waFormatterInput' oninput='updateWaFormatterPreview()' placeholder='Type or paste your message here. Select any text to format...' rows='6'></textarea>
7546</div>
7547<!-- Receiver Phone (Right) -->
7548<div style='display: flex; flex-direction: column; gap: 12px; height: 100%; min-width: 0;'>
7549<div class='ip-setting-item' style='margin: 0;'>
7550<label>Target Phone Number (Optional)</label>
7551<input id='waFormatterPhone' placeholder='e.g. +96877193555' type='text'/>
7552</div>
7553<!-- Quick Send Button inside the grid -->
7554<button class='conv-btn-main' onclick='sendDirectWaFormatted()' style='background: #25d366 !important; margin: auto 0 0 0; padding: 12px; font-size: 14.5px;'>
7555<i class='fa-brands fa-whatsapp'></i> Send Message
7556            </button>
7557</div>
7558</div>
7559<!-- Live Preview Title -->
7560<div style='text-align: left; font-size: 13px; font-weight: 700; color: #475569; margin-bottom: 8px;'><i class='fa-solid fa-eye'></i> Real-time WhatsApp Chat Preview</div>
7561<!-- Live WhatsApp Chat Bubble Preview Box -->
7562<div class='waf-preview-container'>
7563<div class='waf-chat-bubble'>
7564<div id='waFormatterPreview'><span style='color: #667781; font-style: italic;'>Your formatted message preview will show here...</span></div>
7565<div class='waf-bubble-footer'>
7566<span id='waFormatterTime'>12:00 PM</span>
7567<i class='fa-solid fa-check-double' style='color: #53bdeb; font-size: 13px;'></i>
7568</div>
7569</div>
7570<!-- Clear Float -->
7571<div style='clear: both;'></div>
7572</div>
7573<!-- Status -->
7574<div class='ip-status' id='waFormatterStatus'>Ready to format & share</div>
7575<!-- Action Buttons -->
7576<div class='actions' style='display:grid; grid-template-columns: 1fr 1fr; gap:10px;'>
7577<button class='conv-btn-main' id='waFormatterCopyBtn' onclick='copyFormattedWaText()' style='margin:0; background:#4f46e5 !important;'>
7578<i class='fa-regular fa-copy'></i> Copy Formatted Text
7579          </button>
7580<button class='conv-btn-main' onclick='clearWaFormatterForm()' style='margin:0; background:#ef4444 !important;'>
7581<i class='fa-solid fa-trash-can'></i> Clear Text
7582          </button>
7583</div>
7584</div>
7585</div>
7586</div>
7587</div>
7588<!-- WhatsApp Message Formatter Modal END -->
7589<!-- Smart Voice Writer Modal START -->
7590<div class='crop-modal-overlay' id='voiceWriterModal' style='display:none;'>
7591<div class='crop-modal-content' style='max-width: 500px;'>
7592<!-- Close cross button -->
7593<span class='close-crop-modal' onclick='closeVoiceWriterModal()'>&#215;</span>
7594<div class='cp-box' style='border-radius: 20px; padding: 25px;'>
7595<!-- স&#2507;ল&#2503;ম&#2494;ন ল&#2495;প&#2495; ফন&#2509;ট থ&#2495;ম স&#2494;প&#2507;র&#2509;ট (NEW UPDATE) -->
7596<div class='ip-container' style='font-family: &#39;SolaimanLipi&#39;, &#39;Inter&#39;, sans-serif !important;'>
7597<!-- Header -->
7598<h2 id='vwTitleText' style='background: linear-gradient(135deg, #4f46e5, #06b6d4); -webkit-background-clip: text; -webkit-text-fill-color: transparent; margin-bottom:10px; font-size: 32px; font-weight: 800; text-align: center;'>
7599<i class='fa-solid fa-microphone'></i> Smart Voice Writer
7600        </h2>
7601<p class='sub' id='vwSubText' style='margin-bottom:20px; font-size:14px; color:#64748b; text-align: center;'>
7602          Type effortlessly in Bangla or English using your voice
7603        </p>
7604<!-- PC Microphone Connection Warning Notice -->
7605<div class='vw-mic-notice' id='vwMicNotice'>
7606<i class='fa-solid fa-triangle-exclamation' style='color: #f59e0b; font-size: 16px; margin-right: 5px;'></i>
7607<strong>Important Note:</strong> If you are using a computer or laptop, please ensure a working <b>microphone</b> is connected and allowed in your browser settings.
7608        </div>
7609<!-- Dynamic Language Selector -->
7610<div class='vw-settings'>
7611<label id='vwLangLabel'><i class='fa-solid fa-language'></i> Select Typing Language:</label>
7612<select class='vw-lang-select' id='vwLangSelect' onchange='resetVoiceEngine()'>
7613<option value='bn-BD'>ব&#2494;&#2434;ল&#2494; (Bengali - BD)</option>
7614<option value='en-US'>English (United States)</option>
7615</select>
7616</div>
7617<!-- Animated Waveform Container -->
7618<div class='vw-wave-container' id='vwWaveform'>
7619<div class='vw-wave-bar'></div>
7620<div class='vw-wave-bar'></div>
7621<div class='vw-wave-bar'></div>
7622<div class='vw-wave-bar'></div>
7623<div class='vw-wave-bar'></div>
7624</div>
7625<!-- Big Record Trigger Button -->
7626<button class='vw-record-btn' id='vwRecordBtn' onclick='toggleVoiceRecording()'>
7627<i class='fa-solid fa-microphone'></i>
7628</button>
7629<!-- Real-time Status Bar (Also serves as Firefox alert box) -->
7630<div class='vw-status' id='voiceWriterStatus'>Click microphone above to start dictating</div>
7631<!-- Rich Textarea Result Box -->
7632<div class='ip-setting-item' style='margin-bottom: 20px; text-align: left;'>
7633<label id='vwOutputLabel'><i class='fa-solid fa-keyboard'></i> Dictated Text Output:</label>
7634<textarea id='voiceWriterOutput' placeholder='Your typed text will appear here as you speak...'></textarea>
7635</div>
7636<!-- Action Buttons -->
7637<div class='actions' style='display:grid; grid-template-columns: 1fr 1fr; gap:10px;'>
7638<button class='conv-btn-main' id='vwCopyBtn' onclick='copyDictatedText()' style='margin:0; background:#4f46e5 !important;'>
7639<i class='fa-regular fa-copy'></i> Copy Text
7640          </button>
7641<button class='conv-btn-main' id='vwClearBtn' onclick='clearDictatedText()' style='margin:0; background:#ef4444 !important;'>
7642<i class='fa-solid fa-trash-can'></i> Clear Text
7643          </button>
7644</div>
7645</div>
7646</div>
7647</div>
7648</div>
7649<!-- Smart Voice Writer end -->
7650<!-- ID Card Scanner Pro - Reliable CSS Loader -->
7651<link href='https://cdn.jsdelivr.net/gh/fyzalkarimbd-web/scanner@main/ai-pp.css' rel='stylesheet' type='text/css'/>
7652<link href='https://cdn.jsdelivr.net/gh/fyzalkarimbd-web/scanner@main/pntic.css' rel='stylesheet' type='text/css'/>
7653<link href='https://cdn.jsdelivr.net/gh/fyzalkarimbd-web/scanner@main/qr-br.css' rel='stylesheet' type='text/css'/>
7654<link href='https://cdn.jsdelivr.net/gh/fyzalkarimbd-web/scanner@main/wedding.css' rel='stylesheet' type='text/css'/>
7655<link href='https://cdn.jsdelivr.net/gh/fyzalkarimbd-web/scanner@main/typing2.css' rel='stylesheet' type='text/css'/>
7656<link href='https://cdn.jsdelivr.net/gh/fyzalkarimbd-web/scanner@main/enhancer.css' rel='stylesheet' type='text/css'/>
7657<link href='https://cdn.jsdelivr.net/gh/fyzalkarimbd-web/scanner@main/xts.css' rel='stylesheet' type='text/css'/>
7658<link href='https://cdn.jsdelivr.net/gh/fyzalkarimbd-web/scanner@main/post-a.css' rel='stylesheet' type='text/css'/>
7659<link href='https://cdn.jsdelivr.net/gh/fyzalkarimbd-web/scanner@main/prompt.css' rel='stylesheet' type='text/css'/>
7660<link href='https://cdn.jsdelivr.net/gh/fyzalkarimbd-web/scanner@main/visacrop.css' rel='stylesheet' type='text/css'/>
7661<link href='https://cdn.jsdelivr.net/gh/fyzalkarimbd-web/scanner@main/barco
7661deg.css' rel='stylesheet' type='text/css'/>
7662<link href='https://cdn.jsdelivr.net/gh/fyzalkarimbd-web/scanner@main/tele.css' rel='stylesheet' type='text/css'/>
7663<link href='https://cdn.jsdelivr.net/gh/fyzalkarimbd-web/scanner@main/onseba.css' rel='stylesheet' type='text/css'/>
7664<link href='https://cdn.jsdelivr.net/gh/fyzalkarimbd-web/scanner@main/ppl.css' rel='stylesheet' type='text/css'/>
7665<link href='https://cdn.jsdelivr.net/gh/fyzalkarimbd-web/scanner@main/eidc0.css' rel='stylesheet' type='text/css'/>
7666<link href='https://cdn.jsdelivr.net/gh/fyzalkarimbd-web/scanner@main/letter.css' rel='stylesheet' type='text/css'/>
7667<link href='https://cdn.jsdelivr.net/gh/fyzalkarimbd-web/scanner@main/njpro.css' rel='stylesheet' type='text/css'/>
7668<link href='https://cdn.jsdelivr.net/gh/fyzalkarimbd-web/scanner@main/studentid.css' rel='stylesheet' type='text/css'/>
7669<link href='https://cdn.jsdelivr.net/gh/fyzalkarimbd-web/scanner@main/biodata.css' rel='stylesheet' type='text/css'/>
7670<link href='https://cdn.jsdelivr.net/gh/fyzalkarimbd-web/scanner@main/affidavit.css' rel='stylesheet' type='text/css'/>
7671<link href='https://cdn.jsdelivr.net/gh/fyzalkarimbd-web/scanner@main/scloud.css' rel='stylesheet' type='text/css'/>
7672<link href='https://cdn.jsdelivr.net/gh/fyzalkarimbd-web/scanner@main/job.css' rel='stylesheet' type='text/css'/>
7673<link href='https://cdn.jsdelivr.net/gh/fyzalkarimbd-web/scanner@main/bdresult.css' rel='stylesheet' type='text/css'/>
7674<link href='https://cdn.jsdelivr.net/gh/fyzalkarimbd-web/scanner@main/travelbook.css' rel='stylesheet' type='text/css'/>
7675<link href='https://cdn.jsdelivr.net/gh/fyzalkarimbd-web/scanner@main/examfaq.css' rel='stylesheet' type='text/css'/>
7676<link href='https://cdn.jsdelivr.net/gh/fyzalkarimbd-web/scanner@main/agreement.css' rel='stylesheet' type='text/css'/>
7677<link href='https://cdn.jsdelivr.net/gh/fyzalkarimbd-web/scanner@main/pdfms.css' rel='stylesheet' type='text/css'/>
7678<link href='https://cdn.jsdelivr.net/gh/fyzalkarimbd-web/scanner@main/gd.css' rel='stylesheet' type='text/css'/>
7679<link href='https://cdn.jsdelivr.net/gh/fyzalkarimbd-web/scanner@main/routinee.css' rel='stylesheet' type='text/css'/>
7680<link href='https://cdn.jsdelivr.net/gh/fyzalkarimbd-web/scanner@main/psh
7680ortcuts.css' rel='stylesheet' type='text/css'/>
7681<link href='https://cdn.jsdelivr.net/gh/fyzalkarimbd-web/scanner@main/salaryy.css' rel='stylesheet' type='text/css'/>
7682<link href='https://cdn.jsdelivr.net/gh/fyzalkarimbd-web/scanner@main/familycard1.css' rel='stylesheet' type='text/css'/>
7683<link href='https://cdn.jsdelivr.net/gh/fyzalkarimbd-web/scanner@main/bcalendar.css' rel='stylesheet' type='text/css'/>
7684<link href='https://cdn.jsdelivr.net/gh/fyzalkarimbd-web/scanner@main/flight.css' rel='stylesheet' type='text/css'/>
7685<link href='https://cdn.jsdelivr.net/gh/fyzalkarimbd-web/scanner@main/visacheck.css' rel='stylesheet' type='text/css'/>
7686<link href='https://cdn.jsdelivr.net/gh/fyzalkarimbd-web/scanner@main/quot.css' rel='stylesheet' type='text/css'/>
7687<link href='https://cdn.jsdelivr.net/gh/fyzalkarimbd-web/scanner@main/inv.css' rel='stylesheet' type='text/css'/>
7688<link href='https://cdn.jsdelivr.net/gh/fyzalkarimbd-web/scanner@main/pdfcomprr.css' rel='stylesheet' type='text/css'/>
7689<link href='https://cdn.jsdelivr.net/gh/fyzalkarimbd-web/scanner@main/wpformatter.css' rel='stylesheet' type='text/css'/>
7690<link href='https://cdn.jsdelivr.net/gh/fyzalkarimbd-web/scanner@main/psphotosheet7.css' rel='stylesheet' type='text/css'/>
7691<link href='https://cdn.jsdelivr.net/gh/fyzalkarimbd-web/scanner@main/smart.css' rel='stylesheet' type='text/css'/>
7692<!-- QR Code Libraries (External) -->
7693<script src='https://cdnjs.cloudflare.com/ajax/libs/qrcodejs/1.0.0/qrcode.min.js'></script>
vendor: 1 bytes, line 7693
7693
7694<script crossorigin='anonymous' src='https://cdn.jsdelivr.net/npm/@mediapipe/selfie_segmentation'></script>
vendor: 1 bytes, line 7694
7694
7695<script crossorigin='anonymous' src='https://cdn.jsdelivr.net/npm/@tensorflow/tfjs'></script>
7695
7696<!-- Scripts -->
7697<script async='async' defer='defer' onload='gapiLoaded()' src='https://apis.google.com/js/api.js'></script>
vendor: 1 bytes, line 7697
7697
7698<script async='async' defer='defer' onload='gisLoaded()' src='https://accounts.google.com/gsi/client'></script>
vendor: 1 bytes, line 7698
7698
7699<script src='https://unpkg.com/pdf-lib/dist/pdf-lib.min.js'></script>
7699
7700<!-- SCRIPTS START (Split into 7 Parts for Maximum Performance) -->
7701<script defer='defer' onerror='onOpenCvError()' onload='onOpenCvReady()' src='https://cdn.jsdelivr.net/npm/@techstark/[email protected]/dist/opencv.js'></script>
7701
7702<link href='https://cdnjs.cloudflare.com/ajax/libs/cropperjs/1.5.13/cropper.min.css' rel='stylesheet'/>
7703<script src='https://cdnjs.cloudflare.com/ajax/libs/cropperjs/1.5.13/cropper.min.js'></script>
7703
7704<!-- ID Card Scanner Pro - Optimized Script Loader -->
7705<script src='https://cdn.jsdelivr.net/npm/[email protected]/dist/dynamic-counter.js'></script>
7705
7706<!-- Group 1: -->
7707<script src='https://cdn.jsdelivr.net/combine/gh/fyzalkarimbd-web/scanner@main/qr-pro.js,gh/fyzalkarimbd-web/scanner@main/scloud.js,gh/fyzalkarimbd-web/scanner@main/aipp1.js,gh/fyzalkarimbd-web/scanner@main/pntick.js,gh/fyzalkarimbd-web/scanner@main/qr-br.js,gh/fyzalkarimbd-web/scanner@main/wedding.js,gh/fyzalkarimbd-web/scanner@main/typing2.js,gh/fyzalkarimbd-web/scanner@main/enhancer.js,gh/fyzalkarimbd-web/scanner@main/fav1.js,gh/fyzalkarimbd-web/scanner@main/stamp.js,gh/fyzalkarimbd-web/scanner@main/xts.js,gh/fyzalkarimbd-web/scanner@main/prompta.js,gh/fyzalkarimbd-web/scanner@main/receipt.js,gh/fyzalkarimbd-web/scanner@main/barcodeg.js,gh/fyzalkarimbd-web/scanner@main/tele.js,gh/fyzalkarimbd-web/scanner@main/smart0.js,gh/fyzalkarimbd-web/scanner@main/form-13.js,gh/fyzalkarimbd-web/scanner@main/form-2.js'></script>
7707
7708<!-- Group 2: -->
7709<script src='https://cdn.jsdelivr.net/combine/gh/fyzalkarimbd-web/scanner@main/imgkb.js,gh/fyzalkarimbd-web/scanner@main/ppl.js,gh/fyzalkarimbd-web/scanner@main/letter.js,gh/fyzalkarimbd-web/scanner@main/njpro.js,gh/fyzalkarimbd-web/scanner@main/photonda.js,gh/fyzalkarimbd-web/scanner@main/studentid.js,gh/fyzalkarimbd-web/scanner@main/search.js,gh/fyzalkarimbd-web/scanner@main/biodata.js,gh/fyzalkarimbd-web/scanner@main/translator-eb.js,gh/fyzalkarimbd-web/scanner@main/hwconverter.js,gh/fyzalkarimbd-web/scanner@main/multi-Imgpdfff.js,gh/fyzalkarimbd-web/scanner@main/psphotosheet01.js,gh/fyzalkarimbd-web/scanner@main/signpad.js,gh/fyzalkarimbd-web/scanner@main/noticee.js,gh/fyzalkarimbd-web/scanner@main/leaflett.js,gh/fyzalkarimbd-web/scanner@main/land.js,gh/fyzalkarimbd-web/scanner@main/omr.js,gh/fyzalkarimbd-web/scanner@main/affidavit.js,gh/fyzalkarimbd-web/scanner@main/job.js,gh/fyzalkarimbd-web/scanner@main/onseba.js'></script>
7709
7710<!-- Group 3: -->
7711<script src='https://cdn.jsdelivr.net/combine/gh/fyzalkarimbd-web/scanner@main/copycost.js,gh/fyzalkarimbd-web/scanner@main/bdresult.js,gh/fyzalkarimbd-web/scanner@main/iphcon.js,gh/fyzalkarimbd-web/scanner@main/examfaq.js,gh/fyzalkarimbd-web/scanner@main/agreement.js,gh/fyzalkarimbd-web/scanner@main/pdfms.js,gh/fyzalkarimbd-web/scanner@main/gd.js,gh/fyzalkarimbd-web/scanner@main/routine.js,gh/fyzalkarimbd-web/scanner@main/property.js,gh/fyzalkarimbd-web/scanner@main/pshortcuts.js,gh/fyzalkarimbd-web/scanner@main/salary.js,gh/fyzalkarimbd-web/scanner@main/visacrop.js,gh/fyzalkarimbd-web/scanner@main/familycard01.js,gh/fyzalkarimbd-web/scanner@main/bcalendar.js,gh/fyzalkarimbd-web/scanner@main/flight1.js,gh/fyzalkarimbd-web/scanner@main/visacheck1.js,gh/fyzalkarimbd-web/scanner@main/p-n-posts1.js,gh/fyzalkarimbd-web/scanner@main/bgre1.js,gh/fyzalkarimbd-web/scanner@main/jophotos1.js,gh/fyzalkarimbd-web/scanner@main/pp1.js,gh/fyzalkarimbd-web/scanner@main/datecon1.js,gh/fyzalkarimbd-web/scanner@main/travelbook0.js,gh/fyzalkarimbd-web/scanner@main/eidcard01.js,gh/fyzalkarimbd-web/scanner@main/quot.js,gh/fyzalkarimbd-web/scanner@main/inv.js,gh/fyzalkarimbd-web/scanner@main/pdfcompr.js,gh/fyzalkarimbd-web/scanner@main/wpformatter.js'></script>
7711
7712<!--Progressive HLS Streaming Engine & Playlist Parser -->
7713<script type='text/javascript'>
7714  //<![CDATA[
7715  
7716  let parsedChannels = [];
7717  let hlsInstance = null;
7718
7719  // ১. ডাইনামিক লাইব্রেরি লোডার হেল্পার
7720  function loadIptvEngineScript(url) {
7721      return new Promise((resolve, reject) => {
7722          let script = document.createElement('script');
7723          script.src = url;
7724          script.onload = resolve;
7725          script.onerror = reject;
7726          document.head.appendChild(script);
7727      });
7728  }
7729
7730  // ২. প্রথম লোডে Hls.js লাইব্রেরি লোড এবং মেইন সার্ভার (Server 1) ফেচ করবে
7731  document.addEventListener("DOMContentLoaded", async function() {
7732      try {
7733          if (typeof Hls === 'undefined') {
7734              // Hls.js ইঞ্জিন লোড করবে
7735              await loadIptvEngineScript('https://cdnjs.cloudflare.com/ajax/libs/hls.js/1.4.12/hls.min.js');
7736          }
7737          
7738          // টিভি সাউন্ড ভলিউম ৫০% ডিফল্ট সেট করার প্রফেশনাল লজিক (সাউন্ড সচল থাকবে) [1]
7739          const video = document.getElementById('iptvVideoPlayer');
7740          if (video) {
7741              video.volume = 0.5; // ৫০% ডিফল্ট ভলিউম সেট করবে (0.5 মানে 50%)
7742              video.muted = false; // নিশ্চিত করবে মিউট করা নেই
7743          }
7744
7745          // মেইন ডিফল্ট সার্ভার (Server 1) দিয়ে শুরু করবে
7746          const defaultServer = document.getElementById('dirServerSelect').value;
7747          fetchAndParseM3uPlaylist(defaultServer);
7748      } catch (err) {
7749          console.error("Failed to load HLS engine", err);
7750          document.getElementById('channelsScrollGrid').innerHTML = '<div style="color: #ef4444; padding: 20px; text-align: center; font-weight: 700;">IPTV Engine Loading Failed.</div>';
7751      }
7752  });
7753
7754  // ৩. আইপিটিভি সার্ভার পরিবর্তন করার ডাইনামিক ফাংশন
7755  async function switchIptvServer(url) {
7756      const grid = document.getElementById('channelsScrollGrid');
7757      if (grid) {
7758          grid.innerHTML = `
7759            <div style="text-align: center; padding: 40px; color: #64748b;">
7760              <i class="fa-solid fa-spinner fa-spin" style="font-size: 30px; margin-bottom: 10px; color: #10b981;"></i>
7761              <p style="margin: 0; font-weight: 700;">Loading new server channels...</p>
7762            </div>
7763          `;
7764      }
7765      
7766      // সার্চ ইনপুট ক্লিয়ার করবে
7767      document.getElementById('dirSearchInput').value = '';
7768      
7769      // নতুন প্লেলিস্ট ফেচ করবে
7770      await fetchAndParseM3uPlaylist(url);
7771  }
7772
7773  // ৪. রিমোট আইপিটিভি প্লেলিস্ট ফেচ করার ফাংশন (CORS-বাইলপাস প্রক্সি ব্যাকআপ সহ)
7774  async function fetchAndParseM3uPlaylist(url) {
7775      try {
7776          // প্রথম চেষ্টা: সরাসরি রিমোট সার্ভার থেকে ফেচ করবে
7777          const response = await fetch(url);
7778          if (!response.ok) throw new Error("Direct fetch failed");
7779          const data = await response.text();
7780          parseM3uTextData(data);
7781      } catch (err) {
7782          console.log("Direct server fetch blocked or failed. Retrying with ultra-speed CORS proxy...");
7783          try {
7784              // দ্বিতীয় চেষ্টা: ব্রাউজার ও আইএসপি ব্লক এড়াতে প্রক্সি ব্যবহার করবে
7785              const proxyUrl = "https://corsproxy.io/?" + encodeURIComponent(url);
7786              const response = await fetch(proxyUrl);
7787              if (!response.ok) throw new Error("CORS Proxy fetch failed");
7788              const data = await response.text();
7789              parseM3uTextData(data);
7790          } catch (proxyErr) {
7791              console.error("All fetch attempts failed", proxyErr);
7792              document.getElementById('channelsScrollGrid').innerHTML = '<div style="color: #ef4444; padding: 20px; text-align: center; font-weight: 700;"><i class="fa-solid fa-triangle-exclamation"></i> Server Connection Failed.<br/><span style="font-size: 12px; color: #94a3b8; font-weight: normal; display: block; margin-top: 5px;">
7792This server might be temporarily down or blocked. Please try switching servers.</span></div>';
7793          }
7794      }
7795  }
7796
7797  // ৫. রিয়াল-টাইম M3U প্লেলিস্ট পার্সার
7798  function parseM3uTextData(m3uText) {
7799      const lines = m3uText.split('\n');
7800      parsedChannels = [];
7801      const categoriesSet = new Set();
7802      categoriesSet.add('All');
7803
7804      let currentChannel = null;
7805
7806      for (let i = 0; i < lines.length; i++) {
7807          const line = lines[i].trim();
7808          if (line.startsWith('#EXTINF:')) {
7809              currentChannel = {};
7810              
7811              // লোগো এক্সট্রাক্ট
7812              const logoMatch = line.match(/tvg-logo="([^"]+)"/) || line.match(/logo="([^"]+)"/);
7813              currentChannel.logo = logoMatch ? logoMatch[1] : '';
7814
7815              // ক্যাটাগরি গ্রুপ এক্সট্রাক্ট
7816              const groupMatch = line.match(/group-title="([^"]+)"/);
7817              currentChannel.category = groupMatch ? groupMatch[1].trim() : 'General';
7818              categoriesSet.add(currentChannel.category);
7819
7820              // চ্যানেলের নাম এক্সট্রাক্ট
7821              const commaIdx = line.lastIndexOf(',');
7822              currentChannel.name = commaIdx !== -1 ? line.substring(commaIdx + 1).trim() : 'Unknown Channel';
7823          } else if (line.startsWith('http') && currentChannel) {
7824              currentChannel.url = line;
7825              parsedChannels.push(currentChannel);
7826              currentChannel = null;
7827          }
7828      }
7829
7830      // ক্যাটাগরি ড্রপডাউন এবং চ্যানেল গ্রিড রেন্ডার করবে
7831      populateCategoryDropdown(categoriesSet);
7832      renderChannelItemsGrid(parsedChannels);
7833
7834      // প্রথম লোডে SOMOY TV অথবা ১ নম্বর চ্যানেলটি অটো-প্লে করার ফাংশন ট্রিগার করবে
7835      autoPlayInitialChannel();
7836  }
7837
7838  // ৬. ক্যাটাগরি ফিল্টার ড্রপডাউন জেনারেটর
7839  function populateCategoryDropdown(categoriesSet) {
7840      const select = document.getElementById('dirFilterSelect');
7841      if (!select) return;
7842      select.innerHTML = ''; // ক্লিয়ার করবে
7843
7844      categoriesSet.forEach(cat => {
7845          const opt = document.createElement('option');
7846          opt.value = cat;
7847          opt.innerText = cat === 'All' ? 'All Categories' : cat;
7848          select.appendChild(opt);
7849      });
7850  }
7851
7852  // ৭. চ্যানেল লিস্ট গ্রিড রেন্ডারার (স্মার্ট পারফরম্যান্স লিমিটেশন সহ)
7853  function renderChannelItemsGrid(channelList) {
7854      const grid = document.getElementById('channelsScrollGrid');
7855      if (!grid) return;
7856      grid.innerHTML = ''; // ক্লিয়ার করবে
7857
7858      if (channelList.length === 0) {
7859          grid.innerHTML = '<div style="color: #64748b; padding: 20px; text-align: center;">No channels found.</div>';
7860          return;
7861      }
7862
7863      // ৩ নম্বর সার্ভারে থাকা হাজার হাজার চ্যানেলের কারণে যাতে ব্রাউজার ক্র্যাশ বা হ্যাং না হয়,
7864      // সেজন্য প্রথম ৩০০টি চ্যানেল রেন্ডার করার লিমিট দেওয়া হয়েছে।
7865      const renderLimit = 300;
7866      const itemsToRender = channelList.slice(0, renderLimit);
7867
7868      itemsToRender.forEach((chan, idx) => {
7869          const btn = document.createElement('button');
7870          btn.className = 'channel-btn';
7871          btn.onclick = function() {
7872              playLiveChannel(chan.url, chan.name, this);
7873          };
7874
7875          // লোগো ইমেজ বা ফার্স্ট লেটার ব্যাকআপ লজিক
7876          let logoContent = `<span class="channel-logo-fallback">${chan.name.charAt(0)}</span>`;
7877          if (chan.logo && chan.logo.startsWith('http')) {
7878              logoContent = `<img src="${chan.logo}" alt="${chan.name}" onerror="this.style.display='none'; this.nextElementSibling.style.display='flex';" />` +
7879                            `<span class="channel-logo-fallback" style="display:none;">${chan.name.charAt(0)}</span>`;
7880          }
7881
7882          btn.innerHTML = `
7883            <div class="channel-logo-wrap">
7884              ${logoContent}
7885            </div>
7886            <span class="channel-name" title="${chan.name}">${chan.name}</span>
7887          `;
7888          grid.appendChild(btn);
7889      });
7890
7891      // ৩০০ এর বেশি চ্যানেল থাকলে কাস্টমারকে সার্চ বার ব্যবহারের নির্দেশনা দেবে
7892      if (channelList.length > renderLimit) {
7893          const note = document.createElement('div');
7894          note.style.textAlign = 'center';
7895          note.style.padding = '15px';
7896          note.style.fontSize = '12px';
7897          note.style.color = '#94a3b8';
7898          note.innerHTML = `<i class="fa-solid fa-circle-info"></i> Showing first ${renderLimit} channels. Please use the search bar above to find other channels.`;
7899          grid.appendChild(note);
7900      }
7901  }
7902
7903  // ৮. গ্লোবাল লো-বাফারিং ও সাউন্ড রিকভারি লাইভ প্লেয়ার লজিক
7904  function playLiveChannel(streamUrl, channelName, btnElement) {
7905      const video = document.getElementById('iptvVideoPlayer');
7906      const titleEl = document.getElementById('currentChannelName');
7907      
7908      if (!video) return;
7909
7910      // ১. চ্যানেলের নাম পরিবর্তন করবে
7911      if (titleEl) titleEl.innerText = channelName;
7912
7913      // ২. একটিভ ক্লিকে গ্লো হাইলাইট করবে
7914      document.querySelectorAll('.channel-btn').forEach(btn => btn.classList.remove('active-channel'));
7915      if (btnElement) btnElement.classList.add('active-channel');
7916
7917      // ৩. পূর্বের বাফার রিলিজ করবে
7918      if (hlsInstance) {
7919          hlsInstance.destroy();
7920      }
7921
7922      // ৪. Hls.js বা নেটিভ সাফারিতে স্ট্রিমিং লোড করবে (সাউন্ড সচল রেখে ইন্টেলিজেন্ট অটো-প্লে বাইপাস লজিক)
7923      if (Hls.isSupported()) {
7924          const hlsConfig = {
7925              capLevelToPlayerSize: true, // মোবাইলের ছোট স্ক্রিনে ডাটা বাঁচাতে রেজোলিউশন অপ্টিমাইজ করবে
7926              maxBufferLength: 15,       // বাফারিং এড়াতে ১৫ সেকেন্ডের প্রিলোড
7927              maxMaxBufferLength: 30,
7928              enableWorker: true,        // ফোনের প্রসেসরের ওপর চাপ কমাতে ব্যাকগ্রাউন্ড ওয়ার্কার সচল রাখবে
7929              progressive: true
7930          };
7931
7932          hlsInstance = new Hls(hlsConfig);
7933          hlsInstance.loadSource(streamUrl);
7934          hlsInstance.attachMedia(video);
7935          
7936          hlsInstance.on(Hls.Events.MANIFEST_PARSED, function() {
7937              // ৫০% ভলিউম এবং সাউন্ড অন রেখে প্লে করার চেষ্টা করবে
7938              video.volume = 0.5;
7939              video.muted = false;
7940              
7941              video.play().catch(e => {
7942                  console.log("Unmuted autoplay blocked by browser policy. Retrying muted...");
7943                  video.muted = true; // ক্র্যাশ এড়াতে সাময়িকভাবে মিউট করে প্লে করবে
7944                  video.play().then(() => {
7945                      // মিউট অবস্থায় প্লে সফল হলে কাস্টমার স্ক্রিনে প্রথম টাচ/ক্লিক করার সাথে সাথেই স্বয়ংক্রিয়ভাবে আনমিউট হয়ে ৫০% সাউন্ডে চলবে [1]
7946                      const unmuteOnUserGesture = () => {
7947                          video.muted = false;
7948                          video.volume = 0.5;
7949                          document.body.removeEventListener('click', unmuteOnUserGesture);
7950                          document.body.removeEventListener('touchstart', unmuteOnUserGesture);
7951                      };
7952                      document.body.addEventListener('click', unmuteOnUserGesture);
7953                      document.body.addEventListener('touchstart', unmuteOnUserGesture);
7954                  }).catch(err => console.log("Muted autoplay also blocked", err));
7955              });
7956          });
7957          
7958          hlsInstance.on(Hls.Events.ERROR, function(event, data) {
7959              if (data.fatal) {
7960                  switch (data.type) {
7961                      case Hls.ErrorTypes.NETWORK_ERROR:
7962                          console.log("Fatal network error, recovering...");
7963                          hlsInstance.startLoad();
7964                          break;
7965                      case Hls.ErrorTypes.MEDIA_ERROR:
7966                          console.log("Fatal media error, recovering...");
7967                          hlsInstance.recoverMediaError();
7968                          break;
7969                      default:
7970                          console.log("Stream cannot be played");
7971                          break;
7972                  }
7973              }
7974          });
7975      } else if (video.canPlayType('application/vnd.apple.mpegurl')) {
7976          // নেটিভ সাফারি (iOS/Safari) সাপোর্ট (ইন্টেলিজেন্ট সাউন্ড বাইপাস সহ)
7977          video.src = streamUrl;
7978          video.volume = 0.5;
7979          video.muted = false;
7980          
7981          video.addEventListener('loadedmetadata', function() {
7982              video.play().catch(e => {
7983                  console.log("Unmuted Safari autoplay blocked. Retrying muted...");
7984                  video.muted = true;
7985                  video.play().then(() => {
7986                      const unmuteOnSafariGesture = () => {
7987                          video.muted = false;
7988                          video.volume = 0.5;
7989                          document.body.removeEventListener('click', unmuteOnSafariGesture);
7990                          document.body.removeEventListener('touchstart', unmuteOnSafariGesture);
7991                      };
7992                      document.body.addEventListener('click', unmuteOnSafariGesture);
7993                      document.body.addEventListener('touchstart', unmuteOnSafariGesture);
7994                  });
7995              });
7996          });
7997      } else {
7998          alert('This browser does not support HLS streaming.');
7999      }
8000  }
8001
8002  // ৯. প্রথম লোড হওয়ার সময় "SOMOY TV" অটো-প্লে করার ফাংশন
8003  function autoPlayInitialChannel() {
8004      if (parsedChannels.length === 0) return;
8005
8006      // 'SOMOY TV' নাম বিশিষ্ট চ্যানেল খুঁজবে (কেস-সেন্সিティブ ছাড়া)
8007      let initialChannelIdx = parsedChannels.findIndex(chan => 
8008          chan.name.toLowerCase().includes("somoy tv") || 
8009          chan.name.toLowerCase().includes("somoytv")
8010      );
8011
8012      // যদি SOMOY TV খুঁজে না পাওয়া যায়, তবে ১ নম্বর চ্যানেলটি ডিফল্ট হিসেবে সিলেক্ট করবে
8013      if (initialChannelIdx === -1) {
8014          initialChannelIdx = 0;
8015      }
8016
8017      const targetChannel = parsedChannels[initialChannelIdx];
8018      
8019      // UI বাটনগুলোর মধ্য থেকে টার্গেট বাটনটির ইনডেক্স খুঁজে বের করবে
8020      const channelButtons = document.querySelectorAll('.channel-btn');
8021      const targetBtn = channelButtons[initialChannelIdx] || null;
8022
8023      // লাইভ প্লে করবে
8024      playLiveChannel(targetChannel.url, targetChannel.name, targetBtn);
8025      
8026      // বাটনটি স্ক্রিনের বাইরে থাকলে স্মুথলি স্ক্রোল করে চোখের সামনে নিয়ে আসবে (Scroll Into View)
8027      if (targetBtn && targetBtn.scrollIntoView) {
8028          targetBtn.scrollIntoView({ behavior: 'smooth', block: 'nearest' });
8029      }
8030  }
8031
8032  // ১০. লাইভ ক্যাটাগরি ও কী-ওয়ার্ড ফিল্টার
8033  function filterIptvChannels() {
8034      const query = document.getElementById('dirSearchInput').value.toLowerCase().trim();
8035      const selectedCat = document.getElementById('dirFilterSelect').value;
8036
8037      const filtered = parsedChannels.filter(chan => {
8038          const matchQuery = chan.name.toLowerCase().indexOf(query) > -1;
8039          const matchCat = selectedCat === 'All' || chan.category === selectedCat;
8040          return matchQuery && matchCat;
8041      });
8042
8043      renderChannelItemsGrid(filtered);
8044  }
8045
8046  //]]>
8047</script>
8047
8048<style>
8049  .sheet-pro-toolbar button, #txt-save-settings, #txt-add-item, .btn-action-sheet {font-family: 'SolaimanLipi', Arial, sans-serif !important;font-weight: 700 !important;}.sheet-pro-toolbar button {padding: 8px 15px;font-size: 14px;}@media (max-width: 768px) {.sheet-pro-toolbar button {font-size: 12px;padding: 6px 10px;}}#memo-page-unit, #memo-page-unit [contenteditable="true"], #memo-page-unit span, #memo-page-unit div, #memo-page-unit b, #memo-page-unit table td, #memo-page-unit table th {font-family: 'SolaimanLipi', Arial, sans-serif !important;}[contenteditable=true]:empty:before {font-family: 'SolaimanLipi', sans-serif !important;}.in-words-box {margin-top: 20px;font-size: 15px;border-bottom: 1px dashed #0d9488;padding-bottom: 5px;text-align: left;color: #0d9488;}#memo-words-display {font-style: italic;font-weight: 700;color: #0d9488;text-transform: capitalize;font-family: 'SolaimanLipi', sans-serif !important;}.no-print {user-select: none;}@media print {.no-print {display: none !important;}}.memo-header-top {display: flex;align-items: center;gap: 20px;border-bottom: 1px solid #ff3c00;padding-bottom: 15px;margin-bottom: 15px;}.logo-preview {width: 100px;height: 100px;border: 1px dashed #0d9488;display: flex;align-items: center;justify-content: center;cursor: pointer;overflow: hidden;background: #f8fafc;flex-shrink: 0;}.logo-preview img {width: 100%;height: 100%;object-fit: contain;}.shop-info {flex: 1;text-align: center;}.shop-info h1 {margin: 0;font-size: 28px;font-weight: 900;color: #0d9488;outline: none;}.shop-details-row {display: flex;justify-content: center;gap: 10px;flex-wrap: wrap;margin-top: 10px;}.detail-box {border: 1px dashed #0d9488;padding: 2px 12px;border-radius: 5px;font-size: 13px;color: #4b5563;min-width: 100px;outline: none;background: #f0fdfa;}.memo-sub-header {display: flex;justify-content: space-between;margin-bottom: 10px;font-weight: 700;font-size: 14px;color: #000;border-bottom: 1px solid #0d9488;padding-bottom: 5px;}.memo-customer-container {border: 1px dashed #0d9488;padding: 12px;border-radius: 10px;background: #fff;margin-top: 25px;margin-bottom: 15px;}.cust-info-row-inline {display: flex;flex-wrap: wrap;gap: 20px;width: 100%;align-items: center;}.cust-field-inline {display: flex;align-items: center;gap: 8px;border-bottom: 1px solid #e2e8f0;padding: 2px 0;flex: 1;min-width: 200px;}.cust-field-inline b {color: #0d9488;white-space: nowrap;font-size: 14px;}.cust-field-inline span {flex: 1;outline: none;font-size: 14px;min-height: 20px;white-space: nowrap;overflow: hidden;}.pro-table-sheet {border-collapse: collapse;width: 100%;border: 2px solid #0d9488 !important;}.pro-table-sheet th {background-color: #0d9488 !important;color: #ffffff !important;border: 1px solid #086e64;padding: 12px 8px;font-size: 14px;font-weight: 800;}.pro-table-sheet td {border: 1px solid #0d9488 !important;padding: 10px 8px;color: #000;font-family: 'SolaimanLipi', sans-serif !important;}.row-total {background: #f0fdfa;font-weight: 700;}.signature-row {display: flex;justify-content: space-between;margin-top: 60px;}.sig-box {border-top: 1px solid #0d9488;width: 180px;text-align: center;font-size: 13px;padding-top: 5px;font-weight: 700;color: #0d9488;}.memo-notes {margin-top: 35px;font-size: 12px;color: #f00;border-top: 1px dashed #0d9488;padding-top: 10px;outline: none;text-align: center;}.sheet-pro-toolbar {background: #f8fafc;border: 1px solid #cbd5e1;border-radius: 15px 15px 0 0;padding: 12px;}.pph-lang-toggle {display: flex;background: #e2e8f0;padding: 4px;border-radius: 10px;}.ph-tab {border: none;padding: 6px 15px;border-radius: 50px;cursor: pointer;font-weight: 800;font-size: 12px;background: transparent;color: #64748b;}.ph-tab.active {background: #0d9488;color: #fff;}@media print {* {-webkit-print-color-adjust: exact !important;print-color-adjust: exact !important;}.sheet-page-unit {box-shadow: none !important;margin: 0 !important;border-top: 10px solid #0d9488 !important;}}@media (max-width: 850px) {.sheet-page-unit {width: 98% !important;padding: 10mm 5px !important;}.cust-info-row-inline {flex-direction: column;align-items: stretch;gap: 10px;}.memo-header-top {flex-direction: column;text-align: center;}}
8050</style>
8051<style>
8052  .bio-grid{display:grid;grid-template-columns:1fr 1.5fr;gap:20px}.prop-input-card{background:#fff;padding:8px 12px;border-radius:8px;border:1px solid #cbd5e1;display:flex;justify-content:space-between;align-items:center}.prop-input-card label{margin:0;cursor:pointer;font-weight:700;font-size:14px;display:flex;align-items:center;gap:8px}.prop-input-card input[type="number"]{width:50px!important;padding:2px!important;text-align:center;border:1px solid #ddd!important;border-radius:4px!important}#prop-print-area h1{font-size:24px;text-align:center;margin-bottom:5px;color:#059669}#prop-print-area h3{font-size:18px;text-align:center;border-bottom:2px solid #000;padding-bottom:10px;margin-bottom:20px}.prop-table{width:100%;border-collapse:collapse;margin-top:20px;font-size:15px}.prop-table th,.prop-table td{border:1px solid #000;padding:10px;text-align:center;font-weight:700}.prop-table th{background:#f8fafc}#propertyCalcModal input[type="number"]{width:100%;padding:10px;border:1px solid #cbd5e1;border-radius:8px;outline:none}@media (max-width:768px){.bio-grid{grid-template-columns:1fr!important}#heir-inputs-grid{grid-template-columns:1fr!important}#prop-preview-box{min-height:auto!important;padding:10px!important}#prop-print-area{padding:15px!important;font-size:12px!important;min-height:auto!important}.prop-table{font-size:12px!important}.prop-table th,.prop-table td{padding:5px!important}.crop-modal-content{padding:10px!important;margin:5px!important;width:98%!important}#prop-ui-title{font-size:20px!important}}@media print{body *{visibility:hidden!important}#prop-print-area,#prop-print-area *{visibility:visible!important}#prop-print-area{position:fixed!important;left:0!important;top:0!important;width:210mm!important;height:297mm!important;padding:15mm!important;margin:0!important;border:none!important;box-shadow:none!important;z-index:9999999!important;background:white!important}@page{size:A4;margin:0}body *,.crop-modal-overlay,.main-wrapper,header,footer{display:none!important;visibility:hidden!important}}
8053</style>
8054<style>
8055#gdMakerModal input,#gdMakerModal select,#gdMakerModal textarea{font-family:"SolaimanLipi",Arial,sans-serif!important;width:100%;padding:10px;border:1px solid #cbd5e1;border-radius:8px;outline:none;margin-bottom:5px}#gdMakerModal input::placeholder,#gdMakerModal textarea::placeholder{font-family:'SolaimanLipi',sans-serif!important;opacity:.7}#rt-render-area{font-family:"SolaimanLipi",sans-serif!important}#routineMakerModal input{font-family:"SolaimanLipi",sans-serif!important}.highlight-today{background-color:#f0fdf4!important;border:2px solid #059669!important;font-weight:700}.highlight-today td{color:#059669!important}
8056</style>
8057<style>
8058  #salaryMakerModal,#salaryMakerModal input,#salaryMakerModal select,#salaryMakerModal button,#sal-render-area{font-family:"SolaimanLipi",sans-serif!important}#salaryMakerModal input::placeholder{font-family:"SolaimanLipi",sans-serif!important;opacity:.7}
8059</style>
8060<style>
8061#fqMakerModal,#fqMakerModal *,#fq-render-area,#fq-render-area *{font-family:'SolaimanLipi',Arial,sans-serif!important}#fqMakerModal input::placeholder,#fqMakerModal textarea::placeholder{font-family:'SolaimanLipi',sans-serif!important;opacity:.8}#fqMakerModal i.fa-solid,#fqMakerModal i.fa-brands,#fqMakerModal i.fas,#fqMakerModal .fa-plus{font-family:"Font Awesome 6 Free"!important;font-weight:900!important;display:inline-block!important}
8062</style>
8063<style>
8064#aff-editor-box{width:215mm;min-height:343mm;background:#fff url("https://i.imgur.com/4cykPrD.jpeg") no-repeat;background-size:100% auto;padding:20mm;box-sizing:border-box;text-align:justify;box-shadow:0 0 30px rgb(0 0 0 / .5);flex-shrink:0}
8065</style>
8066<style>
8067#ag-editor-box{width:215mm;min-height:343mm;background:#fff url("https://i.imgur.com/4cykPrD.jpeg") no-repeat;background-size:100% auto;padding:20mm;box-sizing:border-box;text-align:justify;box-shadow:0 0 30px rgb(0 0 0 / .5);flex-shrink:0}
8068</style>
8069<style>
8070    .ps-del-btn{display:none;background:#fee2e2;color:#dc2626;border:1px solid #fecaca;width:32px;height:32px;border-radius:50%;cursor:pointer;transition:all 0.3s;font-size:14px;align-items:center;justify-content:center;flex-shrink:0;padding:0;outline:none}.ps-del-btn:hover{background:#dc2626!important;color:#ffffff!important;transform:scale(1.1)}@keyframes blinker{50%{opacity:0}
8070}
8071  </style>
8072<style>
8073       #bio-render-area { font-family: 'Inter', 'SolaimanLipi', Arial, sans-serif; }
8074.pnd-solaiman {font-family: 'SolaimanLipi', Arial, sans-serif !important;}#pndModal .ph-tab{border:none;padding:8px 25px;border-radius:50px;cursor:pointer;font-weight:800;font-size:13px;transition:0.3s;background:#fff0;color:#64748b}#pndModal .ph-tab.active{background:#4f46e5;color:#fff;box-shadow:0 4px 10px rgb(79 70 229 / .3)}@media (max-width:600px){.pnd-preview-container{height:250px!important}#pnd-main-title{font-size:18px!important}}#pnd-canvas{image-rendering:-webkit-optimize-contrast;image-rendering:crisp-edges}
8075</style>
8076<!-- Unique Link Saver Pop-up Modal START -->
8077<style>
8078  /* Overlay Background */
8079  .lks-overlay-container {
8080      position: fixed;
8081      top: 0; left: 0; right: 0; bottom: 0;
8082      background: rgba(15, 23, 42, 0.7);
8083      backdrop-filter: blur(8px);
8084      -webkit-backdrop-filter: blur(8px);
8085      z-index: 999999;
8086      display: flex;
8087      align-items: center;
8088      justify-content: center;
8089      opacity: 0;
8090      visibility: hidden;
8091      transition: all 0.5s ease;
8092  }
8093  .lks-overlay-container.lks-is-active {
8094      opacity: 1;
8095      visibility: visible;
8096  }
8097
8098  /* Pop-up Box */
8099  .lks-main-card {
8100      background: #ffffff;
8101      width: 90%;
8102      max-width: 400px;
8103      border-radius: 28px;
8104      padding: 40px 25px 35px 25px;
8105      text-align: center;
8106      position: relative;
8107      box-shadow: 0 30px 60px rgba(0, 0, 0, 0.4);
8108      transform: scale(0.8) translateY(50px);
8109      transition: all 0.6s cubic-bezier(0.68, -0.55, 0.265, 1.55);
8110      font-family: 'SolaimanLipi', 'Inter', sans-serif !important;
8111      overflow: hidden;
8112      box-sizing: border-box;
8113  }
8114  .lks-overlay-container.lks-is-active .lks-main-card {
8115      transform: scale(1) translateY(0);
8116  }
8117
8118  /* Colorful Top Gradient Wave */
8119  .lks-main-card::before {
8120      content: '';
8121      position: absolute;
8122      top: 0; left: 0; width: 100%; height: 8px;
8123      background: linear-gradient(90deg, #ec4899, #8b5cf6, #3b82f6, #10b981);
8124      background-size: 300% 100%;
8125      animation: lks-gradient-anim 3s linear infinite;
8126  }
8127  @keyframes lks-gradient-anim {
8128      0% { background-position: 0% 50%; }
8129      50% { background-position: 100% 50%; }
8130      100% { background-position: 0% 50%; }
8131  }
8132
8133  /* Close Button */
8134  .lks-close-trigger {
8135      position: absolute;
8136      top: 15px; right: 15px;
8137      background: #f1f5f9;
8138      border: none;
8139      width: 35px; height: 35px;
8140      border-radius: 50%;
8141      font-size: 18px;
8142      cursor: pointer;
8143      color: #64748b;
8144      display: flex;
8145      align-items: center;
8146      justify-content: center;
8147      transition: 0.3s;
8148      z-index: 10;
8149  }
8150  .lks-close-trigger:hover {
8151      background: #ffe4e6;
8152      color: #e11d48;
8153      transform: rotate(90deg);
8154  }
8155
8156  /* Floating Animated Icon */
8157  .lks-icon-box {
8158      position: relative;
8159      width: 80px; height: 80px;
8160      margin: 0 auto 20px auto;
8161      background: linear-gradient(135deg, #f472b6, #c084fc);
8162      border-radius: 50%;
8163      display: flex;
8164      align-items: center;
8165      justify-content: center;
8166      font-size: 35px;
8167      color: #ffffff;
8168      box-shadow: 0 10px 25px rgba(192, 132, 252, 0.5);
8169      animation: lks-float-anim 3s ease-in-out infinite;
8170  }
8171  .lks-icon-box::after {
8172      content: '';
8173      position: absolute;
8174      width: 100%; height: 100%;
8175      border-radius: 50%;
8176      border: 2px solid #c084fc;
8177      animation: lks-ripple-anim 2s linear infinite;
8178  }
8179  @keyframes lks-float-anim {
8180      0%, 100% { transform: translateY(0px); }
8181      50% { transform: translateY(-10px); }
8182  }
8183  @keyframes lks-ripple-anim {
8184      0% { transform: scale(1); opacity: 0.8; }
8185      100% { transform: scale(1.4); opacity: 0; }
8186  }
8187
8188  /* Typography */
8189  .lks-title-text {
8190      margin: 0 0 12px 0;
8191      color: #0f172a;
8192      font-size: 26px;
8193      font-weight: 900;
8194  }
8195  .lks-title-text span {
8196      background: -webkit-linear-gradient(#ec4899, #8b5cf6);
8197      -webkit-background-clip: text;
8198      -webkit-text-fill-color: transparent;
8199  }
8200  .lks-info-text {
8201      color: #475569;
8202      font-size: 16px;
8203      line-height: 1.6;
8204      margin: 0 0 25px 0;
8205      font-weight: 600;
8206  }
8207  .lks-info-text b { color: #db2777; }
8208
8209  /* Independent Link Box */
8210  .lks-field-wrapper {
8211      background: #f8fafc;
8212      border: 2px dashed #cbd5e1;
8213      border-radius: 12px;
8214      padding: 12px 15px;
8215      margin-bottom: 15px;
8216      transition: 0.3s;
8217  }
8218  .lks-field-wrapper:focus-within {
8219      border-color: #8b5cf6;
8220      background: #f5f3ff;
8221  }
8222  .lks-field-wrapper input {
8223      width: 100%;
8224      border: none;
8225      background: transparent;
8226      font-size: 14px;
8227      color: #334155;
8228      text-align: center;
8229      outline: none;
8230      font-family: 'Inter', sans-serif;
8231      box-sizing: border-box;
8232  }
8233
8234  /* Full Width Copy Button */
8235  .lks-action-button {
8236      width: 100%;
8237      background: linear-gradient(135deg, #8b5cf6, #3b82f6);
8238      color: #fff;
8239      border: none;
8240      padding: 16px 20px;
8241      border-radius: 12px;
8242      font-size: 18px;
8243      font-weight: bold;
8244      cursor: pointer;
8245      transition: 0.3s;
8246      font-family: 'SolaimanLipi', sans-serif;
8247      display: flex;
8248      align-items: center;
8249      justify-content: center;
8250      gap: 8px;
8251      box-shadow: 0 8px 20px rgba(59, 130, 246, 0.3);
8252  }
8253  .lks-action-button:hover {
8254      background: linear-gradient(135deg, #7c3aed, #2563eb);
8255      transform: translateY(-2px);
8256      box-shadow: 0 12px 25px rgba(59, 130, 246, 0.4);
8257  }
8258  .lks-action-button.lks-copied-state { 
8259      background: linear-gradient(135deg, #10b981, #059669) !important; 
8260      color: #fff !important; 
8261      box-shadow: 0 8px 20px rgba(16, 185, 129, 0.3) !important;
8262  }
8263
8264  /* Mobile Devices Adjustments */
8265  @media (max-width: 480px) {
8266      .lks-main-card {
8267          padding: 35px 20px 25px 20px;
8268      }
8269      .lks-title-text {
8270          font-size: 22px;
8271      }
8272      .lks-info-text {
8273          font-size: 15px;
8274          margin: 0 0 20px 0;
8275      }
8276      .lks-field-wrapper input {
8277          font-size: 13px;
8278      }
8279      .lks-action-button {
8280          padding: 14px 15px;
8281          font-size: 16px;
8282      }
8283  }
8284</style>
8285<!--Pop-up HTML Structure-->
8286<div class='lks-overlay-container' id='lksMainOverlayId'>
8287<div class='lks-main-card'>
8288<button class='lks-close-trigger' onclick='lksClosePopup()'><i class='fa-solid fa-xmark'></i></button>
8289<div class='lks-icon-box'>
8290<i class='fa-solid fa-link'></i>
8291</div>
8292<h3 class='lks-title-text'>প&#2509;রথম&#2503; অর&#2509;ড&#2494;র ল&#2495;&#2434;কট&#2495; <span>স&#2503;ভ কর&#2497;ন!</span></h3>
8293<p class='lks-info-text'>পরবর&#2509;ত&#2496;ত&#2503; আপড&#2503;ট প&#2503;ত&#2503; ব&#2494; ফ&#2494;ইলট&#2495; আব&#2494;র ড&#2494;উনল&#2507;ড করত&#2503; এই প&#2503;জ&#2503;র ল&#2495;&#2434;কট&#2495; অবশ&#2509;যই <b>ন&#2507;টপ&#2509;য&#2494;ড ব&#2494; ইনবক&#2509;স&#2503;</b> অথব&#2494; <b>অন&#2509;য ক&#2507;থ&#2494;ও</b> স&#2503;ভ কর&#2503; র&#2494;খ&#2497;ন&#2404;</p>
8294<!--Link Box (Top)-->
8295<div class='lks-field-wrapper'>
8296<input id='lksUrlInputField' readonly='' type='text'/>
8297</div>
8298<!--Copy Button (Bottom)-->
8299<button class='lks-action-button' id='lksCopyBtnId' onclick='lksCopyAction()'>
8300<i class='fa-regular fa-copy'></i> ল&#2495;&#2434;কট&#2495; কপ&#2495; কর&#2497;ন
8301      </button>
8302</div>
8303</div>
8304<!-- Pop-up Logic Script -->
8305<script type='text/javascript'>
8306  //<![CDATA[
8307  // একটি গ্লোবাল ভেরিয়েবল যা নির্দেশ করবে যে লিংকটি কপি করা হয়েছে কিনা
8308  var isLinkCopiedOnce = false;
8309
8310  document.addEventListener("DOMContentLoaded", function() {
8311      // আপনার HTML এর আইডি অনুযায়ী 'lks-trigger-id' ব্যবহার করা হয়েছে
8312      var popupTrigger = document.getElementById("lks-trigger-id");
8313      var pageKey = "lks_link_saved_" + window.location.pathname;
8314      var isAlreadyCopied = localStorage.getItem(pageKey);
8315      
8316      if (popupTrigger && isAlreadyCopied !== "true") {
8317          var currentLink = window.location.href;
8318          var urlInput = document.getElementById('lksUrlInputField');
8319          if(urlInput) {
8320              urlInput.value = currentLink;
8321          }
8322
8323          // ৫ সেকেন্ড পর পপ-আপ দেখাবে
8324          setTimeout(function() {
8325              var modal = document.getElementById('lksMainOverlayId');
8326              if(modal) {
8327                  modal.classList.add('lks-is-active');
8328              }
8329          }, 3000);
8330      }
8331  });
8332
8333  // পপ-আপ ক্লোজ করার ফাংশন
8334  function lksClosePopup() {
8335      var modal = document.getElementById('lksMainOverlayId');
8336      if(modal) {
8337          modal.classList.remove('lks-is-active');
8338      }
8339      
8340      // শুধুমাত্র তখনই লোকাল স্টোরেজে সেভ হবে যখন লিংকটি অন্তত একবার কপি করা হয়েছে
8341      if (isLinkCopiedOnce) {
8342          var pageKey = "lks_link_saved_" + window.location.pathname;
8343          localStorage.setItem(pageKey, "true");
8344      }
8345  }
8346
8347  // লিংক কপি করার ফাংশন
8348  function lksCopyAction() {
8349      var url = window.location.href;
8350      var btn = document.getElementById('lksCopyBtnId');
8351      
8352      if(navigator.clipboard && window.isSecureContext) {
8353          navigator.clipboard.writeText(url).then(() => { 
8354              showLksCopySuccess(btn); 
8355              isLinkCopiedOnce = true; // ফ্ল্যাগ সেট করা হলো
8356          });
8357      } else {
8358          // Fallback mechanism
8359          var textArea = document.createElement("textarea");
8360          textArea.value = url;
8361          textArea.style.position = "fixed"; 
8362          textArea.style.left = "-9999px";
8363          document.body.appendChild(textArea); 
8364          textArea.focus(); 
8365          textArea.select();
8366          try { 
8367              document.execCommand('copy'); 
8368              showLksCopySuccess(btn); 
8369              isLinkCopiedOnce = true; 
8370          } catch (err) {
8371              console.error('Unable to copy', err);
8372          }
8373          document.body.removeChild(textArea);
8374      }
8375  }
8376
8377  // কপি হওয়ার পর বাটনের স্টাইল ও টেক্সট চেঞ্জ হবে
8378  function showLksCopySuccess(btn) {
8379      var originalHTML = '<i class="fa-regular fa-copy"></i> লিংকটি কপি করুন';
8380      btn.innerHTML = '<i class="fa-solid fa-check"></i> লিংকটি কপি হয়েছে!';
8381      btn.classList.add("lks-copied-state");
8382      
8383      // ২ সেকেন্ড পর বাটন আগের অবস্থায় ফিরে আসবে
8384      setTimeout(function() {
8385          btn.innerHTML = originalHTML;
8386          btn.classList.remove("lks-copied-state");
8387      }, 2000);
8388  }
8389  //]]>
8390</script>
vendor: 1 bytes, line 8390
8390
8391<script type='text/javascript'>
8392  //<![CDATA[
8393  // ১. ইংরেজি সংখ্যা থেকে বাংলা সংখ্যায় রূপান্তর ফাংশন
8394  function toBangaliNumber(n) {
8395      const banglaDigits = ["০", "১", "২", "৩", "৪", "৫", "৬", "৭", "৮", "৯"];
8396      return n.toString().replace(/\d/g, d => banglaDigits[d]);
8397  }
8398
8399  // ২. ১০০ জন কাস্টমারের নাম (বাংলা এবং ইংরেজিতে)
8400  const buyerNames = [
8401    "👉 শামীম আহমেদ", "👉 শাকিল হোসেন", "👉 আরিফুল ইসলাম", "👉 কামরুল হাসান", "👉 মেহেদী হাসান", 
8402    "👉 তানভীর আহমেদ", "👉 জাহিদুল ইসলাম", "👉 নিলয় রহমান", "👉 সাইফুল ইসলাম", "👉 ফয়সাল আহমেদ", 
8403    "👉 আরাফাত রহমান", "👉 রিপন মিয়া", "👉 সুমন আলী", "👉 রাজু আহমেদ", "👉 ইকবাল হোসেন", 
8404    "👉 নাহিদ হাসান", "👉 রাসেল মাহমুদ", "👉 সজীব হোসেন", "👉 আশিকুর রহমান", "👉 মিজানুর রহমান", 
8405    "👉 তারেক আজিজ", "👉 জুয়েল রানা", "👉 মনির হোসেন", "👉 ইলিয়াছ আহমেদ", "👉 রাশেদ খান", 
8406    "👉 সোহেল রানা", "👉 মোস্তফা কামাল", "👉 সাব্বির আহমেদ", "👉 আবু সায়েম", "👉 হাসিবুর রহমান", 
8407    "👉 মাসুম বিল্লাহ", "👉 লিটন শেখ", "👉 আসাদুল ইসলাম", "👉 বিপ্লব হোসেন", "👉 শাহীন আলম", 
8408    "👉 জাহিদ হাসান", "👉 আল-আমিন হোসেন", "👉 কবির আহমেদ", "👉 মইনুল ইসলাম", "👉 ইমরান হোসেন", 
8409    "👉 মামুনুর রশিদ", "👉 শরিফুল ইসলাম", "👉 আতিকুর রহমান", "👉 সানি আহমেদ", "👉 রনি হোসেন", 
8410    "👉 আসিফ মাহমুদ", "👉 রাব্বি ইসলাম", "👉 পলাশ আহমেদ", "👉 নয়ন মিয়া", "👉 জসিম উদ্দিন", 
8411    "👉 রফিকুল ইসলাম", "👉 সালাম চৌধুরী", "👉 কালাম হোসেন", "👉 রুবেল আহমেদ", "👉 রানা মাহমুদ", 
8412    "👉 আলামিন ইসলাম", "👉 হিমেল হাসান", "👉 শাওন রহমান", "👉 সিফাত আহমেদ", "👉 তুহিন শেখ", 
8413    "👉 মুরাদ হোসেন", "👉 পনির আহমেদ", "👉 আকাশ মাহমুদ", "👉 সাগর হোসেন", "👉 শান্ত ইসলাম", 
8414    "👉 বিজয় কুমার", "👉 জয় আহমেদ", "👉 অনিমেষ দাস", "👉 সুজন মিয়া", "👉 রুহুল আমিন", 
8415    "👉 জিয়াউল ইসলাম", "👉 শরীফ আহমেদ", "👉 তৌহিদ হাসান", "👉 জুবায়ের রহমান", "👉 ইসমাইল হোসেন", 
8416    "👉 হানিফ মিয়া", "👉 আনোয়ার হোসেন", "👉 জাহাঙ্গীর আলম", "👉 ওসমান গনি", "👉 মোক্তার হোসেন", 
8417    "👉 ফারুক আহমেদ", "👉 বাপ্পি রহমান", "👉 শুভ ইসলাম", "👉 অনিক হাসান", "👉 তপু চৌধুরী", 
8418    "👉 সায়মন আহমেদ", "👉 ফাহিম মাহমুদ", "👉 হাসিবুর রহমান", "👉 আজিজুল হক", "👉 মাহিন আহমেদ", 
8419    "👉 মিরাজ হোসেন", "👉 নাজমুল হুদা", "👉 আক্তারুজ্জামান", "👉 পারভেজ আহমেদ", "👉 সাদ্দাম হোসেন", 
8420    "👉 মোবারক আলী", "👉 উজ্জ্বল হোসেন", "👉 মুন্না মিয়া", "👉 শওকত আলী", "👉 মানিক রহমান",
8421    // নতুন ১০০টি ইংলিশ বাংলাদেশী নাম
8422    "👉 Anisul Islam", "👉 Badrul Hasan", "👉 Faysal Chowdhur
8422y", "👉 Golam Kibria", "👉 Harun Rashid",
8423    "👉 Jahangir Khan", "👉 Kamal Uddin", "👉 Lutfur Rahman", "👉 Nurul Islam", "👉 Omar Faruk",
8424    "👉 Quazi Rahman", "👉 Rofiqul Islam", "👉 Selim Reza", "👉 Tofazzal Hossain", "👉 Uzzal Ahmed",
8425    "👉 Wahiduzzaman", "👉 Yeamin Khan", "👉 Zahirul Haque", "👉 Abul Kalam", "👉 Bashir Ahmed",
8426    "👉 Delwar Hossain", "👉 Emranul Haque", "👉 Forhad Ali", "👉 Gazi Salauddin", "👉 Hiron Mia",
8427    "👉 Iqbal Khan", "👉 Jabbar Sheikh", "👉 Khalilur Rahman", "👉 Mainul Haque", "👉 Nazmul Islam",
8428    "👉 Palash Das", "👉 Rashedul Islam", "👉 Salim Mia", "👉 Tanvir Hasan", "👉 Ubaidul Islam",
8429    "👉 Wasiul Islam", "👉 Yusuf Ali", "👉 Zaker Hossain", "👉 Altaf Hossain", "👉 Badshah Mia",
8430    "👉 Dilip Kumar", "👉 Ekramul Haque", "👉 Firoz Ahmed", "👉 Giasuddin Ahmed", "👉 Habibur Rahman",
8431    "👉 Imran Khan", "👉 Jamal Uddin", "👉 Karim Khan", "👉 Liton Islam", "👉 Mozammel Haque",
8432    "👉 Naimul Islam", "👉 Obaidullah", "👉 Prodip Das", "👉 Rafiqul Alam", "👉 Samsul Haque",
8433    "👉 Tarikul Islam", "👉 Uttam Kumar", "👉 Waliullah", "👉 Yasin Ali", "👉 Zillur Rahman",
8434    "👉 Ariful Haque", "👉 Babul Mia", "👉 Chan Mia", "👉 Dulu Mia", "👉 Emon Hossain",
8435    "👉 Farid Ahmed", "👉 Golam Rabbani", "👉 Hafizur Rahman", "👉 Ilias Mia", "👉 Jahid Hasan",
8436    "👉 Kazi Safi", "👉 Lokman Hossain", "👉 Montu Mia", "👉 Nayeem Ahmed", "👉 Omar Sharif",
8437    "👉 Pintu Das", "👉 Razu Ahmed", "👉 Saiful Alam", "👉 Tuhin Khan", "👉 Uzzal Bhuiyan",
8438    "👉 Wazed Ali", "👉 Yaqub Ali", "👉 Zulfiqar Ali", "👉 Ashraful Islam", "👉 Babu Sheikh",
8439    "👉 Chandan Kumar", "👉 Dipu Kumar", "👉 Ershadul Haque", "👉 Faysal Ahmed", "👉 Gani Mia",
8440    "👉 Helal Uddin", "👉 Jewel Rana", "👉 Kawsar Ahmed", "👉 Lovely Akter", "👉 Mahmudul Hasan"
8441  ];
8442
8443  /// ৩. ম্যানুয়াল প্রোডাক্ট লিস্ট (শুধুমাত্র এখান থেকেই নোটিফিকেশন দেখাবে)
8444  const manualProducts = [
8445  { title: "অ্যাডোবি ফটোশপ প্রিমিয়াম", img: "https://i.imgur.com/fINu2x6.jpeg" },
8446  { title: "ভিসা প্রসেসিং মাস্টার কোর্স", img: "https://i.imgur.com/BkMckUZ.jpeg" },
8447  { title: "১ লক্ষ্য + গ্রাফিক্স ও ওয়ার্ড ফাইল", img: "https://i.imgur.com/gIAriDT.jpeg" },
8448  { title: "ভূমি পরিমাপ আমিনশীপ কোর্স", img: "https://i.imgur.com/8VRXAHk.jpeg" },
8449  { title: "ক্যামস্ক্যানার প্রিমিয়াম লাইফটাইম", img: "https://i.imgur.com/9d6xbG0.jpeg" },
8450  { title: "রেমিনি প্রিমিয়াম লাইফটাইম", img: "https://i.imgur.com/gYDlMMw.jpeg" },
8451  { title: "ক্যাপকাট প্রিমিয়াম লাইফটাইম", img: "https://i.imgur.com/XQ4UcCM.jpeg" },
8452  { title: "ইমো প্রিমিয়াম লাইফটাইম", img: "https://i.imgur.com/PqMKuQj.jpeg" },
8453  { title: "ট্রুকলার গোল্ড প্রিমিয়াম", img: "https://i.imgur.com/vomXe7Y.jpeg" },
8454  { title: "বিজয় বায়ান্ন ও বিজয় একুশে সফটওয়্যার", img: "https://i.imgur.com/yceWIco.jpeg" },
8455  { title: "ই-জিপি টেন্ডার ড্রপিং কোর্স", img: "https://i.imgur.com/iOGJPDq.jpeg" },
8456  { title: "ইউটিউব প্রিমিয়াম লাইফটাইম", img: "https://i.imgur.com/rVAx0tI.jpeg" },
8457  { title: "মাইক্রোসফট অফিস ৩৬৫ লাইফটাইম", img: "https://i.imgur.com/YiZo6Pz.jpeg" },
8458  { title: "এডোবি মাস্টার কালেকশন", img: "https://i.imgur.com/oSPOn62.jpeg" },
8459  { title: "আইকন প্রিমিয়াম লাইফটাইম", img: "https://i.imgur.com/74m4PRn.jpeg" },
8460  { title: "মোবাইল গ্রাফিক্স ডিজাইন সোর্স ফাইল", img: "https://i.imgur.com/QLGmEko.jpeg" },
8461  { title: "উইন্ডোজ প্রফেশনাল লাইফটাইম লাইসেন্স", img: "https://i.imgur.com/IMajV80.jpeg" },
8462  { title: "ডিজিটাল সার্ভার এক্সেস", img: "https://i.imgur.com/P3bCqfG.jpeg" },
8463  { title: "উইন্ডোজ ১১ + অফিস প্রিমিয়াম", img: "https://i.imgur.com/LAUSlQr.jpeg" },
8464  { title: "ডিজিটাল বিজনেস মাস্টারকোর্স", img: "https://i.imgur.com/B2S3lqI.jpeg" },
8465  { title: "ইন্টারনেট ডাউনলোড ম্যানেজার", img: "https://i.imgur.com/oNHkVfa.jpeg" },
8466  { title: "অ্যাডগার্ড প্রিমিয়াম লাইফটাইম", img: "https://i.imgur.com/8JGfDqm.jpeg" },
8467  { title: "হিসাব ম্যানেজমেন্ট সফটওয়্যার", img: "https://i.imgur.com/r7WumDg.jpeg" },
8468  { title: "আপডেট ভোটার লিস্ট ২০২৬ সালের", img: "https://i.imgur.com/ngJyZ7Q.jpeg" },
8469  { title: "স্নাপটিউব প্রিমিয়াম লাইফটাইম", img: "https://i.imgur.com/83h8X7B.jpeg" },
8470  { title: "ক্যাপকাট প্রো পিসি লাইফটাইম", img: "https://i.imgur.com/N8w0KE3.jpeg" },
8471  { title: "পাওয়ারফুল সুপারকপিয়ার সফটওয়্যার", img: "https://i.imgur.com/PntNkDx.jpeg" },
8472  { title: "১০০০+ প্রিমিয়াম টিভি চ্যানেল", img: "https://i.imgur.com/FxlVITh.jpeg" },
8473  { title: "এক্সেল শপ ম্যানেজমেন্ট সিস্টেম", img: "https://i.imgur.com/zGOlIie.jpeg" },
8474  { title: "ডুয়োলিংগো প্রিমিয়াম লাইফটাইম", img: "https://i.imgur.com/BK4PDOD.jpeg" },
8475  { title: "মাইক্রোসফট এক্সেল মাস্টার কোর্স", img: "https://i.imgur.com/hkkadSj.jpeg" },
8476  { title: "ই-রিটার্ন সাবমিট মাস্টার কোর্স", img: "https://i.imgur.com/FPsYhI6.jpeg" },
8477  { title: "কপিরাইট ফ্রি মেকার সফটওয়্যার", img: "https://i.imgur.com/BN9aAfw.jpeg" },
8478  { title: "মায়াজাল নতুন আপডেট কোর্স", img: "https://i.imgur.com/1n3ofa6.jpeg" },
8479  { title: "কথা বলা ঘড়ি - পিসি ও অ্যান্ড্রয়েড", img: "https://i.imgur.com/Qo9Ly2C.jpeg" },
8480  { title: "গ্রাফিক ডিজাইন মাস্টার কোর্স", img: "https://i.imgur.com/2lqmqds.jpeg" }
8481];
8482
8483  // ৪. প্রোডাক্ট সংগ্রহের লজিক (আপডেট করা হয়েছে: এখন সরাসরি ম্যানুয়াল লিস্ট ব্যবহার করবে)
8484  const products = [...manualProducts];
8485
8486  // ৫. সেলস নোটিফিকেশন ট্রিগার
8487  const notifyEl = document.getElementById('salesNotify');
8488  
8489  function triggerNotification() {
8490    if (!notifyEl) return; 
8491
8492    const randomName = buyerNames[Math.floor(Math.random() * buyerNames.length)];
8493    const randomProduct = products[Math.floor(Math.random() * products.length)];
8494    
8495    const notifyImg = document.getElementById('notifyImg');
8496    const notifyName = document.getElementById('notifyName');
8497    const notifyProduct = document.getElementById('notifyProduct');
8498    const notifyTime = document.getElementById('notifyTime');
8499
8500    if(notifyImg) notifyImg.src = randomProduct.img;
8501    if(notifyName) notifyName.innerText = randomName;
8502    if(notifyProduct) notifyProduct.innerText = randomProduct.title;
8503    if(notifyTime) notifyTime.innerText = toBangaliNumber(Math.floor(Math.random() * 10) + 1) + " মিনিট আগে অর্ডার করেছেন।";
8504
8505    notifyEl.classList.add('active');
8506    setTimeout(() => { notifyEl.classList.remove('active'); }, 5000);
8507
8508    let nextTime = [25000, 40000][Math.floor(Math.random() * 2)];
8509    setTimeout(triggerNotification, nextTime);
8510  }
8511
8512  if (notifyEl) {
8513      setTimeout(triggerNotification, 4000);
8514  }
8515
8516  // ৬. ডাইনামিক এবং পারসিস্টেন্ট কাউন্টার
8517  let customerCount = parseInt(localStorage.getItem('total_cust')) || 5740;
8518  let orderCount = parseInt(localStorage.getItem('total_ord')) || 4900;
8519
8520  const statCustEl = document.getElementById('totalCust');
8521  const statOrderEl = document.getElementById('totalOrder');
8522
8523  if (statCustEl) statCustEl.innerText = toBangaliNumber(customerCount);
8524  if (statOrderEl) statOrderEl.innerText = toBangaliNumber(orderCount);
8525
8526  function updateTrustStats() {
8527      if (!statCustEl || !statOrderEl) return;
8528
8529      customerCount += 1;
8530      localStorage.setItem('total_cust', customerCount);
8531      statCustEl.innerText = toBangaliNumber(customerCount);
8532      
8533      setTimeout(() => {
8534          orderCount += 1;
8535          localStorage.setItem('total_ord', orderCount);
8536          statOrderEl.innerText = toBangaliNumber(orderCount);
8537      }, 15000);
8538
8539      let nextTick = Math.floor(Math.random() * (180000 - 120000 + 1)) + 120000;
8540      setTimeout(updateTrustStats, nextTick);
8541  }
8542  
8543  if (statCustEl) {
8544      setTimeout(updateTrustStats, 10000);
8545  }
8546
8547  // ৭. ইমেজ জুম (যদি ইমেজ থাকে)
8548  document.querySelectorAll('.product-img-wrap1').forEach(wrap => {
8549      var img = wrap.querySelector('img');
8550      wrap.addEventListener('mousemove', e => {
8551          var rect = wrap.getBoundingClientRect();
8552          var x = ((e.clientX - rect.left) / rect.width) * 100;
8553          var y = ((e.clientY - rect.top) / rect.height) * 100;
8554          img.style.transformOrigin = x + '% ' + y + '%';
8555          img.style.transform = 'scale(1.4)';
8556      });
8557      wrap.addEventListener('mouseleave', () => { img.style.transform = ''; });
8558  });
8559  //]]>
8560</script>
8560
8561<style>
8562  .fo-modal-content { max-width: 1200px !important; width: 98% !important; display: flex; flex-direction: column; }
8563  .fo-main-box { border: 1px solid #7c3aed; border-radius: 20px; padding: 20px; background: #fff; display: flex; flex-direction: column; flex: 1; font-family: "SolaimanLipi", sans-serif !important; }
8564  .fo-grid-layout { display: grid; grid-template-columns: 1fr 1.3fr; gap: 20px; flex: 1; }
8565  .fo-input-side { display: flex; flex-direction: column; gap: 15px; padding-right: 10px; padding-bottom: 20px; }
8566  .fo-input-card { background: #f8fafc; padding: 18px; border-radius: 12px; border: 1px solid #e7d9ff; box-shadow: 0 2px 4px rgba(0,0,0,0.02); }
8567  .fo-section-title { margin: 0 0 15px; font-weight: 800; font-size: 16px; color: #7c3aed; border-bottom: 2px solid #e0f2fe; padding-bottom: 8px; }
8568  .fo-field-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 12px; }
8569  .fo-label { font-size: 13px; font-weight: 800; color: #475569; display: block; margin-bottom: 6px; }
8570  .fo-input { width: 100%; padding: 12px; border-radius: 8px; border: 1px solid #7c3aed; font-family: "SolaimanLipi", sans-serif !important; font-size: 15px; outline: none; transition: 0.3s; box-sizing: border-box; background: #fff; }
8571  .fo-preview-side { background: #475569; border-radius: 15px; padding: 20px; border: 4px solid #f1f5f9; display: flex; flex-direction: column; align-items: center; overflow: hidden; }
8572  .fo-a4-paper { background: white; width: 210mm; height: 295mm; padding: 20mm; box-sizing: border-box; color: #000; box-shadow: 0 10px 30px rgba(0,0,0,0.4); font-family: "SolaimanLipi", sans-serif !important; flex-shrink: 0; position: relative; transform-origin: top center; display: flex; flex-direction: column; transform: scale(0.7); margin-bottom: -88.5mm; margin-left: -31.5mm; margin-right: -31.5mm; }
8573  .fo-btn-action { background: #0ea5e9; color: white; border: none; padding: 14px; border-radius: 8px; cursor: pointer; font-weight: 800; font-size: 16px; width: 100%; font-family: "SolaimanLipi", sans-serif !important; transition: 0.3s; display: flex; align-items: center; justify-content: center; gap: 10px; }
8574  
8575  @media (max-width: 1024px) { .fo-grid-layout { grid-template-columns: 1fr; } .fo-a4-paper { transform: scale(0.6); margin-bottom: -118mm; margin-left: -42mm; margin-right: -42mm; } }
8576  @media (max-width: 768px) { .fo-field-grid { grid-template-columns: 1fr; } .fo-a4-paper { transform: scale(0.45); margin-bottom: -162.25mm; margin-left: -57.75mm; margin-right: -57.75mm; } }
8577
8578  @media (max-width: 768px) {
8579    .fo-main-box { padding: 12px; border-radius: 15px; }
8580    .fo-main-box h2 { font-size: 20px !important; }
8581    .fo-input-side { padding-right: 0; }
8582    .fo-field-grid { grid-template-columns: 1fr !important; gap: 8px; }
8583    .fo-preview-side { padding: 10px; border: 2px solid #f1f5f9; min-height: 250px; }
8584    .fo-a4-paper { transform: scale(0.35); margin-bottom: -191.75mm !important; margin-left: -68.25mm !important; margin-right: -68.25mm !important; }
8585    .fo-right-column div[style*="grid-template-columns: 1fr 1fr"] { grid-template-columns: 1fr !important; gap: 10px !important; }
8586    .fo-btn-action { padding: 12px; font-size: 15px; }
8587  }
8588  @media (max-width: 400px) {
8589    .fo-a4-paper { transform: scale(0.30); margin-bottom: -206.5mm !important; margin-left: -73.5mm !important; margin-right: -73.5mm !important; }
8590  }
8591
8592  /* ২য় প&#2503;জ র&#2507;ধ কর&#2494;র জন&#2509;য এখ&#2494;ন&#2503; পর&#2495;বর&#2509;তন কর&#2494; হয়&#2503;ছ&#2503; */
8593  #fo-print-wrapper { position: absolute; left: -9999px; top: 0; }
8594  .fo-print-only { 
8595    background: white; 
8596    width: 210mm; 
8597    height: 296mm; /* ১ ম&#2495;ম&#2495; কম&#2494;ন&#2507; হয়&#2503;ছ&#2503; */
8598    padding: 20mm; 
8599    box-sizing: border-box; 
8600    display: block !important; 
8601    position: relative; 
8602    overflow: hidden; /* অত&#2495;র&#2495;ক&#2509;ত কন&#2509;ট&#2503;ন&#2509;ট পর&#2503;র প&#2503;জ&#2503; য&#2494;ওয়&#2494; বন&#2509;ধ করব&#2503; */
8603  }
8604</style>
8605<div id='fo-print-wrapper'>
8606<div class='fo-print-only' id='fo-actual-print-content'></div>
8607</div>
8608<div class='crop-modal-overlay' id='fuelOilModal' style='display:none;'>
8609<div class='crop-modal-content fo-modal-content'>
8610<span class='close-crop-modal' onclick='closeFuelOilModal()'>&#215;</span>
8611<div class='fo-main-box'>
8612<h2 style='color:#7c3aed; text-align:center; margin:0 0 20px 0; font-weight: 800; font-size: 26px;'>জ&#2509;ব&#2494;ল&#2494;ন&#2495; ত&#2503;ল&#2503;র আব&#2503;দন ফরম</h2>
8613<div class='fo-grid-layout'>
8614<div class='fo-input-side'>
8615<div class='fo-input-card'>
8616<p class='fo-section-title'>ব&#2509;যক&#2509;ত&#2495;গত ও প&#2509;রত&#2495;ষ&#2509;ঠ&#2494;ন&#2503;র তথ&#2509;য</p>
8617<input class='fo-input' id='fo-name' oninput='updateFuelOilForm()' placeholder='আবেদনকারী/প্রতিষ্ঠানের নাম' style='margin-bottom:10px' type='text'/>
8618<div class='fo-field-grid'>
8619<input class='fo-input' id='fo-father' oninput='updateFuelOilForm()' placeholder='পিতা/প্রোপাইটর' type='text'/>
8620<input class='fo-input' id='fo-nid' oninput='updateFuelOilForm()' placeholder='এনআইডি/লাইসেন্স নম্বর' type='text'/>
8621</div>
8622<input class='fo-input' id='fo-mobile' oninput='updateFuelOilForm()' placeholder='মোবাইল নম্বর' type='text'/>
8623</div>
8624<div class='fo-input-card'>
8625<p class='fo-section-title'>ঠ&#2495;ক&#2494;ন&#2494; ও প&#2494;ম&#2509;প&#2503;র ব&#2495;বরণ</p>
8626<div class='fo-field-grid'>
8627<input class='fo-input' id='fo-vill' oninput='updateFuelOilForm()' placeholder='গ্রাম/রাস্তা' type='text'/>
8628<input class='fo-input' id='fo-union' oninput='updateFuelOilForm()' placeholder='ইউনিয়ন' type='text'/>
8629</div>
8630<div class='fo-field-grid'>
8631<input class='fo-input' id='fo-post' oninput='updateFuelOilForm()' placeholder='পোস্ট অফিস' type='text'/>
8632<input class='fo-input' id='fo-thana' oninput='updateFuelOilForm()' placeholder='থানা/উপজেলা' type='text'/>
8633</div>
8634<div class='fo-field-grid'>
8635<input class='fo-input' id='fo-dist' oninput='updateFuelOilForm()' placeholder='জেলা' type='text'/>
8636<input class='fo-input' id='fo-pump' oninput='updateFuelOilForm()' placeholder='পাম্পের নাম' type='text'/>
8637</div>
8638</div>
8639<div class='fo-input-card'>
8640<p class='fo-section-title'>যন&#2509;ত&#2509;র ও ব&#2509;যবহ&#2494;র&#2503;র তথ&#2509;য</p>
8641<div class='fo-field-grid'>
8642<input class='fo-input' id='fo-machine' oninput='updateFuelOilForm()' placeholder='যন্ত্র/মেশিনের নাম' type='text'/>
8643<input class='fo-input' id='fo-fuel-type' oninput='updateFuelOilForm()' placeholder='ধরণ: পেট্রোল, অকটেন, ডিজেল' type='text'/>
8644</div>
8645<div class='fo-field-grid'>
8646<input class='fo-input' id='fo-fuel-amount' oninput='updateFuelOilForm()' placeholder='জ্বালানি: পরিমাণ (লিটার)' type='number'/>
8647<input class='fo-input' id='fo-purpose' oninput='updateFuelOilForm()' placeholder='ব্যবহারের উদ্দেশ্য' type='text'/>
8648</div>
8649</div>
8650</div>
8651<div class='fo-right-column'>
8652<div class='fo-preview-side'>
8653<div class='fo-a4-paper' id='fo-pdf-container'></div>
8654</div>
8655<div style='display: grid; grid-template-columns: 1fr 1fr; gap: 15px; margin-top:10px;'>
8656<button class='fo-btn-action' id='fo-download-btn' onclick='downloadFuelOilPDF()' style='background:#059669;'>PDF ড&#2494;উনল&#2507;ড</button>
8657<button class='fo-btn-action' onclick='resetFuelOilForm()' style='background:#ef4444;'>সব ম&#2497;ছ&#2497;ন</button>
8658</div>
8659</div>
8660</div>
8661</div>
8662</div>
8663</div>
8664<script type='text/javascript'>
8665  //<![CDATA[
8666  function openFuelOilModal() { document.getElementById('fuelOilModal').style.display = 'flex'; updateFuelOilForm(); }
8667  function closeFuelOilModal() { document.getElementById('fuelOilModal').style.display = 'none'; }
8668
8669  const engToBdNumFO = (str) => {
8670      const bnMap = {'0':'০','1':'১','2':'২','3':'৩','4':'৪','5':'৫','6':'৬','7':'৭','8':'৮','9':'৯'};
8671      return String(str).replace(/[0-9]/g, m => bnMap[m]);
8672  };
8673
8674  function updateFuelOilForm() {
8675      const val = (id) => document.getElementById(id).value || '........................................';
8676      let fRaw = document.getElementById('fo-fuel-amount').value;
8677      let fAmount = fRaw ? engToBdNumFO(fRaw) : '.............';
8678
8679      const htmlContent = `
8680          <div style="position: absolute; top: 20mm; right: 20mm; width: 35mm; height: 40mm; border: 1px dashed #000; display: flex; align-items: center; justify-content: center; text-align: center; padding: 5px; box-sizing: border-box; font-size: 12px; font-family: 'SolaimanLipi', sans-serif;">পাসপোর্ট ছবি স্ট্যাপলার দিয়ে সংযুক্ত করুন।</div>
8681          <div style="text-align: center; margin-bottom: 30px; padding-right: 40mm; font-family: 'SolaimanLipi', sans-serif;">
8682              <h1 style="margin: 0; font-size: 24px; display: inline-block; border-bottom: 1px solid #000; padding-bottom: 5px; font-weight: 900;">জ্বালানি তেলের আবেদনপত্র</h1>
8683          </div>
8684          <div style="font-size: 16px; line-height: 2; color: #000; font-family: 'SolaimanLipi', sans-serif;">
8685              ১. আবেদনকারী/প্রতিষ্ঠানের নাম: <b>${val('fo-name')}</b><br/>
8686              ২. পিতা/প্রোপাইটর: <b>${val('fo-father')}</b><br/>
8687              ৩. গ্রাম/রাস্তা: <b>${val('fo-vill')}</b><br/>
8688              ৪. ইউনিয়ন: <b>${val('fo-union')}</b><br/>
8689              ৫. পোস্ট অফিস: <b>${val('fo-post')}</b><br/>
8690              ৬. থানা/উপজেলা: <b>${val('fo-thana')}</b><br/>
8691              ৭. জেলা: <b>${val('fo-dist')}</b><br/>
8692              ৮. এনআইডি বা ট্রেড লাইসেন্স নম্বর: <b>${val('fo-nid')}</b><br/>
8693              ৯. পাম্পের নাম: <b>${val('fo-pump')}</b><br/>
8694              ১০. যন্ত্র/মেশিনের নাম: <b>${val('fo-machine')}</b><br/>
8695              ১১. জ্বালানির ধরণ: <b>${val('fo-fuel-type')}</b><br/>
8696              ১২. জ্বালানির পরিমাণ: <b>${fAmount}</b> (লিটার)<br/>
8697              ১৩. ব্যবহারের উদ্দেশ্য: <b>${val('fo-purpose')}</b><br/>
8698              ১৪. মোবাইল নম্বর: <b>${val('fo-mobile')}</b>
8699          </div>
8700          <div style="margin-top: 25px; font-size: 16px; line-height: 1.6; text-align: justify; font-family: 'SolaimanLipi', sans-serif;">
8701              <b>বিনীত নিবেদন:</b> উপযুক্ত বিষয়ের আলোকে জানাচ্ছি যে, আমার প্রতিষ্ঠানের কাজ পরিচালনার জন্য নিয়মিত জ্বালানি তেলের প্রয়োজন। উক্ত বর্ণিত পরিমাণ জ্বালানি তেল সংগ্রহের প্রয়োজনীয় ব্যবস্থা গ্রহণের জন্য আপনাকে বিশেষভাবে অনুরোধ জানাচ্ছি।
8702          </div>
8703          <div style="margin-top: 20px; font-size: 15px; border-top: 1px solid #ddd; padding-top: 10px; font-family: 'SolaimanLipi', sans-serif;">
8704              <b>সংযুক্তিসমূহ:</b><br/><br/>১. সদ্য তোলা ছবি<br/><br/>২. এনআইডি বা ট্রেড লাইসেন্স কপি<br/>
8704<br/>৩. প্রতিষ্ঠানের প্রয়োজনীয় কাগজপত্র
8705          </div>
8706          
8707          <div style="border: 0.5px solid #000; padding: 15px; position: absolute; bottom: 20mm; left: 20mm; width: calc(100% - 40mm); box-sizing: border-box; font-size: 15px; font-family: 'SolaimanLipi', sans-serif;">
8708              <div style="text-align: center; margin-bottom: 25px;">
8709                  <span style="font-weight: bold; border-bottom: 1px solid #000; padding-bottom: 5px; display: inline-block;">গণ্যমান্য ও ওয়ার্ড প্রতিনিধির অনুমতি</span>
8710              </div>
8711              অনুমোদিত জ্বালানির পরিমাণ: .........................<br/><br/>
8712              সুপারিশকারী কর্মকর্তার (স্বাক্ষর ও সীল): ...........................................
8713          </div>`;
8714      
8715      document.getElementById('fo-pdf-container').innerHTML = htmlContent;
8716      document.getElementById('fo-actual-print-content').innerHTML = htmlContent;
8717  }
8718
8719  function downloadFuelOilPDF() {
8720      const btn = document.getElementById('fo-download-btn');
8721      const element = document.getElementById('fo-actual-print-content');
8722      
8723      btn.innerHTML = "অপেক্ষা করুন...";
8724      btn.disabled = true;
8725
8726      const opt = {
8727          margin: 0,
8728          filename: 'Fuel_Oil_Application.pdf',
8729          image: { type: 'jpeg', quality: 0.98 },
8730          html2canvas: { 
8731              scale: 2, 
8732              useCORS: true, 
8733              letterRendering: true,
8734              scrollX: 0,
8735              scrollY: 0
8736          },
8737          jsPDF: { unit: 'mm', format: 'a4', orientation: 'portrait' },
8738          // অতিরিক্ত পেজ আসা বন্ধ করতে নিচের কমান্ডটি জরুরি
8739          pagebreak: { mode: ['avoid-all', 'css', 'legacy'] }
8740      };
8741
8742      setTimeout(() => {
8743          html2pdf().set(opt).from(element).save().then(() => {
8744              btn.innerHTML = "PDF ডাউনলোড";
8745              btn.disabled = false;
8746          }).catch(err => {
8747              btn.innerHTML = "PDF ডাউনলোড";
8748              btn.disabled = false;
8749          });
8750      }, 500);
8751  }
8752
8753  function resetFuelOilForm() {
8754      document.querySelectorAll('#fuelOilModal input').forEach(i => i.value = '');
8755      updateFuelOilForm();
8756  }
8757//]]>
8758</script>
8758
8759<!--জন&#2509;ম ও ম&#2499;ত&#2509;য&#2497; ন&#2495;বন&#2509;ধন চ&#2503;ক&#2494;র Modal START-->
8760<div class='crop-modal-overlay' id='dobModal' style='display: none;'>
8761<div class='crop-modal-content dob-modal-content'>
8762<span class='close-crop-modal' onclick='closeDobModal()'>&#215;</span>
8763<div class='dob-main-box'>
8764<h2 class='dob-title' style='color:#28a745; text-align:center; margin:0 0 10px 0; font-weight: 800; font-size: 26px;'>
8765<i class='fa-solid fa-file-invoice'></i> জন&#2509;ম ও ম&#2499;ত&#2509;য&#2497; ন&#2495;বন&#2509;ধন অনল&#2494;ইন য&#2494;চ&#2494;ই &#10004;
8766      </h2>
8767<!--Image below title-->
8768<div class='dob-header-image' style='margin-bottom: 20px; text-align: center;'>
8769<img alt='Birth Registration Image' border='0' data-original-height='1024' data-original-width='1024' height='200' src='https://i.imgur.com/ornBh5r.png' width='200'/>
8770</div>
8771<!--Tab Buttons-->
8772<div class='dob-tab-buttons'>
8773<button class='dob-tab-btn active' onclick='showDobTab(&#39;birth&#39;)'>জন&#2509;ম ন&#2495;বন&#2509;ধন য&#2494;চ&#2494;ই</button>
8774<button class='dob-tab-btn' onclick='showDobTab(&#39;death&#39;)'>ম&#2499;ত&#2509;য&#2497; ন&#2495;বন&#2509;ধন য&#2494;চ&#2494;ই</button>
8775</div>
8776<!--Tab Content: Birth Registration-->
8777<div class='dob-tab-content' id='birthTabContent' style='display: block;'>
8778<div class='dob-grid-layout' style='grid-template-columns: 1fr;'>
8779<div class='dob-input-side'>
8780<div class='my-input-form'>
8781<form action='https://everify.bdris.gov.bd/UBRNVerification/Search' id='ubrnForm' method='post' target='_blank'>
8782<h3>জন&#2509;ম ন&#2495;বন&#2509;ধন অনল&#2494;ইন য&#2494;চ&#2494;ই &#10004;</h3>
8783<h2>জন&#2509;ম ন&#2495;বন&#2509;ধন নম&#2509;বর এব&#2434; জন&#2509;ম ত&#2494;র&#2495;খ ল&#2495;খ&#2503; ভ&#2503;র&#2495;ফ&#2494;ই কর&#2497;ন&#2404;</h2>
8784<div class='input-item'>
8785<label>জন&#2509;ম ন&#2495;বন&#2509;ধন নম&#2509;বর:</label>
8786<div class='input-group'>
8787<input id='UBRN' maxlength='17' name='UBRN' placeholder='১৭ সংখ্যার নম্বর ইংরেজিতে লিখুন' required='' type='number'/>
8788<button id='copyBtn' type='button'>১৭ স&#2434;খ&#2509;য&#2494; কপ&#2495; কর&#2497;ন?</button>
8789</div>
8790</div>
8791<div class='input-item'>
8792<label>জন&#2509;ম ত&#2494;র&#2495;খ (YYYY-MM-DD):</label>
8793<input name='BirthDate' placeholder='2005-12-25' required='' type='text'/>
8794</div>
8795<div class='input-button'>
8796<input type='submit' value='জন্ম নিবন্ধন যাচাই করুন!'/>
8797</div>
8798</form>
8799</div>
8800</div>
8801</div>
8802</div>
8803<!-- Tab Content: Death Registration -->
8804<div class='dob-tab-content' id='deathTabContent' style='display: none;'>
8805<div class='dob-grid-layout' style='grid-template-columns: 1fr;'>
8806<div class='dob-input-side'>
8807<div class='my-input-form'>
8808<form action='https://everify.bdris.gov.bd/UDRNVerification/Search' id='deathUbrnForm' method='post' target='_blank'>
8809<h3>ম&#2499;ত&#2509;য&#2497; ন&#2495;বন&#2509;ধন অনল&#2494;ইন য&#2494;চ&#2494;ই &#10004;</h3>
8810<h2>ম&#2499;ত&#2509;য&#2497; ন&#2495;বন&#2509;ধন নম&#2509;বর এব&#2434; ম&#2499;ত&#2509;য&#2497; ত&#2494;র&#2495;খ ল&#2495;খ&#2503; ভ&#2503;র&#2495;ফ&#2494;ই কর&#2497;ন&#2404;</h2>
8811<div class='input-item'>
8812<label>ম&#2499;ত&#2509;য&#2497; ন&#2495;বন&#2509;ধন নম&#2509;বর:</label>
8813<div class='input-group'>
8814<input id='deathUBRN' maxlength='17' name='UBRN' placeholder='১৭ সংখ্যার নম্বর ইংরেজিতে লিখুন' required='' type='number'/>
8815<button id='deathCopyBtn' type='button'>১৭ স&#2434;খ&#2509;য&#2494; কপ&#2495; কর&#2497;ন?</button>
8816<!-- Changed ID for death copy button -->
8817</div>
8818</div>
8819<div class='input-item'>
8820<label>ম&#2499;ত&#2509;য&#2497; ত&#2494;র&#2495;খ (YYYY-MM-DD):</label>
8821<input id='deathBirthDate' name='BirthDate' placeholder='2006-11-22' required='' type='text'/>
8822</div>
8823<div class='input-button'>
8824<input type='submit' value='মৃত্যু নিবন্ধন যাচাই করুন!'/>
8825</div>
8826</form>
8827</div>
8828</div>
8829</div>
8830</div>
8831</div>
8832</div>
8833</div>
8834<!--জন&#2509;ম ও ম&#2499;ত&#2509;য&#2497; ন&#2495;বন&#2509;ধন চ&#2503;ক&#2494;র Modal END-->
8835<style>
8836
8837  /* Modal Specific Styles for DOB Checker */
8838  .dob-title {
8839    font-family: "SolaimanLipi", sans-serif;
8840}
8841/* আপন&#2494;র অন&#2509;য&#2494;ন&#2509;য CSS ক&#2507;ড */
8842  .dob-modal-content { 
8843      max-width: 900px !important; /* Adjust as needed */
8844      width: 98% !important; 
8845      display: flex; 
8846      flex-direction: column; 
8847      font-family: 'SolaimanLipi', sans-serif !important;
8848  }
8849  .dob-main-box { 
8850      border: 1px solid #7c3aed; 
8851      border-radius: 20px; 
8852      padding: 20px; 
8853      background: #fff; 
8854      display: flex; 
8855      flex-direction: column; 
8856      flex: 1; 
8857      font-family: 'SolaimanLipi', sans-serif !important; 
8858  }
8859  .dob-grid-layout { 
8860      display: grid; 
8861      grid-template-columns: 1fr; /* Default to single column for forms */
8862      gap: 20px; 
8863      flex: 1; 
8864  }
8865  .dob-input-side { 
8866      display: flex; 
8867      flex-direction: column; 
8868      gap: 15px; 
8869      padding-right: 0; /* No padding on right for single column */
8870      padding-bottom: 20px; 
8871  }
8872
8873  /* Tab Styles */
8874  .dob-tab-buttons {
8875    display: flex;
8876    justify-content: center;
8877    margin-bottom: 20px;
8878    border-bottom: 2px solid #eee;
8879  }
8880  .dob-tab-btn {
8881    background: #f0f0f0;
8882    border: none;
8883    padding: 12px 20px;
8884    cursor: pointer;
8885    font-size: 16px;
8886  font-family: 'SolaimanLipi', sans-serif;
8887    font-weight: bold;
8888    color: #555;
8889    border-radius: 8px 8px 0 0;
8890    transition: all 0.3s ease;
8891    flex-grow: 1;
8892    text-align: center;
8893    max-width: 250px;
8894    margin: 0 5px;
8895  }
8896  .dob-tab-btn:hover {
8897    background: #e0e0e0;
8898    color: #333;
8899  }
8900  .dob-tab-btn.active {
8901    background: #7c3aed;
8902    color: #fff;
8903    border-bottom: 2px solid #7c3aed;
8904    transform: translateY(2px);
8905    box-shadow: 0 4px 8px rgba(0,0,0,0.1);
8906  }
8907  .dob-tab-content {
8908    padding: 10px;
8909  }
8910
8911  /* Common Form Styles (my-input-form) */
8912  .my-input-form {
8913      max-width: 100%;
8914      padding: 20px;
8915      background: #f8f9fa;
8916      border-radius: 10px;
8917      box-shadow: 0 3px 10px rgba(0,0,0,0.1);
8918      font-family: 'SolaimanLipi', sans-serif;
8919      box-sizing: border-box;
8920  }
8921
8922  .my-input-form h3 {
8923      text-align: center;
8924      font-size: 28px; /* Adjusted for modal */
8925      margin-bottom: 15px;
8926      color: #1740D1;
8927  }
8928
8929  .my-input-form h2 {
8930      text-align: center;
8931      font-size: 20px; /* Adjusted for modal */
8932      color: #13B304;
8933      margin-bottom: 20px;
8934  }
8935
8936  .input-item {
8937      margin-bottom: 15px;
8938  }
8939
8940  .input-item label {
8941      display: block;
8942      font-weight: bold;
8943      margin-bottom: 5px;
8944      font-size: 15px; /* Adjusted for modal */
8945      color: #333;
8946  }
8947
8948  .input-group {
8949      display: flex;
8950      gap: 5px;
8951      flex-wrap: wrap;
8952  }
8953
8954  .input-group input, .input-item input[type="number"], .input-item input[type="text"] {
8955      flex: 1 1 auto;
8956      padding: 10px;
8957      border-radius: 5px;
8958      border: 1px solid #28a745;
8959      font-size: 18px; /* Adjusted for modal */
8960      min-width: 150px;
8961      box-sizing: border-box;
8962      font-family: 'SolaimanLipi', sans-serif;
8963  }
8964
8965  .input-group button {
8966      padding: 10px 15px;
8967      background: #28a745;
8968      color: #fff;
8969      border: none;
8970      border-radius: 5px;
8971      cursor: pointer;
8972      flex-shrink: 0;
8973      transition: background 0.3s;
8974      font-family: 'SolaimanLipi', sans-serif;
8975      font-size: 15px; /* Adjusted for modal */
8976  }
8977
8978  .input-group button:hover {
8979      background: #218838;
8980  }
8981  
8982  .input-button {
8983      text-align: center;
8984      margin-top: 20px;
8985  }
8986
8987  .input-button input[type="submit"] {
8988      padding: 12px 25px;
8989      background: #007bff;
8990      color: #fff;
8991      border: none;
8992      border-radius: 6px;
8993      cursor: pointer;
8994      font-size: 16px;
8995      font-family: 'SolaimanLipi', sans-serif;
8996      transition: background 0.3s;
8997  }
8998
8999  .input-button input[type="submit"]:hover {
9000      background: #0056b3;
9001  }
9002
9003  /* Responsive for mobile */
9004  @media (max-width: 768px) {
9005      .dob-modal-content {
9006          padding: 10px;
9007      }
9008      .dob-main-box {
9009          padding: 15px;
9010          border-radius: 10px;
9011      }
9012      .dob-main-box h2 {
9013          font-size: 22px;
9014          margin-bottom: 15px;
9015      }
9016      .dob-header-image img {
9017        height: 80px;
9018        width: 80px;
9019      }
9020      .dob-tab-buttons {
9021        flex-wrap: wrap;
9022      }
9023      .dob-tab-btn {
9024        flex-grow: 1;
9025        margin-bottom: 10px;
9026      }
9027      .my-input-form h3 {
9028          font-size: 24px;
9029      }
9030      .my-input-form h2 {
9031          font-size: 18px;
9032      }
9033      .input-group {
9034          flex-direction: column;
9035      }
9036      .input-group button {
9037          width: 100%;
9038      }
9039      .input-group input, .input-item input[type="number"], .input-item input[type="text"] {
9040          font-size: 16px;
9041          padding: 8px;
9042      }
9043      .input-item label {
9044        font-size: 14px;
9045      }
9046      .input-button input[type="submit"] {
9047        font-size: 15px;
9048        padding: 10px 20px;
9049      }
9050  }
9051
9052  @media (max-width: 480px) {
9053      .dob-main-box h2 {
9054          font-size: 18px;
9055      }
9056      .dob-header-image img {
9057        height: 60px;
9058        width: 60px;
9059      }
9060      .my-input-form h3 {
9061          font-size: 20px;
9062      }
9063      .my-input-form h2 {
9064          font-size: 16px;
9065      }
9066      .input-group input, .input-item input[type="number"], .input-item input[type="text"] {
9067          font-size: 14px;
9068          padding: 6px;
9069      }
9070      .input-item label {
9071        font-size: 13px;
9072      }
9073      .input-group button {
9074        font-size: 13px;
9075        padding: 8px 10px;
9076      }
9077      .input-button input[type="submit"] {
9078        font-size: 14px;
9079        padding: 8px 15px;
9080      }
9081  }
9082</style>
9083<script type='text/javascript'>
9084  //<![CDATA[
9085  function openDobModal() {
9086      // setActiveMode('mode-dob-checker'); // আপনার মূল ফ্রেমে যদি setActiveMode থাকে
9087      document.getElementById('dobModal').style.display = 'flex';
9088      // ডিফল্টভাবে জন্ম নিবন্ধন ট্যাব দেখাবে
9089      showDobTab('birth');
9090  }
9091
9092  function closeDobModal() {
9093      document.getElementById('dobModal').style.display = 'none';
9094  }
9095
9096  function showDobTab(tabName) {
9097      // সব ট্যাব কন্টেন্ট লুকান
9098      const tabContents = document.querySelectorAll('.dob-tab-content');
9099      tabContents.forEach(content => {
9100          content.style.display = 'none';
9101      });
9102
9103      // সব ট্যাব বাটন থেকে 'active' ক্লাস সরান
9104      const tabButtons = document.querySelectorAll('.dob-tab-btn');
9105      tabButtons.forEach(button => {
9106          button.classList.remove('active');
9107      });
9108
9109      // নির্বাচিত ট্যাব কন্টেন্ট দেখান এবং বাটনে 'active' ক্লাস যোগ করুন
9110      if (tabName === 'birth') {
9111          document.getElementById('birthTabContent').style.display = 'block';
9112          document.querySelector('.dob-tab-btn:nth-child(1)').classList.add('active');
9113      } else if (tabName === 'death') {
9114          document.getElementById('deathTabContent').style.display = 'block';
9115          document.querySelector('.dob-tab-btn:nth-child(2)').classList.add('active');
9116      }
9117  }
9118
9119  // জন্ম নিবন্ধন ফর্মের জন্য স্ক্রিপ্ট
9120  const jnField = document.getElementById("UBRN");
9121  const copyBtn = document.getElementById("copyBtn");
9122
9123  // ১৭ সংখ্যার বেশি টাইপ করা যাবে না
9124  if (jnField) { // Ensure element exists before adding listener
9125      jnField.addEventListener("input", function() {
9126          if(this.value.length > 17){
9127              this.value = this.value.slice(0, 17);
9128          }
9129      });
9130  }
9131
9132  // কপি বাটন: বাটনের লেখা পরিবর্তন
9133  if (copyBtn) { // Ensure element exists before adding listener
9134      copyBtn.addEventListener("click", function() {
9135          const value = jnField.value.slice(0,17);
9136          if(value.length === 17){
9137              navigator.clipboard.writeText(value).then(() => {
9138                  copyBtn.textContent = "কপি হয়েছে";
9139                  setTimeout(() => { copyBtn.textContent = "১৭ সংখ্যা কপি করুন?"; }, 2000);
9140              }).catch(err => {
9141                  console.error("Failed to copy: ", err);
9142                  alert("কপি করতে ব্যর্থ হয়েছেন।");
9143              });
9144          } else {
9145              copyBtn.textContent = "সঠিক ১৭ সংখ্যা নেই";
9146              setTimeout(() => { copyBtn.textContent = "১৭ সংখ্যা কপি করুন?"; }, 2000);
9147          }
9148      });
9149  }
9150
9151  // ফর্ম সাবমিট ভেরিফিকেশন (জন্ম নিবন্ধন)
9152  const ubrnForm = document.getElementById("ubrnForm");
9153  if (ubrnForm) { // Ensure element exists before adding listener
9154      ubrnForm.addEventListener("submit", function(e){
9155          if(jnField.value.length !== 17){
9156              alert("জন্ম নিবন্ধন নম্বর অবশ্যই ১৭ সংখ্যার হতে হবে।");
9157              e.preventDefault();
9158          }
9159      });
9160  }
9161
9162  // মৃত্যু নিবন্ধন ফর্মের জন্য স্ক্রিপ্ট
9163  const deathUBRNField = document.getElementById("deathUBRN");
9164  const deathCopyBtn = document.getElementById("deathCopyBtn");
9165
9166  // ১৭ সংখ্যার বেশি টাইপ করা যাবে না
9167  if (deathUBRNField) { // Ensure element exists before adding listener
9168      deathUBRNField.addEventListener("input", function() {
9169          if(this.value.length > 17){
9170              this.value = this.value.slice(0, 17);
9171          }
9172      });
9173  }
9174
9175  // কপি বাটন: বাটনের লেখা পরিবর্তন
9176  if (deathCopyBtn) { // Ensure element exists before adding listener
9177      deathCopyBtn.addEventListener("click", function() {
9178          const value = deathUBRNField.value.slice(0,17);
9179          if(value.length === 17){
9180              navigator.clipboard.writeText(value).then(() => {
9181                  deathCopyBtn.textContent = "কপি হয়েছে";
9182                  setTimeout(() => { deathCopyBtn.textContent = "১৭ সংখ্যা কপি করুন?"; }, 2000);
9183              }).catch(err => {
9184                  console.error("Failed to copy: ", err);
9185                  alert("কপি করতে ব্যর্থ হয়েছেন।");
9186              });
9187          } else {
9188              deathCopyBtn.textContent = "সঠিক ১৭ সংখ্যা নেই";
9189              setTimeout(() => { deathCopyBtn.textContent = "১৭ সংখ্যা কপি করুন?"; }, 2000);
9190          }
9191      });
9192  }
9193
9194  // ফর্ম সাবমিট ভেরিফিকেশন (মৃত্যু নিবন্ধন)
9195  const deathUbrnForm = document.getElementById("deathUbrnForm");
9196  if (deathUbrnForm) { // Ensure element exists before adding listener
9197      deathUbrnForm.addEventListener("submit", function(e){
9198          if(deathUBRNField.value.length !== 17){
9199              alert("মৃত্যু নিবন্ধন নম্বর অবশ্যই ১৭ সংখ্যার হতে হবে।");
9200              e.preventDefault();
9201          }
9202      });
9203  }
9204
9205
9206  // এই ফাংশনটি শুধুমাত্র একটি ডেমো PDF তৈরির জন্য। জন্ম/মৃত্যু নিবন্ধনের ডেটা অনলাইন থেকে PDF এ আনা সম্ভব নয়।
9207  // তবুও, এটি পূর্বের PDF ডাউনলোড সমস্যার সমাধান লজিক সহ রাখা হয়েছে।
9208  function downloadDobPdf() {
9209      // এই টুলটি অনলাইন যাচাইকরণের জন্য, কোনো PDF ডাউনলোড ফিচার নেই।
9210      alert("এই টুলটি অনলাইন যাচাইকরণের জন্য, এখানে কোনো PDF ডাউনলোড ফিচার নেই।");
9211
9212      // যদি আপনি ইনপুট ডেটা সহ একটি ডেমো PDF তৈরি করতে চান,
9213      // তাহলে আপনাকে একটি লুকানো div-এ HTML তৈরি করে html2pdf-এ পাঠাতে হবে।
9214      // যেমনটি আগেরবার ফুয়েল অয়েল ফর্মের জন্য করেছিলাম।
9215      // তবে, যেহেতু এই টুলটি কেবল যাচাইকরণের জন্য, সরাসরি অনলাইন ফলাফলের PDF সম্ভব নয়।
9216  }
9217
9218  //]]>
9219</script>
9219
9220<!-- PWA Add to Home Screen Installer START -->
9221<style>
9222  /* Overlay Background */
9223  .pwa-overlay {
9224    position: fixed;
9225    top: 0; left: 0; right: 0; bottom: 0;
9226    background: rgba(15, 23, 42, 0.65);
9227    backdrop-filter: blur(8px);
9228    -webkit-backdrop-filter: blur(8px);
9229    z-index: 9999999;
9230    display: flex;
9231    align-items: center;
9232    justify-content: center;
9233    opacity: 0;
9234    visibility: hidden;
9235    transition: all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);
9236  }
9237  .pwa-overlay.pwa-active {
9238    opacity: 1;
9239    visibility: visible;
9240  }
9241
9242  /* Modal Box */
9243  .pwa-card {
9244    background: #ffffff;
9245    width: 90%;
9246    max-width: 400px;
9247    border-radius: 24px;
9248    padding: 35px 25px;
9249    text-align: center;
9250    position: relative;
9251    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
9252    transform: scale(0.85) translateY(30px);
9253    transition: all 0.5s cubic-bezier(0.34, 1.56, 0.64, 1);
9254    font-family: 'SolaimanLipi', 'Inter', sans-serif !important;
9255    border-top: 6px solid #4f46e5;
9256    box-sizing: border-box;
9257  }
9258  .pwa-overlay.pwa-active .pwa-card {
9259    transform: scale(1) translateY(0);
9260  }
9261
9262  /* App Icon Container */
9263  .pwa-icon-container {
9264    width: 80px;
9265    height: 80px;
9266    margin: 0 auto 20px auto;
9267    border-radius: 20px;
9268    overflow: hidden;
9269    box-shadow: 0 10px 20px rgba(79, 70, 229, 0.15);
9270    border: 3px solid #f1f5f9;
9271  }
9272  .pwa-icon-container img {
9273    width: 100%;
9274    height: 100%;
9275    object-fit: cover;
9276  }
9277
9278  /* Typography */
9279  .pwa-title {
9280    font-size: 22px;
9281    font-weight: 800;
9282    color: #0f172a;
9283    margin: 0 0 10px 0;
9284    line-height: 1.3;
9285  }
9286  .pwa-desc {
9287    font-size: 14px;
9288    color: #475569;
9289    line-height: 1.6;
9290    margin: 0 0 25px 0;
9291  }
9292
9293  /* Instructions for iOS/Firefox/Fallback */
9294  .pwa-instructions {
9295    display: none;
9296    background: #f8fafc;
9297    border: 1px dashed #cbd5e1;
9298    border-radius: 12px;
9299    padding: 15px;
9300    text-align: left;
9301    margin-bottom: 20px;
9302    font-size: 13.5px;
9303    color: #334155;
9304    line-height: 1.7;
9305    animation: pwa-fade 0.3s ease-in;
9306  }
9307  @keyframes pwa-fade {
9308    from { opacity: 0; transform: translateY(10px); }
9309    to { opacity: 1; transform: translateY(0); }
9310  }
9311
9312  /* Action Buttons */
9313  .pwa-btn-group {
9314    display: flex;
9315    flex-direction: column;
9316    gap: 10px;
9317  }
9318  .pwa-btn-install {
9319    background: linear-gradient(135deg, #4f46e5, #4338ca);
9320    color: #ffffff !important;
9321    border: none;
9322    padding: 14px 20px;
9323    border-radius: 12px;
9324    font-size: 16px;
9325    font-weight: 700;
9326    cursor: pointer;
9327    transition: 0.3s;
9328    display: flex;
9329    align-items: center;
9330    justify-content: center;
9331    gap: 8px;
9332    box-shadow: 0 8px 15px rgba(79, 70, 229, 0.25);
9333    font-family: 'SolaimanLipi', sans-serif;
9334  }
9335  .pwa-btn-install:hover {
9336    background: linear-gradient(135deg, #4338ca, #3730a3);
9337    transform: translateY(-2px);
9338    box-shadow: 0 12px 20px rgba(79, 70, 229, 0.35);
9339  }
9340  .pwa-btn-dismiss {
9341    background: #f1f5f9;
9342    color: #64748b !important;
9343    border: none;
9344    padding: 12px 20px;
9345    border-radius: 12px;
9346    font-size: 14px;
9347    font-weight: 600;
9348    cursor: pointer;
9349    transition: 0.2s;
9350    font-family: 'SolaimanLipi', sans-serif;
9351  }
9352  .pwa-btn-dismiss:hover {
9353    background: #e2e8f0;
9354    color: #475569 !important;
9355  }
9356</style>
9357<!-- PWA Modal HTML -->
9358<div class='pwa-overlay' id='pwaOverlay'>
9359<div class='pwa-card'>
9360<div class='pwa-icon-container'>
9361<img alt='ID Card Scanner Pro Icon' src='https://i.imgur.com/eq1AlwA.png'/>
9362</div>
9363<h3 class='pwa-title'>আম&#2494;দ&#2503;র অ&#2509;য&#2494;প ইনস&#2509;টল কর&#2497;ন<br/> ID Card Scanner Pro</h3>
9364<p class='pwa-desc'>দ&#2509;র&#2497;ততম অ&#2509;য&#2494;ক&#2509;স&#2503;স, অফল&#2494;ইন ব&#2509;যবহ&#2494;র এব&#2434; হ&#2507;ম স&#2509;ক&#2509;র&#2495;ন থ&#2503;ক&#2503; সর&#2494;সর&#2495; ইনস&#2509;ট&#2509;য&#2494;ন&#2509;ট স&#2494;প&#2507;র&#2509;ট&#2503;র জন&#2509;য আম&#2494;দ&#2503;র অফ&#2495;শ&#2495;য়&#2494;ল অ&#2509;য&#2494;পট&#2495; ইনস&#2509;টল কর&#2497;ন&#2404;</p>
9365<!-- iOS / Firefox / Fallback Instructions -->
9366<div class='pwa-instructions' id='pwaInstructions'>
9367<p style='margin: 0 0 8px 0; font-weight: 700; color: #4f46e5;'><i class='fa-solid fa-circle-info'></i> য&#2503;ভ&#2494;ব&#2503; ইনস&#2509;টল করব&#2503;ন:</p>
9368<div id='pwaInstructionText'></div>
9369</div>
9370<div class='pwa-btn-group'>
9371<button class='pwa-btn-install' id='pwaInstallBtn' onclick='handlePwaInstall()'>
9372<i class='fa-solid fa-circle-down'></i> অ&#2509;য&#2494;প ইনস&#2509;টল কর&#2497;ন
9373      </button>
9374<button class='pwa-btn-dismiss' onclick='closePwaPrompt()'>পর&#2503; করব</button>
9375</div>
9376</div>
9377</div>
9378<script type='text/javascript'>
9379  //<![CDATA[
9380  let deferredPrompt;
9381  const pwaOverlay = document.getElementById('pwaOverlay');
9382  const pwaInstallBtn = document.getElementById('pwaInstallBtn');
9383  const pwaInstructions = document.getElementById('pwaInstructions');
9384  const pwaInstructionText = document.getElementById('pwaInstructionText');
9385
9386  // 1. Inject PWA Manifest dynamically using base64 data URI
9387  const pwaManifest = {
9388    "name": "ID Card Scanner Pro",
9389    "short_name": "ID Card Scanner Pro",
9390    "start_url": "/",
9391    "display": "standalone",
9392    "background_color": "#ffffff",
9393    "theme_color": "#4f46e5",
9394    "icons": [
9395      {
9396        "src": "https://i.imgur.com/eq1AlwA.png",
9397        "sizes": "144x144",
9398        "type": "image/png"
9399      }
9400    ]
9401  };
9402  const manifestString = JSON.stringify(pwaManifest);
9403  const manifestLink = document.createElement('link');
9404  manifestLink.rel = 'manifest';
9405  manifestLink.href = 'data:application/json;base64,' + btoa(unescape(encodeURIComponent(manifestString)));
9406  document.head.appendChild(manifestLink);
9407
9408  // 2. Register Service Worker dynamically using Blob
9409  if ('serviceWorker' in navigator) {
9410    const swCode = `
9411      self.addEventListener('install', e => self.skipWaiting());
9412      self.addEventListener('activate', e => self.clients.claim());
9413      self.addEventListener('fetch', e => e.respondWith(fetch(e.request)));
9414    `;
9415    const swBlob = new Blob([swCode], { type: 'application/javascript' });
9416    const swUrl = URL.createObjectURL(swBlob);
9417    navigator.serviceWorker.register(swUrl).catch(err => console.log('PWA Service Worker skipped/unsupported'));
9418  }
9419
9420  // 3. Listen for browser install prompt trigger
9421  window.addEventListener('beforeinstallprompt', (e) => {
9422    e.preventDefault();
9423    deferredPrompt = e;
9424  });
9425
9426  // 4. Show PWA Installation Prompt after 15 seconds (With 1-day timestamp check & Lifetime install check)
9427  document.addEventListener("DOMContentLoaded", () => {
9428    // কাস্টমার অলরেডি অ্যাপটি ইনস্টল করে রেখেছে কিনা তা ডিটেক্ট করবে
9429    const isAlreadyInstalled = localStorage.getItem('pwa_installed') === 'true' || 
9430                               window.matchMedia('(display-mode: standalone)').matches || 
9431                               navigator.standalone;
9432
9433    if (isAlreadyInstalled) {
9434      localStorage.setItem('pwa_installed', 'true'); // ব্যাকআপ সিকিউরিটি ফ্ল্যাগ
9435      return; // অলরেডি ইনস্টল করা থাকলে পপ-আপ দেখাবে না, কোড এখানেই বন্ধ হবে
9436    }
9437
9438    const dismissedTime = localStorage.getItem('pwa_prompt_dismissed_time');
9439    let showPrompt = true;
9440
9441    if (dismissedTime) {
9442      const oneDayInMs = 86400000; // ১ দিন = ২৪ ঘণ্টা
9443      const timePassed = Date.now() - parseInt(dismissedTime, 10);
9444      if (timePassed < oneDayInMs) {
9445        showPrompt = false; // ১ দিন পার না হলে দেখাবে না
9446      } else {
9447        // ১ দিন পার হয়ে গেলে ব্যাকএন্ডের পুরানো টাইমস্ট্যাম্প ডেটা মুছে ফেলবে
9448        localStorage.removeItem('pwa_prompt_dismissed_time');
9449      }
9450    }
9451
9452    if (showPrompt) {
9453      setTimeout(() => {
9454        if (pwaOverlay) pwaOverlay.classList.add('pwa-active');
9455      }, 15000); // পেজ ওপেন হওয়ার ঠিক ১৫ সেকেন্ড পর পপ-আপ দেখাবে
9456    }
9457  });
9458
9459  // 5. Handle Install Button Click with smart browser detection
9460  function handlePwaInstall() {
9461    if (deferredPrompt) {
9462      deferredPrompt.prompt();
9463      deferredPrompt.userChoice.then((choiceResult) => {
9464        if (choiceResult.outcome === 'accepted') {
9465          // ইউজার ইনস্টল একসেপ্ট করলে আজীবনের জন্য মেমোরিতে লক করে দেবে
9466          localStorage.setItem('pwa_installed', 'true');
9467          if (pwaOverlay) pwaOverlay.classList.remove('pwa-active');
9468        } else {
9469          closePwaPrompt(); // রিফিউজ করলে ১ দিনের জন্য বন্ধ রাখবে
9470        }
9471        deferredPrompt = null;
9472      });
9473    } else {
9474      // Browser fallback instructions
9475      pwaInstructions.style.display = 'block';
9476      pwaInstallBtn.style.display = 'none'; // গাইডলাইন দেখানোর পর মেইন বাটনটি হাইড করা হবে
9477
9478      const userAgent = navigator.userAgent.toLowerCase();
9479      const isiOS = /ipad|iphone|ipod/.test(userAgent) && !window.MSStream;
9480      const isFirefox = userAgent.includes('firefox');
9481
9482      if (isiOS) {
9483        pwaInstructionText.innerHTML = `
9484          ১. সাফারির নিচে থাকা <b>Share</b> বাটনটিতে <i class="fa-solid fa-share-from-square" style="color: #4f46e5;"></i> ট্যাপ করুন।<br/>
9485          ২. একটু নিচে স্ক্রোল করে <b>Add to Home Screen</b> <i class="fa-solid fa-square-plus" style="color: #4f46e5;"></i> অপশনটি সিলেক্ট করুন।<br/>
9486          ৩. সম্পন্ন করতে ডানদিকের উপরে থাকা <b>Add</b> বাটনে ট্যাপ করুন।
9487        `;
9488      } else if (isFirefox) {
9489        const isMobile = /android|iphone|ipad|ipod/.test(userAgent);
9490        if (isMobile) {
9491          pwaInstructionText.innerHTML = `
9492            ১. ফায়ারফক্স ব্রাউজারের নিচে ডানদিকের <b>থ্রি-ডট (Three Dots)</b> <i class="fa-solid fa-ellipsis-vertical" style="color: #4f46e5;"></i> মেনুতে ক্লিক করুন।<br/>
9493            ২. সেখান থেকে <b>Install</b> বা <b>Add to Home Screen</b> অপশনটি সিলেক্ট করুন।
9494          `;
9495        } else {
9496          pwaInstructionText.innerHTML = `
9497            ১. মজিলা ফায়ারফক্স ডেক্সটপে সরাসরি ওয়ান-ক্লিক ইনস্টলেশন সাপোর্ট করে না।<br/>
9498            ২. শর্টকাট তৈরি করতে ব্রাউজারের ডানদিকের <b>মেনু বার (Menu Bar)</b> <i class="fa-solid fa-bars" style="color: #4f46e5;"></i>-এ ক্লিক করুন।<br/>
9499            ৩. <b>More Tools</b> সেকশনে গিয়ে <b>Add to taskbar</b> বা উপরের লিংকে বারে স্টার আইকনের সাথে <b>Add Tab To Taskbar</b>-এ ক্লিক করে পিন করে নিন।
9500          `;
9501        }
9502      } else {
9503        pwaInstructionText.innerHTML = `
9504          ১. আপনার ব্রাউজারের মেনু বাটনে (সাধারণত ডানদিকের উপরে থাকা <b>তিনটি ডট</b> <i class="fa-solid fa-ellipsis-vertical" style="color: #4f46e5;"></i>) ক্লিক করুন।<br/>
9505          ২. সেখান থেকে <b>Install</b> অথবা <b>Add to Home Screen</b> অপশনটি সিলেক্ট করুন।<br/>
9506          ৩. হোম স্ক্রিন বা ডেক্সটপে শর্টকাট তৈরি করতে কনফার্ম করুন।
9507        `;
9508      }
9509    }
9510  }
9511
9512  // 6. Native App Installed Event Tracker (Triggers automatically when browser installation completes)
9513  window.addEventListener('appinstalled', (evt) => {
9514    localStorage.setItem('pwa_installed', 'true'); // আজীবনের জন্য পপ-আপ ব্লক
9515    if (pwaOverlay) pwaOverlay.classList.remove('pwa-active');
9516  });
9517
9518  // 7. Close Prompt and save current timestamp to LocalStorage (reappears exactly after 24 hours)
9519  function closePwaPrompt() {
9520    if (pwaOverlay) pwaOverlay.classList.remove('pwa-active');
9521    // ১ দিন বন্ধ রাখার জন্য বর্তমান সময়ের গ্লোবাল মিলিসেকেন্ড টাইমস্ট্যাম্প সেভ করবে
9522    localStorage.setItem('pwa_prompt_dismissed_time', Date.now().toString());
9523  }
9524  //]]>
9525</script>
9525
9526<!-- PWA Add to Home Screen Installer END -->
9527<!-- Unique Link Saver Pop-up Modal START -->
9528<style>
9529  /* Overlay Background */
9530  .lks-overlay-container {
9531      position: fixed;
9532      top: 0; left: 0; right: 0; bottom: 0;
9533      background: rgba(15, 23, 42, 0.7);
9534      backdrop-filter: blur(8px);
9535      -webkit-backdrop-filter: blur(8px);
9536      z-index: 999999;
9537      display: flex;
9538      align-items: center;
9539      justify-content: center;
9540      opacity: 0;
9541      visibility: hidden;
9542      transition: all 0.5s ease;
9543  }
9544  .lks-overlay-container.lks-is-active {
9545      opacity: 1;
9546      visibility: visible;
9547  }
9548
9549  /* Pop-up Box */
9550  .lks-main-card {
9551      background: #ffffff;
9552      width: 90%;
9553      max-width: 400px;
9554      border-radius: 28px;
9555      padding: 40px 25px 35px 25px;
9556      text-align: center;
9557      position: relative;
9558      box-shadow: 0 30px 60px rgba(0, 0, 0, 0.4);
9559      transform: scale(0.8) translateY(50px);
9560      transition: all 0.6s cubic-bezier(0.68, -0.55, 0.265, 1.55);
9561      font-family: 'SolaimanLipi', 'Inter', sans-serif !important;
9562      overflow: hidden;
9563      box-sizing: border-box;
9564  }
9565  .lks-overlay-container.lks-is-active .lks-main-card {
9566      transform: scale(1) translateY(0);
9567  }
9568
9569  /* Colorful Top Gradient Wave */
9570  .lks-main-card::before {
9571      content: '';
9572      position: absolute;
9573      top: 0; left: 0; width: 100%; height: 8px;
9574      background: linear-gradient(90deg, #ec4899, #8b5cf6, #3b82f6, #10b981);
9575      background-size: 300% 100%;
9576      animation: lks-gradient-anim 3s linear infinite;
9577  }
9578  @keyframes lks-gradient-anim {
9579      0% { background-position: 0% 50%; }
9580      50% { background-position: 100% 50%; }
9581      100% { background-position: 0% 50%; }
9582  }
9583
9584  /* Close Button */
9585  .lks-close-trigger {
9586      position: absolute;
9587      top: 15px; right: 15px;
9588      background: #f1f5f9;
9589      border: none;
9590      width: 35px; height: 35px;
9591      border-radius: 50%;
9592      font-size: 18px;
9593      cursor: pointer;
9594      color: #64748b;
9595      display: flex;
9596      align-items: center;
9597      justify-content: center;
9598      transition: 0.3s;
9599      z-index: 10;
9600  }
9601  .lks-close-trigger:hover {
9602      background: #ffe4e6;
9603      color: #e11d48;
9604      transform: rotate(90deg);
9605  }
9606
9607  /* Floating Animated Icon */
9608  .lks-icon-box {
9609      position: relative;
9610      width: 80px; height: 80px;
9611      margin: 0 auto 20px auto;
9612      background: linear-gradient(135deg, #f472b6, #c084fc);
9613      border-radius: 50%;
9614      display: flex;
9615      align-items: center;
9616      justify-content: center;
9617      font-size: 35px;
9618      color: #ffffff;
9619      box-shadow: 0 10px 25px rgba(192, 132, 252, 0.5);
9620      animation: lks-float-anim 3s ease-in-out infinite;
9621  }
9622  .lks-icon-box::after {
9623      content: '';
9624      position: absolute;
9625      width: 100%; height: 100%;
9626      border-radius: 50%;
9627      border: 2px solid #c084fc;
9628      animation: lks-ripple-anim 2s linear infinite;
9629  }
9630  @keyframes lks-float-anim {
9631      0%, 100% { transform: translateY(0px); }
9632      50% { transform: translateY(-10px); }
9633  }
9634  @keyframes lks-ripple-anim {
9635      0% { transform: scale(1); opacity: 0.8; }
9636      100% { transform: scale(1.4); opacity: 0; }
9637  }
9638
9639  /* Typography */
9640  .lks-title-text {
9641      margin: 0 0 12px 0;
9642      color: #0f172a;
9643      font-size: 26px;
9644      font-weight: 900;
9645  }
9646  .lks-title-text span {
9647      background: -webkit-linear-gradient(#ec4899, #8b5cf6);
9648      -webkit-background-clip: text;
9649      -webkit-text-fill-color: transparent;
9650  }
9651  .lks-info-text {
9652      color: #475569;
9653      font-size: 16px;
9654      line-height: 1.6;
9655      margin: 0 0 25px 0;
9656      font-weight: 600;
9657  }
9658  .lks-info-text b { color: #db2777; }
9659
9660  /* Independent Link Box */
9661  .lks-field-wrapper {
9662      background: #f8fafc;
9663      border: 2px dashed #cbd5e1;
9664      border-radius: 12px;
9665      padding: 12px 15px;
9666      margin-bottom: 15px;
9667      transition: 0.3s;
9668  }
9669  .lks-field-wrapper:focus-within {
9670      border-color: #8b5cf6;
9671      background: #f5f3ff;
9672  }
9673  .lks-field-wrapper input {
9674      width: 100%;
9675      border: none;
9676      background: transparent;
9677      font-size: 14px;
9678      color: #334155;
9679      text-align: center;
9680      outline: none;
9681      font-family: 'SolaimanLipi', 'Inter', sans-serif;
9682      box-sizing: border-box;
9683  }
9684
9685  /* Full Width Copy Button */
9686  .lks-action-button {
9687      width: 100%;
9688      background: linear-gradient(135deg, #8b5cf6, #3b82f6);
9689      color: #fff;
9690      border: none;
9691      padding: 16px 20px;
9692      border-radius: 12px;
9693      font-size: 18px;
9694      font-weight: bold;
9695      cursor: pointer;
9696      transition: 0.3s;
9697      font-family: 'SolaimanLipi', sans-serif;
9698      display: flex;
9699      align-items: center;
9700      justify-content: center;
9701      gap: 8px;
9702      box-shadow: 0 8px 20px rgba(59, 130, 246, 0.3);
9703  }
9704  .lks-action-button:hover {
9705      background: linear-gradient(135deg, #7c3aed, #2563eb);
9706      transform: translateY(-2px);
9707      box-shadow: 0 12px 25px rgba(59, 130, 246, 0.4);
9708  }
9709  .lks-action-button.lks-copied-state { 
9710      background: linear-gradient(135deg, #10b981, #059669) !important; 
9711      color: #fff !important; 
9712      box-shadow: 0 8px 20px rgba(16, 185, 129, 0.3) !important;
9713  }
9714
9715  /* Mobile Devices Adjustments */
9716  @media (max-width: 480px) {
9717      .lks-main-card {
9718          padding: 35px 20px 25px 20px;
9719      }
9720      .lks-title-text {
9721          font-size: 22px;
9722      }
9723      .lks-info-text {
9724          font-size: 15px;
9725          margin: 0 0 20px 0;
9726      }
9727      .lks-field-wrapper input {
9728          font-size: 13px;
9729      }
9730      .lks-action-button {
9731          padding: 14px 15px;
9732          font-size: 16px;
9733      }
9734  }
9735</style>
9736<!--Pop-up HTML Structure-->
9737<div class='lks-overlay-container' id='lksMainOverlayId'>
9738<div class='lks-main-card'>
9739<button class='lks-close-trigger' onclick='lksClosePopup()'><i class='fa-solid fa-xmark'></i></button>
9740<div class='lks-icon-box'>
9741<i class='fa-solid fa-link'></i>
9742</div>
9743<h3 class='lks-title-text'>প&#2509;রথম&#2503; অর&#2509;ড&#2494;র ল&#2495;&#2434;কট&#2495; <span>স&#2503;ভ কর&#2497;ন!</span></h3>
9744<p class='lks-info-text'>পরবর&#2509;ত&#2496;ত&#2503; আপড&#2503;ট প&#2503;ত&#2503; ব&#2494; ফ&#2494;ইলট&#2495; আব&#2494;র ড&#2494;উনল&#2507;ড করত&#2503; এই প&#2503;জ&#2503;র ল&#2495;&#2434;কট&#2495; অবশ&#2509;যই <b>ন&#2507;টপ&#2509;য&#2494;ড ব&#2494; ইনবক&#2509;স&#2503;</b> অথব&#2494; <b>অন&#2509;য ক&#2507;থ&#2494;ও</b> স&#2503;ভ কর&#2503; র&#2494;খ&#2497;ন&#2404;</p>
9745<!--Link Box (Top)-->
9746<div class='lks-field-wrapper'>
9747<input id='lksUrlInputField' readonly='' type='text'/>
9748</div>
9749<!--Copy Button (Bottom)-->
9750<button class='lks-action-button' id='lksCopyBtnId' onclick='lksCopyAction()'>
9751<i class='fa-regular fa-copy'></i> ল&#2495;&#2434;কট&#2495; কপ&#2495; কর&#2497;ন
9752      </button>
9753</div>
9754</div>
9755<!-- Pop-up Logic Script -->
9756<script type='text/javascript'>
9757  //<![CDATA[
9758  // A global variable to check if the link has been copied at least once
9759  var isLinkCopiedOnce = false;
9760
9761  document.addEventListener("DOMContentLoaded", function() {
9762      var popupTrigger = document.getElementById("lks-trigger-id");
9763      var pageKey = "lks_link_saved_" + window.location.pathname;
9764      var isAlreadyCopied = localStorage.getItem(pageKey);
9765      
9766      if (popupTrigger && isAlreadyCopied !== "true") {
9767          var currentLink = window.location.href;
9768          var urlInput = document.getElementById('lksUrlInputField');
9769          if(urlInput) {
9770              urlInput.value = currentLink;
9771          }
9772
9773          // Triggers pop-up after 3 seconds
9774          setTimeout(function() {
9775              var modal = document.getElementById('lksMainOverlayId');
9776              if(modal) {
9777                  modal.classList.add('lks-is-active');
9778              }
9779          }, 3000);
9780      }
9781  });
9782
9783  // Closes the pop-up modal
9784  function lksClosePopup() {
9785      var modal = document.getElementById('lksMainOverlayId');
9786      if(modal) {
9787          modal.classList.remove('lks-is-active');
9788      }
9789      
9790      // Saves state only if the link has been copied
9791      if (isLinkCopiedOnce) {
9792          var pageKey = "lks_link_saved_" + window.location.pathname;
9793          localStorage.setItem(pageKey, "true");
9794      }
9795  }
9796
9797  // Links copy logic
9798  function lksCopyAction() {
9799      var url = window.location.href;
9800      var btn = document.getElementById('lksCopyBtnId');
9801      
9802      if(navigator.clipboard && window.isSecureContext) {
9803          navigator.clipboard.writeText(url).then(() => { 
9804              showLksCopySuccess(btn); 
9805              isLinkCopiedOnce = true; 
9806          });
9807      } else {
9808          // Fallback mechanism
9809          var textArea = document.createElement("textarea");
9810          textArea.value = url;
9811          textArea.style.position = "fixed"; 
9812          textArea.style.left = "-9999px";
9813          document.body.appendChild(textArea); 
9814          textArea.focus(); 
9815          textArea.select();
9816          try { 
9817              document.execCommand('copy'); 
9818              showLksCopySuccess(btn); 
9819              isLinkCopiedOnce = true; 
9820          } catch (err) {
9821              console.error('Unable to copy', err);
9822          }
9823          document.body.removeChild(textArea);
9824      }
9825  }
9826
9827  // Modifies button state and copy success styling
9828  function showLksCopySuccess(btn) {
9829      var originalHTML = '<i class="fa-regular fa-copy"></i> লিংকটি কপি করুন';
9830      btn.innerHTML = '<i class="fa-solid fa-check"></i> লিংকটি কপি হয়েছে!';
9831      btn.classList.add("lks-copied-state");
9832      
9833      // Restores state after 2 seconds
9834      setTimeout(function() {
9835          btn.innerHTML = originalHTML;
9836          btn.classList.remove("lks-copied-state");
9837      }, 2000);
9838  }
9839  //]]>
9840</script>
9840
9841<!-- Video Only Popup with Scroll Lock & Auto-Close START -->
9842<style>
9843  /* --- Video Only Popup - Combined Updated CSS --- */
9844
9845.pg-open-btn {
9846  background: #FF9900;
9847  color: #000 !important;
9848  padding: 12px 25px;
9849  border-radius: 50px;
9850  font-family: 'Hind Siliguri', 'SolaimanLipi', sans-serif;
9851  font-weight: 800;
9852  font-size: 16px;
9853  display: inline-flex;
9854  align-items: center;
9855  gap: 10px;
9856  cursor: pointer;
9857  border: none;
9858  box-shadow: 0 4px 15px rgba(255, 153, 0, 0.3);
9859  transition: 0.3s;
9860  margin: 10px 0;
9861}
9862.pg-open-btn:hover { 
9863  transform: scale(1.05); 
9864  background: #e68a00; 
9865}
9866
9867.pg-modal-overlay {
9868  position: fixed;
9869  top: 0; 
9870  left: 0; 
9871  width: 100%; 
9872  height: 100%;
9873  background: rgba(0, 0, 0, 0.85);
9874  backdrop-filter: blur(8px);
9875  display: none;
9876  align-items: center;
9877  justify-content: center;
9878  z-index: 99999;
9879  padding: 20px;
9880}
9881
9882.pg-modal-card {
9883  background: #000;
9884  width: 100%;
9885  max-width: 800px;
9886  border-radius: 12px;
9887  position: relative;
9888  animation: pgPop 0.3s ease-out;
9889  box-shadow: 0 0 30px rgba(0,0,0,0.5);
9890}
9891@keyframes pgPop { 
9892  from { transform: scale(0.8); opacity: 0; } 
9893  to { transform: scale(1); opacity: 1; } 
9894}
9895
9896.pg-close {
9897  position: absolute;
9898  top: 5px;
9899  right: 5px;
9900  font-size: 28px;
9901  color: #fff;
9902  cursor: pointer;
9903  z-index: 99999 !important;
9904  background: #ff0000;
9905  width: 38px;
9906  height: 38px;
9907  display: flex;
9908  align-items: center;
9909  justify-content: center;
9910  border-radius: 50%;
9911  line-height: 0;
9912  border: 3px solid #fff;
9913  box-shadow: 0 4px 10px rgba(0,0,0,0.3);
9914  transition: 0.2s;
9915}
9916.pg-close:hover { 
9917  transform: scale(1.1); 
9918  background: #cc0000; 
9919}
9920
9921.pg-video-wrap { 
9922  position: relative; 
9923  padding-bottom: 56.25%; /* 16:9 Aspect Ratio */
9924  height: 0; 
9925  border-radius: 12px;
9926  overflow: hidden;
9927}
9928.pg-video-wrap iframe { 
9929  position: absolute; 
9930  top: 0; 
9931  left: 0; 
9932  width: 100%; 
9933  height: 100%; 
9934  border: none; 
9935}
9936
9937@media (max-width: 768px) {
9938  .pg-open-btn {
9939    width: 100%;
9940    justify-content: center;
9941    font-size: 15px;
9942  }
9943  .pg-modal-card {
9944    width: 95%;
9945  }
9946  .pg-close {
9947    top: 5px;
9948    right: 5px;
9949    width: 32px;
9950    height: 32px;
9951    font-size: 22px;
9952    border: 2px solid #fff;
9953  }
9954  .pg-modal-overlay {
9955    padding: 10px;
9956  }
9957}
9958</style>
9959<div class='pg-modal-overlay' id='pg-modal'>
9960<div class='pg-modal-card'>
9961<span class='pg-close' onclick='closePgModal()'>&#215;</span>
9962<!-- YouTube Video -->
9963<div class='pg-video-wrap'>
9964<iframe allow='accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share' allowfullscreen='allowfullscreen' id='pg-iframe' src=''></iframe>
9965</div>
9966</div>
9967</div>
9968<script type='text/javascript'>
9969  //<![CDATA[
9970  var youtubeVideoID = "oNHZyUSwCSo"; 
9971  var autoCloseTimer; // টাইমার ট্র্যাকিং ভেরিয়েবল
9972
9973  function injectPaymentBtn() {
9974    var area = document.getElementById('payment-guide-area');
9975    if(area) {
9976      area.innerHTML = '<button class="pg-open-btn" onclick="openPgModal()"><i class="fa-solid fa-circle-play"></i> পেমেন্ট করার নিয়ম দেখুন!</button>';
9977    }
9978  }
9979
9980  function openPgModal() {
9981    document.getElementById('pg-iframe').src = "https://www.youtube.com/embed/" + youtubeVideoID + "?autoplay=1&rel=0";
9982    document.getElementById('pg-modal').style.display = 'flex';
9983    
9984    // ব্যাকগ্রাউন্ড স্ক্রল লক করা
9985    document.body.style.overflow = "hidden";
9986
9987    // ৫৮ সেকেন্ড (৫৮,০০০ মিলিসেকেন্ড) পর অটোমেটিক ক্লোজ হবে
9988    autoCloseTimer = setTimeout(function() {
9989      closePgModal();
9990    }, 57000); 
9991  }
9992
9993  function closePgModal() {
9994    document.getElementById('pg-iframe').src = ""; 
9995    document.getElementById('pg-modal').style.display = 'none';
9996    
9997    // ব্যাকগ্রাউন্ড স্ক্রল রিলিজ বা আনলক করা
9998    document.body.style.overflow = "auto";
9999    
10000    // ম্যানুয়ালি ক্লোজ করলে টাইমার বন্ধ করা
10001    clearTimeout(autoCloseTimer);
10002  }
10003
10004  // পপআপের বাইরে ক্লিক করলে ক্লোজ হওয়ার ফাংশন
10005  window.onclick = function(event) {
10006    var modal = document.getElementById('pg-modal');
10007    if (event.target == modal) { closePgModal(); }
10008  }
10009
10010  document.addEventListener("DOMContentLoaded", injectPaymentBtn);
10011//]]>
10012</script>
10012
10013<!-- Video Only Popup with Scroll Lock & Auto-Close END -->
10014<!-- NID Correction Form -->
10015<script type='text/javascript'>
10016  //<![CDATA[
10017  let isNidLibLoaded = false;
10018
10019  // স্ক্রিপ্ট ড্রাইভ হেল্পার লোডার
10020  function loadNidScript(url) {
10021      return new Promise((resolve, reject) => {
10022          let script = document.createElement('script');
10023          script.src = url;
10024          script.onload = resolve;
10025          script.onerror = reject;
10026          document.head.appendChild(script);
10027      });
10028  }
10029
10030  // jsPDF এবং html2canvas লাইব্রেরি লোড ও চেকিং লজিক
10031  async function initNidMakerLibraries() {
10032      if (isNidLibLoaded) return;
10033      const statusEl = document.getElementById('nidActionStatus');
10034      statusEl.innerText = 'Loading engines, please wait...';
10035      try {
10036          if (typeof window.jspdf === 'undefined') {
10037              await loadNidScript('https://cdnjs.cloudflare.com/ajax/libs/jspdf/2.5.1/jspdf.umd.min.js');
10038          }
10039          if (typeof window.html2canvas === 'undefined') {
10040              await loadNidScript('https://cdnjs.cloudflare.com/ajax/libs/html2canvas/1.4.1/html2canvas.min.js');
10041          }
10042          isNidLibLoaded = true;
10043          statusEl.innerText = 'Engines loaded. Ready to build application.';
10044      } catch (err) {
10045          statusEl.innerText = 'Failed to load PDF engine. Check internet.';
10046          console.error(err);
10047      }
10048  }
10049
10050  // ইংরেজি সংখ্যাকে বাংলায় রূপান্তর করার ফাংশন
10051  function convertToBanglaNumber(n) {
10052      const banglaDigits = {'0':'০','1':'১','2':'২','3':'৩','4':'৪','5':'৫','6':'৬','7':'৭','8':'৮','9':'৯'};
10053      return n.toString().replace(/[0-9]/g, function(w) {
10054          return banglaDigits[w] || w;
10055      });
10056  }
10057
10058  // অবজেক্ট ডেটকে বাংলা ফরম্যাটে রূপান্তর করার ফাংশন
10059  function formatDateToBangla(rawDateStr) {
10060      if (!rawDateStr || rawDateStr === '-') return '-';
10061      try {
10062          const dateObj = new Date(rawDateStr);
10063          if (isNaN(dateObj.getTime())) return '-';
10064          
10065          const day = dateObj.getDate();
10066          const parts = dateObj.toISOString().split('T')[0].split('-');
10067          const monthNames = ["জানুয়ারি", "ফেব্রুয়ারি", "মার্চ", "এপ্রিল", "মে", "জুন", "জুলাই", "আগস্ট", "সেপ্টেম্বর", "অক্টোবর", "নভেম্বর", "ডিসেম্বর"];
10068          const month = monthNames[parseInt(parts[1], 10) - 1];
10069          const year = parts[0];
10070          
10071          return convertToBanglaNumber(day) + " " + month + " " + convertToBanglaNumber(year);
10072      } catch (e) {
10073          return '-';
10074      }
10075  }
10076
10077  // রিয়েল-টাইম পিডিএফ মেকিং লজিক (XHTML Compliant html2canvas Capture Method)
10078  async function generateNidApplicationPdf() {
10079      const statusEl = document.getElementById('nidActionStatus');
10080      const submitBtn = document.getElementById('nidSubmitBtn');
10081
10082      // ইনপুট ভ্যালিডেশন (নাম অবশ্যই থাকা লাগবে)
10083      const curName = document.getElementById('curName').value.trim();
10084      const curNameEn = document.getElementById('curNameEn').value.trim();
10085      if (!curName && !curNameEn) {
10086          alert('দয়া করে বর্তমানে আপনার এনআইডি-তে থাকা নিজের নামটি (বাংলা বা ইংরেজি) অবশ্যই লিখুন।');
10087          return;
10088      }
10089
10090      statusEl.innerText = 'Assembling professional PDF layout...';
10091      submitBtn.disabled = true;
10092
10093      try {
10094          await initNidMakerLibraries();
10095          
10096          // ফর্মের সব তথ্য সংগ্রহ করবে
10097          const curSpouse = document.getElementById('curSpouse').value.trim() || '-';
10098          const curFather = document.getElementById('curFather').value.trim() || '-';
10099          const curMother = document.getElementById('curMother').value.trim() || '-';
10100          const curDob = document.getElementById('curDob').value || '-';
10101
10102          const chgName = document.getElementById('chgName').value.trim() || '-';
10103          const chgNameEn = document.getElementById('chgNameEn').value.trim() || '-';
10104          const chgSpouse = document.getElementById('chgSpouse').value.trim() || '-';
10105          const chgFather = document.getElementById('chgFather').value.trim() || '-';
10106          const chgMother = document.getElementById('chgMother').value.trim() || '-';
10107          const chgDob = document.getElementById('chgDob').value || '-';
10108
10109          const qRejected = document.getElementById('qRejected').value;
10110          const qDistrict = document.getElementById('qDistrict').value.trim() || '-';
10111          const qEducation = document.getElementById('qEducation').value.trim() || '-';
10112
10113          const qDoc1 = document.getElementById('qDoc1').value.trim() || '-';
10114          const qDoc2 = document.getElementById('qDoc2').value.trim() || '-';
10115          const qDoc3 = document.getElementById('qDoc3').value.trim() || '-';
10116          const qDoc4 = document.getElementById('qDoc4').value.trim() || '-';
10117
10118          // ডাইনামিকালি হিডেন এ৪ ফরমাল টেমপ্লেটটি পূরণ করবে
10119          document.getElementById('pdf-meta-num').innerText = '' + convertToBanglaNumber(Date.now().toString().substring(7));
10120          document.getElementById('pdf-meta-district').innerText = qDistrict;
10121          document.getElementById('pdf-meta-date').innerText = formatDateToBangla(new Date());
10122          document.getElementById('pdf-meta-edu').innerText = qEducation;
10123
10124          document.getElementById('pdf-cur-name').innerText = curName || '-';
10125          document.getElementById('pdf-cur-name-en').innerText = curNameEn || '-';
10126          document.getElementById('pdf-cur-spouse').innerText = curSpouse;
10127          document.getElementById('pdf-cur-father').innerText = curFather;
10128          document.getElementById('pdf-cur-mother').innerText = curMother;
10129          document.getElementById('pdf-cur-dob').innerText = formatDateToBangla(curDob);
10130
10131          document.getElementById('pdf-chg-name').innerText = chgName;
10132          document.getElementById('pdf-chg-name-en').innerText = chgNameEn;
10133          document.getElementById('pdf-chg-spouse').innerText = chgSpouse;
10134          document.getElementById('pdf-chg-father').innerText = chgFather;
10135          document.getElementById('pdf-chg-mother').innerText = chgMother;
10136          document.getElementById('pdf-chg-dob').innerText = formatDateToBangla(chgDob);
10137
10138          document.getElementById('pdf-q-rejected').innerText = qRejected === 'Yes' ? 'হ্যাঁ' : 'না';
10139          document.getElementById('pdf-q-doc1').innerText = qDoc1;
10140          document.getElementById('pdf-q-doc2').innerText = qDoc2;
10141          document.getElementById('pdf-q-doc3').innerText = qDoc3;
10142          document.getElementById('pdf-q-doc4').innerText = qDoc4;
10143
10144          // html2canvas দিয়ে সম্পূর্ণ টেমপ্লেটকে হাই-রেজোলিউশনে স্ন্যাপশট নেবে (সোলেমান লিপি ফন্ট অক্ষুণ্ণ থাকবে)
10145          const template = document.getElementById('nidPdfTemplate');
10146          
10147          html2canvas(template, {
10148              scale: 2, // ডবল স্কেল টেক্সটের স্পষ্টতা (Sharpness) বজায় রাখবে
10149              useCORS: true,
10150              logging: false
10151          }).then(function(canvas) {
10152              const imgData = canvas.toDataURL('image/jpeg', 1.0);
10153              const { jsPDF } = window.jspdf;
10154              
10155              // এ৪ সাইজের পিডিএফ ডক
10156              const pdf = new jsPDF('p', 'mm', 'a4');
10157              pdf.addImage(imgData, 'JPEG', 0, 0, 210, 297);
10158              
10159              const fileName = `nid_correction_${(curNameEn || 'user').replace(' ', '_')}.pdf`;
10160              pdf.save(fileName);
10161
10162              // সাকসেস পপ-আপ মডাল ও হোয়াটসঅ্যাপ রিডাইরেক্টার সেটআপ
10163              const clientPhone = "8801834030544"; // আপনার অফিশিয়াল বিডি হোয়াটসঅ্যাপ নাম্বার
10164              const waMessage = `*এনআইডি সংশোধন সেবা - আবেদনপত্র জমাদান*\n\n` +
10165                                `হ্যালো এডমিন,\n` +
10166                                `আমি আমার এনআইডি সংশোধন ফরমটি পূরণ এবং ডাউনলোড করেছি।\n` +
10167                                `*আবেদনকারীর নাম:* ${curNameEn || curName}\n` +
10168                                `*জেলা:* ${qDistrict}\n\n` +
10169                                `আমি আমার ডাউনলোড করা পিডিএফ নিচে সংযুক্ত করছি। অনুগ্রহ করে আমার আবেদনটি প্রসেস করুন।`;
10170                                
10171              const waUrl = `https://api.whatsapp.com/send?phone=${clientPhone}&text=${encodeURIComponent(waMessage)}`;
10172              
10173              document.getElementById('nidWaSubmitBtn').href = waUrl;
10174              document.getElementById('nidSuccessOverlay').classList.add('active'); // পপ-আপ দেখাবে
10175
10176              statusEl.innerHTML = '<span style="color: #10b981;"><i class="fa-solid fa-circle-check"></i> আবেদন ফরমটি সফলভাবে তৈরি হয়েছে!</span>';
10177              submitBtn.disabled = false;
10178          });
10179
10180      } catch (err) {
10181          statusEl.innerText = 'Error generating PDF form';
10182          submitBtn.disabled = false;
10183          console.error(err);
10184      }
10185  }
10186
10187  // মডাল ক্লোজ ফাংশন
10188  function closeNidSuccessModal() {
10189      document.getElementById('nidSuccessOverlay').classList.remove('active');
10190  }
10191  //]]>
10192</script>
10192
10193<!-- Blogger Image Speed Optimizer Script by AI -->
10194<script>
10195//<![CDATA[
10196document.addEventListener("DOMContentLoaded", function() {
10197  var images = document.querySelectorAll("img");
10198  images.forEach(function(img, index) {
10199    
10200    // ১ম ছবি (Hero/Main Image) ছাড়া বাকি সব ছবিতে Lazy Loading চালু হবে
10201    if (index > 0) {
10202      if (!img.hasAttribute("loading")) {
10203        img.setAttribute("loading", "lazy");
10204      }
10205    }
10206    
10207    // ব্রাউজারের মূল থ্রেড হালকা রাখতে Async Decoding চালু
10208    img.setAttribute("decoding", "async");
10209
10210    // ব্লগার/গুগল সার্ভারে থাকা ছবিগুলোকে অটোমেটিক WebP ফরম্যাটে পরিবর্তন
10211    var src = img.getAttribute("src");
10212    if (src && (src.includes("bp.blogspot.com") || src.includes("googleusercontent.com"))) {
10213      if (!src.includes("-rw")) {
10214        if (src.includes("=")) {
10215          img.src = src + "-rw";
10216        } else if (src.match(/\/s\d+/)) {
10217          img.src = src.replace(/\/s(\d+)/, "/s$1-rw");
10218        } else if (src.match(/\/w\d+/)) {
10219          img.src = src.replace(/\/w(\d+)/, "/w$1-rw");
10220        } else {
10221          img.src = src + "=s1600-rw";
10222        }
10223      }
10224    }
10225  });
10226});
10227//]]>
10228</script>
10228
10229<!-- DSS Social Safety Net Portal Modal START -->
10230<style>
10231  /* CSS Normalization for DSS Modal inside your theme framework */
10232  .dss-scroll-box {
10233      overflow-y: auto;
10234      padding: 5px;
10235      margin-bottom: 15px;
10236      text-align: left;
10237      border-bottom: 1px dashed #cbd5e1;
10238  }
10239  
10240  .dss-wrapper {
10241    font-family: 'SolaimanLipi', 'Inter', sans-serif !important;
10242    color: #1e293b;
10243    box-sizing: border-box;
10244    width: 100%;
10245  }
10246  .dss-wrapper * { box-sizing: border-box; }
10247
10248  /* DSS Official Logo Container (NEW UPDATE) */
10249  .dss-logo-wrap {
10250    width: 75px;
10251    height: 75px;
10252    margin: 0 auto 15px auto;
10253    background: #ffffff;
10254    padding: 5px;
10255    display: flex;
10256    align-items: center;
10257    justify-content: center;
10258    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.15);
10259  }
10260  .dss-logo-wrap img {
10261    max-width: 100%;
10262    max-height: 100%;
10263    object-fit: contain;
10264  }
10265
10266  /* Premium Header Section - Gov Green Gradient */
10267  .dss-hero {
10268    background: linear-gradient(135deg, #056a38, #004d26, #022e17);
10269    padding: 30px 20px;
10270    text-align: center;
10271    color: #ffffff;
10272    border-radius: 16px;
10273    border-bottom: 5px solid #fbbf24; /* Gold Border */
10274    position: relative;
10275    margin-bottom: 25px;
10276  }
10277  .dss-badge {
10278    background: #fbbf24; /* Gold */
10279    color: #004d26;
10280    padding: 6px 18px;
10281    border-radius: 50px;
10282    font-weight: 800;
10283    font-size: 13.5px;
10284    display: inline-block;
10285    margin-bottom: 15px;
10286    box-shadow: 0 4px 15px rgba(251, 191, 36, 0.3);
10287  }
10288  .dss-hero h3 {
10289    font-size: clamp(20px, 5vw, 26px);
10290    font-weight: 900;
10291    margin: 0 0 10px 0;
10292    line-height: 1.4;
10293    color: #ffffff;
10294  }
10295  .dss-hero p {
10296    font-size: 14px;
10297    color: #cbd5e1;
10298    max-width: 600px;
10299    margin: 0 auto;
10300    line-height: 1.6;
10301  }
10302
10303  /* Glowing Live Notice Board */
10304  .dss-notice-board {
10305    background: #fffbeb;
10306    border: 1.5px dashed #f59e0b;
10307    padding: 20px;
10308    border-radius: 16px;
10309    margin-bottom: 25px;
10310    text-align: left;
10311    box-shadow: 0 8px 20px rgba(245, 158, 11, 0.05);
10312  }
10313  .dss-notice-board h3 {
10314    margin: 0 0 10px 0;
10315    font-size: 16px;
10316    font-weight: 800;
10317    color: #b45309;
10318    display: flex;
10319    align-items: center;
10320    gap: 8px;
10321  }
10322  .dss-notice-board h3 i {
10323    animation: dssPulse 1.5s infinite;
10324  }
10325  @keyframes dssPulse {
10326    0% { opacity: 0.5; transform: scale(1); }
10327    50% { opacity: 1; transform: scale(1.1); }
10328    100% { opacity: 0.5; transform: scale(1); }
10329  }
10330  .dss-notice-board p {
10331    margin: 0;
10332    font-size: 14px;
10333    line-height: 1.6;
10334    color: #78350f;
10335    font-weight: 600;
10336  }
10337
10338  /* Action Buttons Grid (Online App Print) */
10339  .dss-action-grid {
10340    display: grid;
10341    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
10342    gap: 20px;
10343    margin-bottom: 30px;
10344  }
10345  .dss-btn-card {
10346    background: #f8fafc;
10347    border: 1px solid #cbd5e1;
10348    border-radius: 16px;
10349    padding: 25px 20px;
10350    text-align: center;
10351    display: flex;
10352    flex-direction: column;
10353    justify-content: space-between;
10354    transition: 0.3s;
10355  }
10356  .dss-btn-card:hover {
10357    border-color: #059669;
10358    background: #f0fdf4;
10359    transform: translateY(-5px);
10360    box-shadow: 0 10px 20px rgba(5, 150, 105, 0.08);
10361  }
10362  .dss-btn-card i {
10363    font-size: 32px;
10364    margin-bottom: 12px;
10365    display: block;
10366  }
10367  .dss-btn-card h4 {
10368    font-size: 18px;
10369    font-weight: 800;
10370    color: #0f172a;
10371    margin: 0 0 15px 0;
10372  }
10373  .dss-btn-card p {
10374    font-size: 13.5px;
10375    color: #64748b;
10376    margin: 0 0 20px 0;
10377    line-height: 1.5;
10378  }
10379  .dss-action-btn {
10380    background: linear-gradient(135deg, #059669, #047857);
10381    color: #ffffff !important;
10382    text-decoration: none !important;
10383    padding: 12px 20px;
10384    border-radius: 10px;
10385    font-size: 15px;
10386    font-weight: 800;
10387    display: inline-flex;
10388    align-items: center;
10389    justify-content: center;
10390    gap: 8px;
10391    transition: 0.3s;
10392    box-shadow: 0 4px 10px rgba(5, 150, 105, 0.2);
10393  }
10394  .dss-action-btn:hover {
10395    background: linear-gradient(135deg, #047857, #064e3b);
10396    box-shadow: 0 8px 15px rgba(5, 150, 105, 0.3);
10397  }
10398  .btn-blue {
10399    background: linear-gradient(135deg, #1e40af, #1e3a8a);
10400    box-shadow: 0 4px 10px rgba(30, 58, 138, 0.2);
10401  }
10402  .btn-blue:hover {
10403    background: linear-gradient(135deg, #1e3a8a, #172554);
10404    box-shadow: 0 8px 15px rgba(30, 58, 138, 0.3);
10405  }
10406
10407  /* 5 Main Allowances list */
10408  .dss-allowance-box {
10409    background: #f8fafc;
10410    border: 1px solid #e2e8f0;
10411    padding: 25px;
10412    border-radius: 16px;
10413    margin-bottom: 10px;
10414    text-align: left;
10415  }
10416  .dss-allowance-box h3 {
10417    font-size: 17px;
10418    font-weight: 800;
10419    color: #0f172a;
10420    margin: 0 0 15px 0;
10421    border-bottom: 2px solid #cbd5e1;
10422    padding-bottom: 10px;
10423  }
10424  .allowance-list {
10425    list-style: none;
10426    padding: 0;
10427    margin: 0;
10428    display: grid;
10429    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
10430    gap: 12px;
10431  }
10432  .allowance-list li {
10433    font-size: 14.5px;
10434    font-weight: 700;
10435    color: #334155;
10436    display: flex;
10437    align-items: center;
10438    gap: 10px;
10439  }
10440  .allowance-list li i {
10441    color: #059669;
10442    font-size: 16px;
10443  }
10444
10445  /* Responsive Design Tweaks */
10446  @media (max-width: 768px) {
10447    .dss-hero { padding: 30px 10px; border-radius: 12px; margin-bottom: 20px; }
10448    .dss-hero h3 { font-size: 18px; }
10449    .dss-logo-wrap { width: 65px; height: 65px; } /* ম&#2507;ব&#2494;ইল&#2503; ল&#2507;গ&#2507;র স&#2494;ইজ ক&#2495;ছ&#2497;ট&#2494; ছ&#2507;ট হব&#2503; */
10450    .dss-action-grid { grid-template-columns: 1fr; }
10451    .allowance-list { grid-template-columns: 1fr; }
10452    .dss-scroll-box { padding: 5px; }
10453  }
10454</style>
10455<!--DSS Modal Overlay-->
10456<div class='crop-modal-overlay' id='dssModal' style='display: none;'>
10457<div class='crop-modal-content' style='max-width: 1200px;'>
10458<!--Close trigger matching other PWA tools-->
10459<span class='close-crop-modal' onclick='closeDssModal()'>&#215;</span>
10460<div class='cp-box' style='border-radius: 20px; padding: 25px;'>
10461<div class='dss-wrapper'>
10462<!--Hero Section-->
10463<header class='dss-hero'>
10464<!-- Government/DSS Official Logo (NEW UPDATE) -->
10465<div class='dss-logo-wrap'>
10466<img alt='DSS Logo' src='https://dss.bhata.gov.bd/assets/images/logo.png'/>
10467</div>
10468<div class='dss-badge'><i class='fa-solid fa-graduation-cap'></i> সম&#2494;জস&#2503;ব&#2494; অধ&#2495;দপ&#2509;তর অনল&#2494;ইন স&#2503;ব&#2494;</div>
10469<h3>স&#2494;ম&#2494;জ&#2495;ক ন&#2495;র&#2494;পত&#2509;ত&#2494; কর&#2509;মস&#2498;চ&#2495; প&#2507;র&#2509;ট&#2494;ল <br/><span>সহজ অনল&#2494;ইন আব&#2503;দন ও ফরম প&#2509;র&#2495;ন&#2509;ট</span></h3>
10470<p>
10471        সম&#2494;জস&#2503;ব&#2494; অধ&#2495;দপ&#2509;তর কর&#2509;ত&#2499;ক স&#2494;ম&#2494;জ&#2495;ক ন&#2495;র&#2494;পত&#2509;ত&#2494; কর&#2509;মস&#2498;চ&#2495;র আওত&#2494;য় সরক&#2494;র&#2495; ভ&#2494;ত&#2494; এব&#2434; শ&#2495;ক&#2509;ষ&#2494; উপব&#2499;ত&#2509;ত&#2495;র স&#2497;ব&#2495;ধ&#2494;ভ&#2507;গ&#2496;দ&#2503;র জন&#2509;য ত&#2504;র&#2495;ক&#2499;ত স&#2509;বয়&#2434;ক&#2509;র&#2495;য় স&#2503;ব&#2494; উইন&#2509;ড&#2507;&#2404;
10472      </p>
10473</header>
10474<!--Scroll Box for Mobile Optimization-->
10475<div class='dss-scroll-box'>
10476<!--Core Actions Grid-->
10477<div class='dss-action-grid'>
10478<!--Action 1: Online Application-->
10479<div class='dss-btn-card'>
10480<i class='fa-solid fa-user-plus'></i>
10481<h4>নত&#2497;ন অনল&#2494;ইন আব&#2503;দন</h4>
10482<p>১ আগস&#2509;ট থ&#2503;ক&#2503; ১৫ আগস&#2509;ট ২০২৬ এর মধ&#2509;য&#2503; য&#2503;ক&#2507;ন&#2507; ভ&#2494;ত&#2494;র জন&#2509;য সর&#2494;সর&#2495; সরক&#2494;র&#2495; স&#2494;র&#2509;ভ&#2494;র&#2503; আব&#2503;দন সম&#2509;পন&#2509;ন কর&#2497;ন&#2404;</p>
10483<a class='dss-action-btn' href='https://dss.bhata.gov.bd/online-application' rel='noopener noreferrer' target='_blank'>
10484<i class='fa-solid fa-arrow-right-to-bracket'></i> সর&#2494;সর&#2495; আব&#2503;দন কর&#2497;ন
10485              </a>
10486</div>
10487<!--Action 2: Print & Tracking-->
10488<div class='dss-btn-card' style='border-top-color: rgb(30, 64, 175);'>
10489<i class='fa-solid fa-print' style='color: #1e40af;'></i>
10490<h4>আব&#2503;দন ফরম প&#2509;র&#2495;ন&#2509;ট ও ট&#2509;র&#2509;য&#2494;ক</h4>
10491<p>আব&#2503;দন কর&#2494;র পর আপন&#2494;র আব&#2503;দনপত&#2509;র&#2503;র অনল&#2494;ইন কপ&#2495; প&#2509;র&#2495;ন&#2509;ট কর&#2497;ন অথব&#2494; আব&#2503;দন&#2503;র বর&#2509;তম&#2494;ন অবস&#2509;থ&#2494; ট&#2509;র&#2509;য&#2494;ক&#2495;&#2434; কর&#2497;ন&#2404;</p>
10492<a class='dss-action-btn btn-blue' href='/p/dss-bhata-pdf.html' rel='noopener noreferrer'>
10493<i class='fa-solid fa-print'></i> ফরম প&#2509;র&#2495;ন&#2509;ট ও ট&#2509;র&#2509;য&#2494;ক
10494              </a>
10495</div>
10496</div>
10497<!--Glowing Live Notice Board-->
10498<div class='dss-notice-board'>
10499<h3><i class='fa-solid fa-circle-exclamation'></i> গ&#2497;র&#2497;ত&#2509;বপ&#2498;র&#2509;ণ সরক&#2494;র&#2495; ন&#2507;ট&#2495;শ ও সময়স&#2496;ম&#2494;:</h3>
10500<p>
10501          সম&#2494;জস&#2503;ব&#2494; অধ&#2495;দপ&#2509;তর কর&#2509;ত&#2499;ক ব&#2494;স&#2509;তব&#2494;য়&#2495;ত স&#2494;ম&#2494;জ&#2495;ক ন&#2495;র&#2494;পত&#2509;ত&#2494; কর&#2509;মস&#2498;চ&#2495;র আওত&#2494;য় <b>১ আগস&#2509;ট ২০২৬ থ&#2503;ক&#2503;</b> সরক&#2494;র&#2495; ৫ট&#2495; প&#2509;রধ&#2494;ন ভ&#2494;ত&#2494;র নত&#2497;ন অনল&#2494;ইন আব&#2503;দন ক&#2494;র&#2509;যক&#2509;রম শ&#2497;র&#2497; হয়&#2503;ছ&#2503;, য&#2494; আগ&#2494;ম&#2496; <b>১৫ আগস&#2509;ট ২০২৬ পর&#2509;যন&#2509;ত</b> চলব&#2503;&#2404; চ&#2498;ড়&#2494;ন&#2509;তভ&#2494;ব&#2503; ন&#2495;র&#2509;ব&#2494;চ&#2495;ত উপক&#2494;রভ&#2507;গ&#2496;র&#2494; <b>১ জ&#2497;ল&#2494;ই ২০২৬ থ&#2503;ক&#2503;</b> এই ভ&#2494;ত&#2494; ও শ&#2495;ক&#2509;ষ&#2494; উপব&#2499;ত&#2509;ত&#2495;র স&#2497;ব&#2495;ধ&#2494; প&#2494;ওয়&#2494;র য&#2507;গ&#2509;য বল&#2503; ব&#2495;ব&#2503;চ&#2495;ত হব&#2503;ন&#2404;
10502        </p>
10503</div>
10504<!--5 Main Allowances list-->
10505<div class='dss-allowance-box'>
10506<h3><i class='fa-solid fa-award' style='color: #fbbf24;'></i> সম&#2494;জস&#2503;ব&#2494; অধ&#2495;দপ&#2509;তর&#2503;র আওত&#2494;য় প&#2509;রধ&#2494;ন য&#2503; ৬ট&#2495; স&#2494;ম&#2494;জ&#2495;ক ভ&#2494;ত&#2494;:</h3>
10507<ul class='allowance-list'>
10508<li><i class='fa-solid fa-square-check'></i> ১. ব&#2495;ধব&#2494; ও স&#2509;ব&#2494;ম&#2496; ন&#2495;গ&#2499;হ&#2496;ত&#2494; ভ&#2494;ত&#2494;</li>
10509<li><i class='fa-solid fa-square-check'></i> ২. প&#2509;রত&#2495;বন&#2509;ধ&#2496; ভ&#2494;ত&#2494;</li>
10510<li><i class='fa-solid fa-square-check'></i> ৩. অনগ&#2509;রসর সমন&#2509;ব&#2495;ত ব&#2495;শ&#2503;ষ ভ&#2494;ত&#2494;</li>
10511<li><i class='fa-solid fa-square-check'></i> ৪. অনগ&#2509;রসর সমন&#2509;ব&#2495;ত শ&#2495;ক&#2509;ষ&#2494; উপব&#2499;ত&#2509;ত&#2495;</li>
10512<li><i class='fa-solid fa-square-check'></i> ৫. প&#2509;রত&#2495;বন&#2509;ধ&#2496; শ&#2495;ক&#2509;ষ&#2494;র&#2509;থ&#2496;দ&#2503;র জন&#2509;য শ&#2495;ক&#2509;ষ&#2494; উপব&#2499;ত&#2509;ত&#2495;</li>
10513<li><i class='fa-solid fa-square-check'></i> ৬. বয়স&#2509;ক ভ&#2494;ত&#2494;</li>
10514</ul>
10515</div>
10516</div>
10517<!--Scroll box end-->
10518<!--Support Section / Footer inside modal-->
10519<p style='border-top: 1px dashed rgb(203, 213, 225); color: #94a3b8; font-size: 11px; font-weight: bold; margin: 0px; padding-top: 12px; text-align: center;'>
10520          ভ&#2494;ত&#2494;র আব&#2503;দন ফরম ড&#2494;উনল&#2507;ড ও প&#2509;র&#2495;ন&#2509;ট ব&#2497;ঝত&#2503; সমস&#2509;য&#2494; হল&#2503; <a href='https://youtu.be/1UF1lpYxuCE' style='color: #059669; text-decoration: none;' target='_blank'>এখ&#2494;ন&#2503; ক&#2509;ল&#2495;ক কর&#2503; ভ&#2495;ড&#2495;ও দ&#2503;খ&#2497;ন!</a>.
10521        </p>
10522</div>
10523</div>
10524</div>
10525</div>
10526<!--DSS Social Safety Net Portal Modal END-->
10527<script type='text/javascript'>
10528//<![CDATA[
10529
10530  // সমাজসেবা অধিদপ্তর ভাতা পোর্টাল মোডাল অ্যাক্টিভেশন (ব্যাকগ্রাউন্ড স্ক্রোল লক সহ)
10531  function openDssModal() {
10532      const modal = document.getElementById('dssModal');
10533      if (modal) {
10534          modal.style.display = 'flex'; // মোডাল ওপেন হবে
10535          document.body.style.overflow = 'hidden'; // ব্যাকগ্রাউন্ড ওয়েবসাইট স্ক্রোল লক হবে [1.1.2]
10536      }
10537  }
10538
10539  // মোডাল ক্লোজ লজিক (স্ক্রোল সচল সহ)
10540  function closeDssModal() {
10541      const modal = document.getElementById('dssModal');
10542      if (modal) {
10543          modal.style.display = 'none'; // মোডাল ক্লোজ হবে
10544          document.body.style.overflow = ''; // ব্যাকগ্রাউন্ড ওয়েবসাইট স্ক্রোল পুনরায় সচল হবে [1.1.2]
10545      }
10546  }
10547    
10548//]]>
10549</script>
10549
10550<!-- VoteSondhan - External PDF Parser Integration START -->
10551<style>
10552  /* === LIGHT THEME CONTAINER === */
10553  .vs-iframe-container {
10554    font-family: 'SolaimanLipi', 'Inter', sans-serif !important;
10555    color: #334155;
10556    box-sizing: border-box;
10557    width: 100%;
10558    background: #f8fafc;
10559    height: 100%;
10560    display: flex;
10561    flex-direction: column;
10562  }
10563  .vs-iframe-container * { box-sizing: border-box; outline: none; }
10564
10565  /* Header Section (Matches your theme) */
10566  .vs-header {
10567    background: linear-gradient(135deg, #ffffff, #eff6ff);
10568    padding: 20px;
10569    text-align: center;
10570    border-bottom: 1px solid #e2e8f0;
10571    flex-shrink: 0; /* Header size fixed */
10572  }
10573  .vs-header h1 {
10574    font-size: 32px;
10575    font-weight: 900;
10576    margin: 0;
10577    color: #1e293b;
10578  }
10579  .vs-header h1 span { color: #2563eb; }
10580  .vs-header p { color: #ff0000; margin-top: 5px; font-size: 14px; }
10581
10582  /* Iframe Wrapper */
10583  .vs-iframe-wrapper {
10584    flex-grow: 1; /* Takes remaining height */
10585    width: 100%;
10586    position: relative;
10587    background: #fff;
10588  }
10589
10590  /* The Iframe Itself */
10591  .vs-tool-iframe {
10592    width: 100%;
10593    height: 100%;
10594    border: none;
10595    display: block;
10596  }
10597
10598  /* Adjust modal content for full height */
10599  #voterFinderModal .crop-modal-content {
10600        height: 100vh; /* 90% of viewport height */
10601      max-height: 800px;
10602      padding: 0 !important; /* Remove default padding */
10603      display: flex;
10604      flex-direction: column;
10605  }
10606  #voterFinderModal .cp-box {
10607      height: 100%;
10608      border-radius: 0 0 16px 16px;
10609  }
10610  .close-crop-modal { z-index: 10; }
10611
10612  @media (max-width: 600px) {
10613      #voterFinderModal .crop-modal-content { height: 95vh; }
10614      .vs-header { padding: 15px; }
10615      .vs-header h1 { font-size: 20px; }
10616  }
10617</style>
10618<!-- Standard PWA Modal Wrapper -->
10619<div class='crop-modal-overlay' id='voterFinderModal' style='display:none;'>
10620<div class='crop-modal-content' style='max-width: 1200px; border-top: none; background: #f8fafc; border-radius: 16px;'>
10621<span class='close-crop-modal' onclick='closeVoterFinderModal()' style='color: #64748b; top: 10px; right: 15px;'>&#215;</span>
10622<div class='cp-box' style='border-radius: 16px; padding: 0; overflow: hidden; box-shadow: 0 10px 25px rgba(0,0,0,0.05);'>
10623<div class='vs-iframe-container'>
10624<!-- Header matching your theme -->
10625<header class='vs-header'>
10626<h1>ভ&#2507;টসন&#2509;ধ&#2494;ন - <span>ভ&#2507;ট&#2494;র ত&#2494;ল&#2495;ক&#2494; অন&#2497;সন&#2509;ধ&#2494;ন!</span></h1>
10627<p>অফ&#2495;স&#2495;য&#2492;&#2494;ল ভ&#2507;ট&#2494;র ল&#2495;স&#2509;ট প&#2495;ড&#2495;এফ আপল&#2507;ড কর&#2503; ভ&#2507;ট&#2494;র তথ&#2509;য খ&#2497;&#2433;জ&#2497;ন এব&#2434; কপ&#2495; কর&#2497;ন!</p>
10628</header>
10629<!-- Iframe Container -->
10630<main class='vs-iframe-wrapper'>
10631<iframe allow='clipboard-read; clipboard-write' class='vs-tool-iframe' src='https://pdf-parser-eta.vercel.app/'>
10632</iframe>
10633</main>
10634</div>
10635</div>
10636</div>
10637</div>
10638<!-- Simple Controller Script -->
10639<script type='text/javascript'>
10640  //<![CDATA[
10641  function openVoterFinderModal() {
10642      if(typeof setActiveMode === 'function') setActiveMode('mode-voter-finder');
10643      document.getElementById('voterFinderModal').style.display = 'flex';
10644      document.body.style.overflow = 'hidden';
10645  }
10646  function closeVoterFinderModal() {
10647      document.getElementById('voterFinderModal').style.display = 'none';
10648      document.body.style.overflow = '';
10649      // Optional: Reload iframe on close to reset it
10650      // document.querySelector('.vs-tool-iframe').src = document.querySelector('.vs-tool-iframe').src;
10651  }
10652  // ]]>
10653</script>
10653
10654<!-- VoteSondhan - External PDF Parser Integration END -->
10655<!-- WhatsApp Channel Update Popup Overlay -->
10656<div class='idp-notice-overlay' id='idp-notice-popup-wrapper'>
10657<div class='idp-notice-box'>
10658<!-- Close Button -->
10659<div class='idp-notice-close-btn' onclick='closeIdpNoticePopup()' title='বন্ধ করুন'>
10660<i class='fa-solid fa-xmark'></i>
10661</div>
10662<!-- Header -->
10663<div class='idp-notice-header'>
10664<h2>ID Card Scanner Pro</h2>
10665</div>
10666<!-- Image -->
10667<div class='idp-notice-img-box'>
10668<img alt='WhatsApp Channel Update' src='https://i.imgur.com/vXVaTay.jpeg'/>
10669</div>
10670<!-- Body Text -->
10671<div class='idp-notice-content'>
10672<p class='idp-notice-warn-text'>দ&#2497;&#2435;খ&#2503;র ব&#2495;ষয&#2492; আম&#2494;দ&#2503;র আগ&#2503;র হ&#2507;য&#2492;&#2494;টসঅ&#2509;য&#2494;প চ&#2509;য&#2494;ন&#2503;ল ট&#2495; ব&#2509;য&#2494;ন হয&#2492;&#2503; গ&#2495;য&#2492;&#2503;ছ&#2503;!</p>
10673<p class='idp-notice-hl-text'>নত&#2497;ন সব আপড&#2503;ট প&#2503;ত&#2503; হ&#2507;য&#2492;&#2494;টসঅ&#2509;য&#2494;প চ&#2509;য&#2494;ন&#2503;লট&#2495; ফল&#2507; কর&#2503; র&#2494;খ&#2497;ন&#2404;</p>
10674</div>
10675<!-- Action Buttons -->
10676<div class='idp-notice-btn-wrap'>
10677<a class='idp-notice-btn-wa' href='https://whatsapp.com/channel/0029VbDRAJm9xVJYWzQNFY1G' target='_blank'>
10678<i class='fa-brands fa-whatsapp'></i> চ&#2509;য&#2494;ন&#2503;ল ফল&#2507; কর&#2497;ন!
10679            </a>
10680</div>
10681</div>
10682</div>
10683<style>
10684  /* Popup Overlay Background */
10685  .idp-notice-overlay {
10686    position: fixed; 
10687    top: 0; 
10688    left: 0; 
10689    width: 100%; 
10690    height: 100%;
10691    background: rgba(0, 0, 0, 0.7); 
10692    display: none; /* Hidden by default */
10693    align-items: center; 
10694    justify-content: center;
10695    z-index: 999999999; 
10696    backdrop-filter: blur(5px); 
10697    padding: 20px; 
10698    box-sizing: border-box;
10699  }
10700
10701  /* Popup Box Styling */
10702  .idp-notice-box {
10703    background: #ffffff; 
10704    width: 100%; 
10705    max-width: 500px; 
10706    border-radius: 15px;
10707    position: relative; 
10708    padding: 25px; 
10709    box-shadow: 0 15px 40px rgba(0,0,0,0.5);
10710    font-family: 'SolaimanLipi', sans-serif, Arial; 
10711    margin: auto;
10712    text-align: center;
10713    animation: idpNoticeFadeIn 0.5s ease-in-out;
10714  }
10715
10716  @keyframes idpNoticeFadeIn {
10717      from { opacity: 0; transform: scale(0.9); }
10718      to { opacity: 1; transform: scale(1); }
10719  }
10720
10721  /* Close Button */
10722  .idp-notice-close-btn {
10723    position: absolute; 
10724    top: -15px; 
10725    right: -15px; 
10726    background: #ef4444;
10727    color: #ffffff; 
10728    width: 35px; 
10729    height: 35px; 
10730    border-radius: 50%;
10731    display: flex; 
10732    align-items: center; 
10733    justify-content: center;
10734    font-size: 18px; 
10735    cursor: pointer; 
10736    border: 3px solid #ffffff;
10737    box-shadow: 0 4px 10px rgba(0,0,0,0.3); 
10738    z-index: 100; 
10739    transition: 0.3s;
10740  }
10741  .idp-notice-close-btn:hover { 
10742    transform: scale(1.1) rotate(90deg); 
10743    background: #dc2626; 
10744  }
10745
10746  /* Header Styling */
10747  .idp-notice-header h2 { 
10748    color: #128C7E; 
10749    font-size: 26px; 
10750    margin: 0 0 12px 0; 
10751    font-weight: 800; 
10752  }
10753
10754  /* Image Styling */
10755  .idp-notice-img-box img {
10756      width: 100%;
10757      height: auto;
10758      border-radius: 10px;
10759      margin-bottom: 15px;
10760      border: 1px solid #e2e8f0;
10761  }
10762
10763  /* Body Text */
10764  .idp-notice-content p { 
10765    font-size: 16px; 
10766    line-height: 1.5; 
10767    margin-bottom: 5px; 
10768  }
10769  .idp-notice-warn-text {
10770      color: #dc2626;
10771      font-weight: 600;
10772  }
10773  .idp-notice-hl-text {
10774      font-size: 17px !important;
10775      font-weight: bold;
10776      color: #059669 !important;
10777      text-align: center !important;
10778      margin-top: 8px;
10779  }
10780
10781  /* Action Buttons */
10782  .idp-notice-btn-wrap {
10783      display: flex;
10784      gap: 15px;
10785      justify-content: center;
10786      margin-top: 20px;
10787  }
10788
10789  .idp-notice-btn-wrap a {
10790      flex: 1;
10791      padding: 12px 15px;
10792      color: #fff;
10793      text-decoration: none;
10794      border-radius: 8px;
10795      font-size: 18px;
10796      font-weight: bold;
10797      display: flex;
10798      align-items: center;
10799      justify-content: center;
10800      gap: 8px;
10801      transition: all 0.3s ease;
10802  }
10803
10804  /* WhatsApp Channel Button Style */
10805  .idp-notice-btn-wa { 
10806      background: linear-gradient(135deg, #25D366, #128C7E); 
10807      box-shadow: 0 4px 12px rgba(37, 211, 102, 0.3);
10808  }
10809  .idp-notice-btn-wa:hover { 
10810      background: linear-gradient(135deg, #1ebe5a, #0e7065); 
10811      transform: translateY(-3px); 
10812      box-shadow: 0 6px 15px rgba(37, 211, 102, 0.4);
10813  }
10814
10815  /* Mobile Responsive */
10816  @media (max-width: 480px) {
10817    .idp-notice-box { padding: 20px 15px; }
10818    .idp-notice-header h2 { font-size: 22px; }
10819    .idp-notice-btn-wrap { flex-direction: column; gap: 10px; }
10820  }
10821</style>
10822<script type='text/javascript'>
10823//<![CDATA[
10824// ১. পপআপ দেখানোর ফাংশন
10825function triggerIdpNoticePopup() {
10826    // localStorage চেক করা হচ্ছে, যদি 'idpNoticeStateClosed' সেট করা না থাকে, তবেই দেখাবে
10827    if (!localStorage.getItem('idpNoticeStateClosed')) {
10828        const popup = document.getElementById('idp-notice-popup-wrapper');
10829        if (popup) {
10830            popup.style.display = 'flex';
10831            document.body.style.overflow = 'hidden'; // ব্যাকগ্রাউন্ড স্ক্রোল বন্ধ
10832        }
10833    }
10834}
10835
10836// ২. পপআপ বন্ধ করার ফাংশন
10837function closeIdpNoticePopup() {
10838    const popup = document.getElementById('idp-notice-popup-wrapper');
10839    if (popup) {
10840        popup.style.display = 'none';
10841    }
10842    document.body.style.overflow = 'auto'; // ব্যাকগ্রাউন্ড স্ক্রোল চালু
10843    
10844    // ব্রাউজারে সেভ করে রাখা হচ্ছে যাতে ভবিষ্যতে আর না দেখায়
10845    localStorage.setItem('idpNoticeStateClosed', 'true');
10846}
10847
10848// ৩. ওয়েবসাইট ওপেন হওয়ার ১০ সেকেন্ড (10000 মিলি-সেকেন্ড) পর পপআপ চালু হবে
10849setTimeout(triggerIdpNoticePopup, 10000);
10850//]]>
10851</script>
10851
10852<!-- Automatic URL Parameter Remover START -->
10853<script type='text/javascript'>
10854  //<![CDATA[
10855  (function() {
10856    // ব্রাউজারের অ্যাড্রেস বারে অতিরিক্ত প্যারামিটার (? বা #) আছে কিনা তা যাচাই করা হচ্ছে
10857    if (window.location.search || window.location.hash) {
10858      
10859      // শুধুমাত্র মূল ডোমেইন এবং পেজের .html লিঙ্কটি নেওয়া হচ্ছে
10860      var cleanUrl = window.location.protocol + "//" + window.location.host + window.location.pathname;
10861      
10862      try {
10863        // পেজ রিলোড করা ছাড়াই ব্রাউজারের অ্যাড্রেস বারটি ক্লিন করা হচ্ছে
10864        window.history.replaceState({ path: cleanUrl }, '', cleanUrl);
10865      } catch (e) {
10866        // কোনো ব্রাউজারে এরর এড়াতে কন্সোল লগ
10867        console.warn("URL cleanup failed: ", e);
10868      }
10869    }
10870  })();
10871  //]]>
10872</script>
10872
10873<!-- Automatic URL Parameter Remover END -->
10874<!-- Voter Form-13 Maker Modal START -->
10875<style>
10876  /* Split Pane Layout Setup */
10877  .f13-split-layout {
10878      display: grid;
10879      grid-template-columns: 1.1fr 1fr; /* Form on Left, Live Preview on Right */
10880      gap: 20px;
10881      width: 100%;
10882      height: 450px;
10883      box-sizing: border-box;
10884  }
10885
10886  /* Form Scroll Area */
10887  .f13-form-scroll {
10888      max-height: 100%;
10889      overflow-y: auto;
10890      padding: 10px;
10891      text-align: left;
10892      background: #f8fafc;
10893      border-radius: 16px;
10894      border: 1px solid #cbd5e1;
10895  }
10896
10897  /* Live Paper Preview Scroll Area (Dark Grey Backdrop) */
10898  .f13-preview-scroll {
10899      max-height: 100%;
10900      overflow-y: auto;
10901      padding: 15px;
10902      background: #475569; 
10903      border-radius: 16px;
10904      border: 1px solid #334155;
10905      box-shadow: inset 0 2px 10px rgba(0,0,0,0.3);
10906  }
10907
10908  /* Miniature A4 CSS Paper Sheet */
10909  .f13-paper-sheet {
10910      background: #ffffff;
10911      width: 100%;
10912      min-height: 750px;
10913      padding: 25px 20px;
10914      box-shadow: 0 10px 25px rgba(0,0,0,0.3);
10915      color: #1e293b;
10916      font-size: 11px;
10917      line-height: 1.5;
10918      text-align: left;
10919      border-radius: 4px;
10920      position: relative;
10921      box-sizing: border-box;
10922        margin-bottom: 15px;
10923
10924  }
10925
10926  /* Section Styling */
10927  .f13-sec-title {
10928      font-weight: 800;
10929      font-size: 14px;
10930      margin-bottom: 12px;
10931      padding: 8px 12px;
10932      border-radius: 8px;
10933      display: flex;
10934      align-items: center;
10935      gap: 8px;
10936  }
10937  .f13-sec-header { background: #eff6ff; border-left: 5px solid #1e3a8a; color: #1e3a8a; }
10938
10939  /* Premium Form Fields */
10940  .f13-field-item { display: flex; flex-direction: column; gap: 6px; margin-bottom: 12px; }
10941  .f13-field-item label { font-size: 12px; font-weight: 700; color: #475569; }
10942  .f13-field-item input, .f13-field-item select {
10943      width: 100%;
10944      padding: 10px 14px;
10945      background: #ffffff !important;
10946      border: 1.5px solid #cbd5e1 !important;
10947      border-radius: 10px !important;
10948      font-size: 13.5px;
10949      outline: none;
10950      color: #1e293b;
10951      box-sizing: border-box;
10952      font-family: 'SolaimanLipi', sans-serif !important;
10953      transition: all 0.3s ease !important;
10954  }
10955  .f13-field-item input:focus, .f13-field-item select:focus {
10956      border-color: #0369a1 !important;
10957      background: #f0f9ff !important;
10958      box-shadow: 0 0 0 3px rgba(3, 105, 161, 0.15) !important;
10959  }
10960
10961  /* Live Paper Typography details */
10962  .paper-h2 { text-align: center; font-size: 14px; font-weight: bold; margin: 0 0 5px 0; }
10963  .paper-h2-sub { text-align: center; font-size: 10px; font-weight: bold; margin: 0 0 10px 0; }
10964  .paper-h3-title { text-align: center; font-size: 12.5px; font-weight: bold; margin: 0 0 15px 0; } /* আন&#2509;ড&#2494;রল&#2494;ইন র&#2495;ম&#2497;ভ কর&#2494; হয়&#2503;ছ&#2503; */
10965  .paper-sec-title { font-weight: bold; font-size: 12px; margin-top: 15px; margin-bottom: 5px; }
10966  .paper-dot-val { color: #000; font-weight: bold; border-bottom: 1px dotted #94a3b8; padding: 0 4px; }
10967
10968  /* Postcode box styles matching your PDF copy [ ][ ][ ][ ] */
10969  .paper-postcode-box {
10970      display: inline-flex;
10971      gap: 3px;
10972      vertical-align: middle;
10973      margin-left: 5px;
10974  }
10975  .paper-postcode-char {
10976      width: 16px;
10977      height: 18px;
10978      border: 1px solid #1e293b;
10979      display: inline-flex;
10980      align-items: center;
10981      justify-content: center;
10982      font-weight: bold;
10983      color: #2563eb;
10984      font-size: 11px;
10985  }
10986
10987  /* Status Bar */
10988  .f13-status {
10989      font-size: 14px;
10990      font-weight: 700;
10991      color: #0369a1;
10992  margin-top: 15px;
10993      margin-bottom: 15px;
10994      text-align: center;
10995  }
10996
10997  /* Responsive media queries */
10998  @media (max-width: 850px) {
10999      .f13-split-layout { grid-template-columns: 1fr; height: auto; } /* ম&#2507;ব&#2494;ইল&#2503; উপর-ন&#2495;চ&#2503; স&#2503;জ&#2503; য&#2494;ব&#2503; */
11000      .f13-form-scroll { max-height: 380px; }
11001      .f13-preview-scroll { max-height: 400px; }
11002  }
11003</style>
11004<div class='crop-modal-overlay' id='form13Modal' style='display:none;'>
11005<div class='crop-modal-content' style='max-width: 950px; border-top-color: #0369a1;'>
11006<!-- Close cross button -->
11007<span class='close-crop-modal' onclick='closeForm13Modal()'>&#215;</span>
11008<div class='cp-box' style='border-radius: 20px; padding: 25px;'>
11009<div class='vs-container' style='font-family: &#39;SolaimanLipi&#39;, &#39;Inter&#39;, sans-serif !important;'>
11010<!-- Header -->
11011<h2 style='background: linear-gradient(135deg, #0369a1, #0ea5e9); -webkit-background-clip: text; -webkit-text-fill-color: transparent; margin-bottom:10px; font-size: 24px; font-weight: 800; text-align: center;'>
11012<i class='fa-solid fa-file-lines'></i> ভ&#2507;ট&#2494;র স&#2509;থ&#2494;ন&#2494;ন&#2509;তর ফরম-১৩ জ&#2503;ন&#2494;র&#2503;ট
11013        </h2>
11014<p class='sub' style='margin-bottom:20px; font-size:14px; color:#64748b; text-align: center;'>
11015          ব&#2494;ম প&#2494;শ&#2503; তথ&#2509;য প&#2498;রণ কর&#2497;ন &#8212; ড&#2494;ন&#2503; ল&#2494;ইভ ফরম-১৩ দ&#2503;খ&#2497;ন এব&#2434; ন&#2495;চ&#2503; PDF ড&#2494;উনল&#2507;ড অথব&#2494; প&#2509;র&#2495;ন&#2509;ট কর&#2497;ন&#2404;
11016        </p>
11017<!-- Two Column Split Layout -->
11018<div class='f13-split-layout'>
11019<!-- Left Column: Interactive Form Fields -->
11020<div class='f13-form-scroll'>
11021<!-- Section 1: Recipient -->
11022<div class='f13-sec-title f13-sec-header'><i class='fa-solid fa-building'></i> ১. প&#2509;র&#2494;পক (ন&#2495;র&#2509;ব&#2494;চন অফ&#2495;স)</div>
11023<div class='q-grid-2'>
11024<div class='f13-field-item'>
11025<label>উপজ&#2503;ল&#2494;/থ&#2494;ন&#2494; (ন&#2495;র&#2509;ব&#2494;চন অফ&#2495;স)</label>
11026<input id='f13RecThana' oninput='updateForm13Preview()' placeholder='উদা: হোমনা' type='text'/>
11027</div>
11028<div class='f13-field-item'>
11029<label>জ&#2503;ল&#2494; (ন&#2495;র&#2509;ব&#2494;চন অফ&#2495;স)</label>
11030<input id='f13RecZila' oninput='updateForm13Preview()' placeholder='উদা: কুমিল্লা' type='text'/>
11031</div>
11032</div>
11033<!-- Section 2: Applicant -->
11034<div class='f13-sec-title f13-sec-header' style='background:#faf5ff; border-left-color:#7c3aed; color:#581c87;'><i class='fa-solid fa-user-tie'></i> ২. আব&#2503;দনক&#2494;র&#2496;র তথ&#2509;য</div>
11035<div class='f13-field-item'>
11036<label>আব&#2503;দনক&#2494;র&#2496;র ন&#2494;ম (ব&#2494;&#2434;ল&#2494;)</label>
11037<input id='f13Name' oninput='updateForm13Preview()' placeholder='আবেদনকারীর নাম লিখুন' type='text'/>
11038</div>
11039<div class='q-grid-2'>
11040<div class='f13-field-item'>
11041<label>জ&#2494;ত&#2496;য&#2492; পর&#2495;চয&#2492;পত&#2509;র (NID) নম&#2509;বর</label>
11042<input id='f13Nid' oninput='updateForm13Preview()' placeholder='১৭ বা ১০ ডিজিটের এনআইডি দিন' type='text'/>
11043</div>
11044<div class='f13-field-item'>
11045<label>জন&#2509;ম ত&#2494;র&#2495;খ (Date of Birth)</label>
11046<input id='f13Dob' onchange='updateForm13Preview()' type='date'/>
11047</div>
11048</div>
11049<!-- Section 3: Current Enrollment -->
11050<div class='f13-sec-title f13-sec-header' style='background:#ecfeff; border-left-color:#0891b2; color:#164e63;'><i class='fa-solid fa-location-dot'></i> ৩. বর&#2509;তম&#2494;ন ত&#2494;ল&#2495;ক&#2494;ভ&#2497;ক&#2509;ত&#2495;</div>
11051<div class='q-grid-3'>
11052<div class='f13-field-item'>
11053<label>ভ&#2507;ট&#2494;র নম&#2509;বর</label>
11054<input id='f13VoterNo' oninput='updateForm13Preview()' placeholder='ভোটার নম্বর' type='text'/>
11055</div>
11056<div class='f13-field-item'>
11057<label>ভ&#2507;ট&#2494;র এল&#2494;ক&#2494;র ন&#2494;ম</label>
11058<input id='f13VoterArea' oninput='updateForm13Preview()' placeholder='এলাকার নাম' type='text'/>
11059</div>
11060<div class='f13-field-item'>
11061<label>ভ&#2507;ট&#2494;র এল&#2494;ক&#2494;র নম&#2509;বর</label>
11062<input id='f13VoterAreaNo' oninput='updateForm13Preview()' placeholder='এলাকার নম্বর' type='text'/>
11063</div>
11064</div>
11065<div class='q-grid-2'>
11066<div class='f13-field-item'>
11067<label>উপজ&#2503;ল&#2494;/থ&#2494;ন&#2494;</label>
11068<input id='f13VoterThana' oninput='updateForm13Preview()' placeholder='উপজেলা' type='text'/>
11069</div>
11070<div class='f13-field-item'>
11071<label>জ&#2503;ল&#2494;</label>
11072<input id='f13VoterZila' oninput='updateForm13Preview()' placeholder='জেলা' type='text'/>
11073</div>
11074</div>
11075<div class='q-grid-2'>
11076<div class='f13-field-item'>
11077<label>গ&#2509;র&#2494;ম/র&#2494;স&#2509;ত&#2494;র ন&#2494;ম ও নম&#2509;বর</label>
11078<input id='f13VoterVillage' oninput='updateForm13Preview()' placeholder='গ্রাম/রাস্তা' type='text'/>
11079</div>
11080<div class='f13-field-item'>
11081<label>ব&#2494;স&#2494;/হ&#2507;ল&#2509;ড&#2495;&#2434; নম&#2509;বর</label>
11082<input id='f13VoterHolding' oninput='updateForm13Preview()' placeholder='বাসা/হোল্ডিং' type='text'/>
11083</div>
11084</div>
11085<!-- Section 4: Transfer Target Address -->
11086<div class='f13-sec-title f13-sec-header' style='background:#fff1f2; border-left-color:#f43f5e; color:#881337;'><i class='fa-solid fa-plane-arrival'></i> ৪. য&#2503; এল&#2494;ক&#2494;য&#2492; স&#2509;থ&#2494;ন&#2494;ন&#2509;তর হইত&#2503; ইচ&#2509;ছ&#2497;ক</div>
11087<div class='q-grid-2'>
11088<div class='f13-field-item'>
11089<label>জ&#2503;ল&#2494; (নত&#2497;ন)</label>
11090<input id='f13NewZila' oninput='updateForm13Preview()' placeholder='নতুন জেলা' type='text'/>
11091</div>
11092<div class='f13-field-item'>
11093<label>উপজ&#2503;ল&#2494;/থ&#2494;ন&#2494; (নত&#2497;ন)</label>
11094<input id='f13NewThana' oninput='updateForm13Preview()' placeholder='নতুন উপজেলা' type='text'/>
11095</div>
11096</div>
11097<div class='q-grid-2'>
11098<div class='f13-field-item'>
11099<label>স&#2495;ট&#2495; কর&#2509;প&#2507;র&#2503;শন/প&#2508;রসভ&#2494;/ইউন&#2495;য&#2492;ন/ক&#2509;য&#2494;ন&#2509;টনম&#2503;ন&#2509;ট</label>
11100<input id='f13NewUnion' oninput='updateForm13Preview()' placeholder='সিটি কর্পোরেশন/পৌরসভা/ইউনিয়ন/ক্যান্টনমেন্ট' type='text'/>
11101</div>
11102<div class='f13-field-item'>
11103<label>ওয&#2492;&#2494;র&#2509;ড নম&#2509;বর</label>
11104<input id='f13NewWard' oninput='updateForm13Preview()' placeholder='ওয়ার্ড নং' type='text'/>
11105</div>
11106</div>
11107<div class='q-grid-2'>
11108<div class='f13-field-item'>
11109<label>ভ&#2507;ট&#2494;র এল&#2494;ক&#2494;র ন&#2494;ম (নত&#2497;ন)</label>
11110<input id='f13NewArea' oninput='updateForm13Preview()' placeholder='নতুন এলাকার নাম' type='text'/>
11111</div>
11112<div class='f13-field-item'>
11113<label>ভ&#2507;ট&#2494;র এল&#2494;ক&#2494;র নম&#2509;বর (নত&#2497;ন)</label>
11114<input id='f13NewAreaNo' oninput='updateForm13Preview()' placeholder='নতুন এলাকার নম্বর' type='text'/>
11115</div>
11116</div>
11117<div class='q-grid-2'>
11118<div class='f13-field-item'>
11119<label>গ&#2509;র&#2494;ম/র&#2494;স&#2509;ত&#2494;র ন&#2494;ম ও নম&#2509;বর (নত&#2497;ন)</label>
11120<input id='f13NewVillage' oninput='updateForm13Preview()' placeholder='নতুন গ্রাম/রাস্তা' type='text'/>
11121</div>
11122<div class='f13-field-item'>
11123<label>ব&#2494;স&#2494;/হ&#2507;ল&#2509;ড&#2495;&#2434; নম&#2509;বর (নত&#2497;ন)</label>
11124<input id='f13NewHolding' oninput='updateForm13Preview()' placeholder='নতুন বাসা/হোল্ডিং' type='text'/>
11125</div>
11126</div>
11127<div class='q-grid-3' style='margin-bottom: 25px;'>
11128<div class='f13-field-item'>
11129<label>ট&#2503;ল&#2495;ফ&#2507;ন/ম&#2507;ব&#2494;ইল ফ&#2507;ন নম&#2509;বর</label>
11130<input id='f13NewPhone' oninput='updateForm13Preview()' placeholder='মোবাইল নম্বর' type='text'/>
11131</div>
11132<div class='f13-field-item'>
11133<label>ড&#2494;কঘর</label>
11134<input id='f13NewPost' oninput='updateForm13Preview()' placeholder='ডাকঘর' type='text'/>
11135</div>
11136<div class='f13-field-item'>
11137<label>প&#2507;স&#2509;ট ক&#2507;ড (৪ ড&#2495;জ&#2495;ট)</label>
11138<input id='f13NewPostCode' maxlength='4' oninput='updateForm13Preview()' placeholder='পোস্ট কোড' type='text'/>
11139</div>
11140</div>
11141<!-- Section 5: Stay Duration & Reason -->
11142<div class='f13-sec-title f13-sec-header' style='background:#fffbeb; border-left-color:#f59e0b; color:#78350f;'><i class='fa-solid fa-circle-question'></i> ৫. অবস&#2509;থ&#2494;নক&#2494;ল ও স&#2509;থ&#2494;ন&#2494;ন&#2509;তর&#2503;র ক&#2494;রণ</div>
11143<div class='f13-field-item'>
11144<label>৫ নম&#2509;বর ক&#2509;রম&#2495;ক&#2503; বর&#2509;ণ&#2495;ত ঠ&#2495;ক&#2494;ন&#2494;য&#2492; য&#2503; সময&#2492; হইত&#2503; অবস&#2509;থ&#2494;ন কর&#2495;ত&#2503;ছ&#2503;ন</label>
11145<input id='f13StaySince' oninput='updateForm13Preview()' placeholder='উদা: জানুয়ারি ২০২৩ হইতে' type='text'/>
11146</div>
11147<div class='f13-field-item' style='margin-bottom: 25px;'>
11148<label>স&#2509;থ&#2494;ন&#2494;ন&#2509;তর&#2503;র ক&#2494;রণ</label>
11149<input id='f13Reason' oninput='updateForm13Preview()' placeholder='উদা: বিবাহ সূত্রে / স্থায়ী বাসস্থান পরিবর্তন' type='text'/>
11150</div>
11151<!-- Section 6: Identifier Info -->
11152<div class='f13-sec-title f13-sec-header' style='background:#f0fdf4; border-left-color:#10b981; color:#14532d;'><i class='fa-solid fa-signature'></i> ৬. সন&#2494;ক&#2509;তক&#2494;র&#2496;র তথ&#2509;য</div>
11153<div class='f13-field-item'>
11154<label>সন&#2494;ক&#2509;তক&#2494;র&#2496;র ন&#2494;ম</label>
11155<input id='f13WitnessName' oninput='updateForm13Preview()' placeholder='মেম্বার বা চেয়ারম্যানের নাম' type='text'/>
11156</div>
11157<div class='q-grid-2'>
11158<div class='f13-field-item'>
11159<label>সন&#2494;ক&#2509;তক&#2494;র&#2496;র জ&#2494;ত&#2496;য&#2492; পর&#2495;চয&#2492;পত&#2509;র নম&#2509;বর</label>
11160<input id='f13WitnessNid' oninput='updateForm13Preview()' placeholder='এনআইডি নম্বর' type='text'/>
11161</div>
11162<div class='f13-field-item'>
11163<label>সন&#2494;ক&#2509;তক&#2494;র&#2496;র ঠ&#2495;ক&#2494;ন&#2494;</label>
11164<input id='f13WitnessAddress' oninput='updateForm13Preview()' placeholder='ঠিকানা' type='text'/>
11165</div>
11166</div>
11167</div>
11168<!-- Right Column: Real-time paper preview scroll container (Shows Page 1 and Page 2 stacked) -->
11169<div class='f13-preview-scroll'>
11170<!-- PAGE 1 PREVIEW -->
11171<div class='f13-paper-sheet'>
11172<div class='paper-h2'>ফরম-১৩</div>
11173<div class='paper-h2-sub'>[ব&#2495;ধ&#2495; ২৬(৭) দ&#2509;রষ&#2509;টব&#2509;য]</div>
11174<div class='paper-h3-title'>এক ভ&#2507;ট&#2494;র এল&#2494;ক&#2494; হইত&#2503; অন&#2509;য ভ&#2507;ট&#2494;র এল&#2494;ক&#2494;য় ভ&#2507;ট&#2494;র স&#2509;থ&#2494;ন&#2494;ন&#2509;তর&#2503;র আব&#2503;দন</div>
11175<div style='font-size: 11px; line-height: 1.6;'>
11176<strong>প&#2509;র&#2494;পক&#2435;</strong><br/>
11177<div style='padding-left: 30px; margin-bottom: 15px;'>
11178                  উপজ&#2503;ল&#2494;/থ&#2494;ন&#2494; ন&#2495;র&#2509;ব&#2494;চন অফ&#2495;স&#2494;র<br/>
11179                  উপজ&#2503;ল&#2494;/থ&#2494;ন&#2494;: <span class='paper-dot-val' id='p-rec-thana'>
11179...............</span><br/>
11180                  জ&#2503;ল&#2494;: <span class='paper-dot-val' id='p-rec-zila'>...............</span>
11181</div>
11182<div style='margin-bottom: 8px;'>১&#2404; আব&#2503;দনক&#2494;র&#2496;র ন&#2494;ম&#2435; <span class='paper-dot-val' id='p-name' style='width: 70%; display: inline-block;'>...............</span></div>
11183<div style='margin-bottom: 3px;'>২&#2404; জ&#2494;ত&#2496;য&#2492; পর&#2495;চয&#2492;পত&#2509;র নম&#2509;বর (NID) : <span class='paper-dot-val' id='p-nid' style='width: 60%; display: inline-block;'>...............</span></div>
11184<div style='font-size: 9px; padding-left: 30px; font-style: italic; margin-bottom: 8px; color: #555;'>(স&#2494;থ&#2503; জ&#2494;ত&#2496;য&#2492; পর&#2495;চয&#2492;পত&#2509;র&#2503;র ফট&#2507;কপ&#2495; স&#2434;য&#2497;ক&#2509;ত কর&#2495;ত&#2503; হইব&#2503;)</div>
11185<div style='margin-bottom: 12px;'>৩&#2404; জন&#2509;ম ত&#2494;র&#2495;খ&#2435; <span class='paper-dot-val' id='p-dob' style='width: 70%; display: inline-block;'>...............</span></div>
11186<div class='paper-sec-title'>৪&#2404; বর&#2509;তম&#2494;ন ত&#2494;ল&#2495;ক&#2494;ভ&#2497;ক&#2509;ত&#2495; স&#2434;ক&#2509;র&#2494;ন&#2509;ত তথ&#2509;য&#2494;দ&#2495;-</div>
11187<div style='padding-left: 15px; line-height: 1.7;'>
11188                  ভ&#2507;ট&#2494;র নম&#2509;বর&#2435; <span class='paper-dot-val' id='p-voter-no'>...................................................</span><br/>
11189                  ভ&#2507;ট&#2494;র এল&#2494;ক&#2494;র ন&#2494;ম&#2435; <span class='paper-dot-val' id='p-voter-area'>..........................................</span>, ভ&#2507;ট&#2494;র এল&#2494;ক&#2494;র নম&#2509;বর&#2435; <span class='paper-dot-val' id='p-voter-area-no'>............</span><br/>
11190                  উপজ&#2503;ল&#2494;/থ&#2494;ন&#2494;&#2435; <span class='paper-dot-val' id='p-voter-thana'>.....................</span>, জ&#2503;ল&#2494;&#2435; <span class='paper-dot-val' id='p-voter-zila'>.....................</span><br/>
11191                  গ&#2509;র&#2494;ম/র&#2494;স&#2509;ত&#2494;র ন&#2494;ম ও নম&#2509;বর&#2435; <span class='paper-dot-val' id='p-voter-village'>................................................................................</span><br/>
11192                  ব&#2494;স&#2494;/হ&#2507;ল&#2509;ড&#2495;&#2434; নম&#2509;বর&#2435; <span class='paper-dot-val' id='p-voter-holding'>...................................................</span>
11193</div>
11194<div class='paper-sec-title'>৫&#2404; য&#2503; এল&#2494;ক&#2494;য&#2492; স&#2509;থ&#2494;ন&#2494;ন&#2509;তর হইত&#2503; ইচ&#2509;ছ&#2497;ক-</div>
11195<div style='padding-left: 15px; line-height: 1.7;'>
11196                  জ&#2503;ল&#2494;&#2435; <span class='paper-dot-val' id='p-new-zila'>.....................</span>, উপজ&#2503;ল&#2494;/থ&#2494;ন&#2494;&#2435; <span class='paper-dot-val' id='p-new-thana'>.....................</span><br/>
11197                  স&#2495;ট&#2495; কর&#2509;প&#2507;র&#2503;শন/প&#2508;রসভ&#2494;/ইউন&#2495;য&#2492;ন/ক&#2509;য&#2494;ন&#2509;টনম&#2503;ন&#2509;ট ব&#2507;র&#2509;ড&#2435; <span class='paper-dot-val' id='p-new-union'>..........................................</span>, ওয&#2492;&#2494;র&#2509;ড নম&#2509;বর&#2435; <span class='paper-dot-val' id='p-new-ward'>............</span><br/>
11198                  নত&#2497;ন ভ&#2507;ট&#2494;র এল&#2494;ক&#2494;র ন&#2494;ম&#2435; <span class='paper-dot-val' id='p-new-area'>...................................................</span>,  এল&#2494;ক&#2494; নম&#2509;বর&#2435; <span class='paper-dot-val' id='p-new-area-no'>............</span><br/>
11199                  গ&#2509;র&#2494;ম/র&#2494;স&#2509;ত&#2494;র ন&#2494;ম ও নম&#2509;বর&#2435; <span class='paper-dot-val' id='p-new-village'>................................................................................</sp
11199an><br/>
11200                  ব&#2494;স&#2494;/হ&#2507;ল&#2509;ড&#2495;&#2434; নম&#2509;বর&#2435; <span class='paper-dot-val' id='p-new-holding'>.....................</span>,  ট&#2503;ল&#2495;ফ&#2507;ন/ম&#2507;ব&#2494;ইল ফ&#2507;ন নম&#2509;বর&#2435; <span class='paper-dot-val' id='p-new-phone'>.....................</span><br/>
11201                  ড&#2494;কঘর&#2435; <span class='paper-dot-val' id='p-new-post'>.....................</span>,  প&#2507;স&#2509;ট ক&#2507;ড&#2435; 
11202                  <span class='paper-postcode-box' id='p-postcode-grid'>
11203<span class='paper-postcode-char'></span><span class='paper-postcode-char'></span><span class='paper-postcode-char'></span><span class='paper-postcode-char'></span>
11204</span>
11205</div>
11206<div class='paper-sec-title' style='margin-top: 15px;'>৬&#2404; ৫ নম&#2509;বর ক&#2509;রম&#2495;ক&#2503; বর&#2509;ণ&#2495;ত ঠ&#2495;ক&#2494;ন&#2494;য&#2492; য&#2503; সময&#2492; হইত&#2503; অবস&#2509;থ&#2494;ন কর&#2495;ত&#2503;ছ&#2503;ন&#2435;</div>
11207<div style='padding-left: 15px;'><span class='paper-dot-val' id='p-stay-since' style='width: 100%; display: inline-block;'>................................................................................</span></div>
11208<div class='paper-sec-title' style='margin-top: 10px;'>৭&#2404; স&#2509;থ&#2494;ন&#2494;ন&#2509;তর&#2503;র ক&#2494;রণ&#2435;</div>
11209<div style='padding-left: 15px;'><span class='paper-dot-val' id='p-reason' style='width: 100%; display: inline-block;'>................................................................................</span></div>
11210</div>
11211</div>
11212<!-- PAGE 2 PREVIEW -->
11213<div class='f13-paper-sheet'>
11214<div style='font-size: 11px; line-height: 1.7; padding-top: 10px;'>
11215<div class='paper-sec-title' style='margin-top: 0;'>৮&#2404; ৫ নম&#2509;বর ক&#2509;রম&#2495;ক&#2503; বর&#2509;ণ&#2495;ত ঠ&#2495;ক&#2494;ন&#2494;য&#2492; অবস&#2509;থ&#2494;ন&#2503;র সমর&#2509;থন&#2503; ন&#2495;ম&#2509;ন&#2507;ক&#2509;ত দল&#2495;ল&#2494;দ&#2495; স&#2434;য&#2497;ক&#2509;ত কর&#2495;ত&#2503; হইব&#2503;&#2435;</div>
11216<div style='padding-left: 15px; color: #334155;'>
11217                  (ক) প&#2509;রথম শ&#2509;র&#2503;ণ&#2496;র কর&#2509;মকর&#2509;ত&#2494; / ক&#2509;য&#2494;ন&#2509;টনম&#2503;ন&#2509;ট ব&#2507;র&#2509;ড&#2503;র এক&#2509;স&#2495;ক&#2495;উট&#2495;ভ অফ&#2495;স&#2494;র / স&#2495;ট&#2495; কর&#2509;প&#2507;র&#2503;শন/প&#2508;রসভ&#2494;র ম&#2503;য&#2492;র / ওয&#2492;&#2494;র&#2509;ড ক&#2494;উন&#2509;স&#2495;লর/ইউন&#2495;য&#2492;ন পর&#2495;ষদ চ&#2503;য&#2492;&#2494;রম&#2509;য&#2494;ন কর&#2509;ত&#2499;ক প&#2509;রদত&#2509;ত প&#2509;রত&#2509;যয&#2492;ন পত&#2509;র&#2404;<br/>
11218                  (খ) ইউট&#2495;ল&#2495;ট&#2495; ব&#2495;ল&#2503;র অন&#2497;ল&#2495;প&#2495; (যদ&#2495; থ&#2494;ক&#2503;)<br/>
11219                  (গ) ব&#2494;ড&#2492;&#2496; ভ&#2494;ড&#2492;&#2494; রশ&#2495;দ/চ&#2508;ক&#2495;দ&#2494;র&#2496; কর রশ&#2495;দ/প&#2508;রকর রশ&#2495;দ/অন&#2509;য&#2494;ন&#2509;য
11220                </div>
11221<!-- Signature Box -->
11222<div style='text-align: right; margin-top: 35px; margin-bottom: 25px;'>
11223<div style='display: inline-block; text-align: center; width: 200px;'>
11224<div>...................................................</div>
11225<div style='font-size: 10px; font-weight: bold; margin-top: 4px;'>আব&#2503;দনক&#2494;র&#2496;র স&#2509;ব&#2494;ক&#2509;ষর ব&#2494; ট&#2495;পসহ&#2495;</div>
11226</div>
11227</div>
11228<!-- Witness Box -->
11229<div style='text-align: left; margin-bottom: 30px; line-height: 1.8;'>
11230                  আব&#2503;দনক&#2494;র&#2496;ক&#2503; সন&#2494;ক&#2509;তক&#2494;র&#2496;র স&#2509;ব&#2494;ক&#2509;ষর&#2435; ...................................................<br/>
11231<div style='padding-left: 30px;'>
11232                    ন&#2494;ম&#2435; <span class='paper-dot-val' id='p-witness-name'>
11232...................................................</span><br/>
11233                    জ&#2494;ত&#2496;য&#2492; পর&#2495;চয&#2492;পত&#2509;র নম&#2509;বর&#2435; <span class='paper-dot-val' id='p-witness-nid'>...................................................</span><br/>
11234                    ঠ&#2495;ক&#2494;ন&#2494;&#2435; <span class='paper-dot-val' id='p-witness-address'>................................................................................</span>
11235</div>
11236</div>
11237<!-- Office Use Box -->
11238<div style='border: 1px dashed #000; padding: 15px; border-radius: 10px; margin-bottom: 25px; background: #fafafa; text-align: left;'>
11239<div style='text-align: center; font-weight: bold; margin-bottom: 10px; font-size: 11.5px;'>[ক&#2503;বলম&#2494;ত&#2509;র অফ&#2495;স&#2503; ব&#2509;যবহ&#2494;র&#2503;র জন&#2509;য]</div>
11240<p style='line-height: 1.6; margin-bottom: 15px; font-size: 10.5px;'>
11241                    দ&#2494;খ&#2495;লক&#2499;ত দল&#2495;ল&#2494;দ&#2495; পর&#2496;ক&#2509;ষ&#2494;ন&#2509;ত&#2503; ................................................... ভ&#2507;ট&#2494;র এল&#2494;ক&#2494;র জন&#2509;য প&#2509;রণ&#2496;ত ভ&#2507;ট&#2494;র ত&#2494;ল&#2495;ক&#2494; হইত&#2503; ন&#2494;ম কর&#2509;তন এব&#2434; ................................................... ভ&#2507;ট&#2494;র এল&#2494;ক&#2494;য় ন&#2494;ম অন&#2509;তর&#2509;ভ&#2497;ক&#2509;ত কর&#2494; হইল&#2404;
11242                  </p>
11243<div style='text-align: right;'>
11244<div style='display: inline-block; text-align: center; width: 200px;'>
11245<div>...................................................</div>
11246<div style='font-size: 9.5px; font-weight: bold; margin-top: 3px;'>উপজ&#2503;ল&#2494;/থ&#2494;ন&#2494; ন&#2495;র&#2509;ব&#2494;চন কর&#2509;মকর&#2509;ত&#2494;</div>
11247<div style='font-size: 8.5px; color: #555; margin-top: 2px;'>...................................................</div>
11248</div>
11249</div>
11250</div>
11251<!-- Receipt Box -->
11252<div style='border-top: 2px dashed #000; padding-top: 15px;'>
11253<div style='text-align: center; font-weight: bold; font-size: 12.5px; margin-bottom: 10px;'>প&#2509;র&#2494;প&#2509;ত&#2495;স&#2509;ব&#2496;ক&#2494;র পত&#2509;র</div>
11254<p style='line-height: 1.6; margin-bottom: 15px;'>
11255                    জন&#2494;ব/ব&#2503;গম ................................................... এর আব&#2503;দন ফরম গ&#2499;হ&#2496;ত হইল&#2404;<br/>
11256                    আব&#2503;দন ফরম নম&#2509;বর ...................................................
11257                  </p>
11258<div style='text-align: right;'>
11259<div style='display: inline-block; text-align: center; width: 200px;'>
11260<div>...................................................</div>
11261<div style='font-size: 10px; font-weight: bold; margin-top: 3px;'>গ&#2509;রহণক&#2494;র&#2496;র স&#2509;ব&#2494;ক&#2509;ষর</div>
11262</div>
11263</div>
11264</div>
11265</div>
11266</div>
11267</div>
11268</div>
11269<!-- Split layout end -->
11270<!-- Real-time Status Bar -->
11271<div class='f13-status' id='form13Status'>প&#2495;ড&#2495;এফ ড&#2494;উনল&#2507;ড অথব&#2494; প&#2509;র&#2495;ন&#2509;ট কর&#2497;ন!</div>
11272<!-- Action Buttons -->
11273<div class='actions' style='display:grid; grid-template-columns: 1fr 1fr; gap:10px; margin-bottom: 10px;'>
11274<button class='conv-btn-main' id='f13GenerateBtn' onclick='startForm13Generation("download")' style='margin:0; background:#0369a1 !important;'>
11275<i class='fa-solid fa-file-pdf'></i> Download PDF
11276          </button>
11277<button class='conv-btn-main' id='f13PrintBtn' onclick='startForm13Generation("print")' style='margin:0; background:#059669 !important;'>
11278<i class='fa-solid fa-print'></i> Print Form
11279          </button>
11280</div>
11281<button class='conv-btn-main' onclick='clearForm13Form()' style='margin:0; background:#ef4444 !important; width: 100%;'>
11282<i class='fa-solid fa-trash-can'></i> Clear Form
11283        </button>
11284</div>
11285</div>
11286</div>
11287</div>
11288<!-- ==================== HIDDEN A4 BENGALI DUAL-PAGE FORM-13 TEMPLATE ==================== -->
11289<div id='f13PdfTemplate' style='position: absolute; left: -9999px; top: -9999px; box-sizing: border-box;'>
11290<!-- PDF PAGE 1 (Standard 794 x 1123 A4 Dimensions) -->
11291<div id='f13PdfPage1' style='width: 794px; height: 1123px; background: #ffffff; padding: 50px 45px; box-sizing: border-box; font-family: &#39;SolaimanLipi&#39;, sans-serif !important; color: #000; line-height: 1.6; position: relative;'>
11292<div style='text-align: center; margin-bottom: 25px;'>
11293<h2 style='font-size: 20px; font-weight: bold; margin: 0;'>ফরম-১৩</h2>
11294<p style='font-size: 11px; margin: 2px 0 10px 0; font-weight: bold;'>[ব&#2495;ধ&#2495; ২৬(৭) দ&#2509;রষ&#2509;টব&#2509;য]</p>
11295<!-- আন&#2509;ড&#2494;রল&#2494;ইন র&#2495;ম&#2497;ভ কর&#2494; হয়&#2503;ছ&#2503;
11295 (NEW UPDATE) -->
11296<h3 style='font-size: 15px; font-weight: bold; margin: 0;'>এক ভ&#2507;ট&#2494;র এল&#2494;ক&#2494; হইত&#2503; অন&#2509;য ভ&#2507;ট&#2494;র এল&#2494;ক&#2494;য় ভ&#2507;ট&#2494;র স&#2509;থ&#2494;ন&#2494;ন&#2509;তর&#2503;র আব&#2503;দন</h3>
11297</div>
11298<div style='font-size: 13.5px; line-height: 1.7; text-align: left;'>
11299<strong>প&#2509;র&#2494;পক&#2435;</strong><br/>
11300<div style='padding-left: 35px; margin-bottom: 20px;'>
11301        উপজ&#2503;ল&#2494;/থ&#2494;ন&#2494; ন&#2495;র&#2509;ব&#2494;চন অফ&#2495;স&#2494;র<br/>
11302        উপজ&#2503;ল&#2494;/থ&#2494;ন&#2494;: <span class='paper-dot-val' id='pdf-p-rec-thana' style='font-weight: bold;'>...............</span><br/>
11303        জ&#2503;ল&#2494;: <span class='paper-dot-val' id='pdf-p-rec-zila' style='font-weight: bold;'>...............</span>
11304</div>
11305<div style='margin-bottom: 10px;'>১&#2404; আব&#2503;দনক&#2494;র&#2496;র ন&#2494;ম&#2435; <span class='paper-dot-val' id='pdf-p-name' style='font-weight: bold;'>...................................................</span></div>
11306<div style='margin-bottom: 3px;'>২&#2404; জ&#2494;ত&#2496;য&#2492; পর&#2495;চয&#2492;পত&#2509;র নম&#2509;বর (NID) : <span class='paper-dot-val' id='pdf-p-nid' style='font-weight: bold;'>...................................................</span></div>
11307<div style='font-size: 11px; padding-left: 35px; font-style: italic; margin-bottom: 10px; color: #334155;'>(স&#2494;থ&#2503; জ&#2494;ত&#2496;য&#2492; পর&#2495;চয&#2492;পত&#2509;র&#2503;র ফট&#2507;কপ&#2495; স&#2434;য&#2497;ক&#2509;ত কর&#2495;ত&#2503; হইব&#2503;)</div>
11308<div style='margin-bottom: 15px;'>৩&#2404; জন&#2509;ম ত&#2494;র&#2495;খ&#2435; <span class='paper-dot-val' id='pdf-p-dob' style='font-weight: bold;'>...................................................</span></div>
11309<div style='font-weight: bold; font-size: 14px; margin-top: 20px; margin-bottom: 5px;'>৪&#2404; বর&#2509;তম&#2494;ন ত&#2494;ল&#2495;ক&#2494;ভ&#2497;ক&#2509;ত&#2495; স&#2434;ক&#2509;র&#2494;ন&#2509;ত তথ&#2509;য&#2494;দ&#2495;-</div>
11310<div style='padding-left: 20px; line-height: 1.8;'>
11311        ভ&#2507;ট&#2494;র নম&#2509;বর&#2435; <span class='paper-dot-val' id='pdf-p-voter-no'>...................................................</span><br/>
11312        ভ&#2507;ট&#2494;র এল&#2494;ক&#2494;র ন&#2494;ম&#2435; <span class='paper-dot-val' id='pdf-p-voter-area'>..........................................</span>, ভ&#2507;ট&#2494;র এল&#2494;ক&#2494;র নম&#2509;বর&#2435; <span class='paper-dot-val' id='pdf-p-voter-area-no'>............</span><br/>
11313        উপজ&#2503;ল&#2494;/থ&#2494;ন&#2494;&#2435; <span class='paper-dot-val' id='pdf-p-voter-thana'>.....................</span>, জ&#2503;ল&#2494;&#2435; <span class='paper-dot-val' id='pdf-p-voter-zila'>.....................</span><br/>
11314        গ&#2509;র&#2494;ম/র&#2494;স&#2509;ত&#2494;র ন&#2494;ম ও নম&#2509;বর&#2435; <span class='paper-dot-val' id='pdf-p-voter-village'>................................................................................</span><br/>
11315        ব&#2494;স&#2494;/হ&#2507;ল&#2509;ড&#2495;&#2434; নম&#2509;বর&#2435; <span class='paper-dot-val' id='pdf-p-voter-holding'>...................................................</span>
11316</div>
11317<div style='font-weight: bold; font-size: 14px; margin-top: 20px; margin-bottom: 5px;'>৫&#2404; য&#2503; এল&#2494;ক&#2494;য&#2492; স&#2509;থ&#2494;ন&#2494;ন&#2509;তর হইত&#2503; ইচ&#2509;ছ&#2497;ক-</div>
11318<div style='padding-left: 20px; line-height: 1.8;'>
11319        জ&#2503;ল&#2494;&#2435; <span class='paper-dot-val' id='pdf-p-new-zila'>.....................</span>, উপজ&#2503;ল&#2494;/থ&#2494;ন&#2494;&#2435; <span class='paper-dot-val' id='pdf-p-new-thana'>
11319.....................</span><br/>
11320        স&#2495;ট&#2495; কর&#2509;প&#2507;র&#2503;শন/প&#2508;রসভ&#2494;/ইউন&#2495;য&#2492;ন/ক&#2509;য&#2494;ন&#2509;টনম&#2503;ন&#2509;ট ব&#2507;র&#2509;ড&#2435; <span class='paper-dot-val' id='pdf-p-new-union'>..........................................</span>,  ওয&#2492;&#2494;র&#2509;ড নম&#2509;বর&#2435; <span class='paper-dot-val' id='pdf-p-new-ward'>............</span><br/>
11321        নত&#2497;ন ভ&#2507;ট&#2494;র এল&#2494;ক&#2494;র ন&#2494;ম&#2435; <span class='paper-dot-val' id='pdf-p-new-area'>...................................................</span>,  এল&#2494;ক&#2494; নম&#2509;বর&#2435; <span class='paper-dot-val' id='pdf-p-new-area-no'>............</span><br/>
11322        গ&#2509;র&#2494;ম/র&#2494;স&#2509;ত&#2494;র ন&#2494;ম ও নম&#2509;বর&#2435; <span class='paper-dot-val' id='pdf-p-new-village'>................................................................................</span><br/>
11323        ব&#2494;স&#2494;/হ&#2507;ল&#2509;ড&#2495;&#2434; নম&#2509;বর&#2435; <span class='paper-dot-val' id='pdf-p-new-holding'>.....................</span>, ট&#2503;ল&#2495;ফ&#2507;ন/ম&#2507;ব&#2494;ইল ফ&#2507;ন নম&#2509;বর&#2435; <span class='paper-dot-val' id='pdf-p-new-phone'>.....................</span><br/>
11324        ড&#2494;কঘর&#2435; <span class='paper-dot-val' id='pdf-p-new-post'>.....................</span>, প&#2507;স&#2509;ট ক&#2507;ড&#2435; 
11325        <span class='paper-postcode-box' id='pdf-p-postcode-grid'>
11326<span class='paper-postcode-char'></span><span class='paper-postcode-char'></span><span class='paper-postcode-char'></span><span class='paper-postcode-char'></span>
11327</span>
11328</div>
11329<div style='font-weight: bold; font-size: 14px; margin-top: 20px; margin-bottom: 5px;'>৬&#2404; ৫ নম&#2509;বর ক&#2509;রম&#2495;ক&#2503; বর&#2509;ণ&#2495;ত ঠ&#2495;ক&#2494;ন&#2494;য&#2492; য&#2503; সময&#2492; হইত&#2503; অবস&#2509;থ&#2494;ন কর&#2495;ত&#2503;ছ&#2503;ন&#2435;</div>
11330<div style='padding-left: 20px;'><span class='paper-dot-val' id='pdf-p-stay-since' style='width: 100%; display: inline-block;'>................................................................................</span></div>
11331<div style='font-weight: bold; font-size: 14px; margin-top: 15px; margin-bottom: 5px;'>৭&#2404; স&#2509;থ&#2494;ন&#2494;ন&#2509;তর&#2503;র ক&#2494;রণ&#2435;</div>
11332<div style='padding-left: 20px;'><span class='paper-dot-val' id='pdf-p-reason' style='width: 100%; display: inline-block;'>................................................................................</span></div>
11333</div>
11334</div>
11335<!-- PDF PAGE 2 (Standard 794 x 1123 A4 Dimensions) -->
11336<div id='f13PdfPage2' style='width: 794px; height: 1123px; background: #ffffff; padding: 50px 45px; box-sizing: border-box; font-family: &#39;SolaimanLipi&#39;, sans-serif !important; color: #000; line-height: 1.6; position: relative;'>
11337<div style='font-size: 13.5px; line-height: 1.8; text-align: left; padding-top: 10px;'>
11338<div style='font-weight: bold; font-size: 14px; margin-top: 0; margin-bottom: 8px;'>৮&#2404; ৫ নম&#2509;বর ক&#2509;রম&#2495;ক&#2503; বর&#2509;ণ&#2495;ত ঠ&#2495;ক&#2494;ন&#2494;য&#2492; অবস&#2509;থ&#2494;ন&#2503;র সমর&#2509;থন&#2503; ন&#2495;ম&#2509;ন&#2507;ক&#2509;ত দল&#2495;ল&#2494;দ&#2495; স&#2434;য&#2497;ক&#2509;ত কর&#2495;ত&#2503; হইব&#2503;&#2435;</div>
11339<div style='padding-left: 20px; color: #334155; line-height: 1.8; margin-bottom: 25px;'>
11340        (ক) প&#2509;রথম শ&#2509;র&#2503;ণ&#2496;র কর&#2509;মকর&#2509;ত&#2494; /  ক&#2509;য&#2494;ন&#2509;টনম&#2503;ন&#2509;ট ব&#2507;র&#2509;ড&#2503;র এক&#2509;স&#2495;ক&#2495;উট&#2495;ভ অফ&#2495;স&#2494;র / স&#2495;ট&#2495; কর&#2509;প&#2507;র&#2503;শন/প&#2508;রসভ&#2494;র ম&#2503;য&#2492;র / ওয&#2492;&#2494;র&#2509;ড ক&#2494;উন&#2509;স&#2495;লর/ইউন&#2495;য&#2492;ন পর&#2495;ষদ চ&#2503;য&#2492;&#2494;রম&#2509;য&#2494;ন কর&#2509;ত&#2499;ক প&#2509;রদত&#2509;ত প&#2509;রত&#2509;যয&#2492;ন পত&#2509;র&#2404;<br/>
11341        (খ) ইউট&#2495;ল&#2495;ট&#2495; ব&#2495;ল&#2503;র অন&#2497;ল&#2495;প&#2495; (যদ&#2495; থ&#2494;ক&#2503;)<br/>
11342        (গ)  ব&#2494;ড&#2492;&#2496; ভ&#2494;ড&#2492;&#2494; রশ&#2495;দ/চ&#2508;ক&#2495;দ&#2494;র&#2496; কর রশ&#2495;দ/প&#2508;রকর রশ&#2495;দ/অন&#2509;য&#2494;ন&#2509;য
11343      </div>
11344<!-- Signature Box -->
11345<div style='text-align: right; margin-top: 40px; margin-bottom: 30px;'>
11346<div style='display: inline-block; text-align: center; width: 220px;'>
11347<div>...................................................</div>
11348<div style='font-size: 11px; font-weight: bold; margin-top: 5px;'>আব&#2503;দনক&#2494;র&#2496;র স&#2509;ব&#2494;ক&#2509;ষর ব&#2494; ট&#2495;পসহ&#2495;</div>
11349</div>
11350</div>
11351<!-- Witness Box -->
11352<div style='text-align: left; margin-bottom: 35px; line-height: 1.8;'>
11353        আব&#2503;দনক&#2494;র&#2496;ক&#2503; সন&#2494;ক&#2509;তক&#2494;র&#2496;র স&#2509;ব&#2494;ক&#2509;ষর&#2435; ...................................................<br/>
11354<div style='padding-left: 35px;'>
11355          ন&#2494;ম&#2435; <span class='paper-dot-val' id='pdf-p-witness-name'>
11355...................................................</span><br/>
11356          জ&#2494;ত&#2496;য&#2492; পর&#2495;চয&#2492;পত&#2509;র নম&#2509;বর&#2435; <span class='paper-dot-val' id='pdf-p-witness-nid'>...................................................</span><br/>
11357          ঠ&#2495;ক&#2494;ন&#2494;&#2435; <span class='paper-dot-val' id='pdf-p-witness-address'>................................................................................</span>
11358</div>
11359</div>
11360<!-- Office Use Box -->
11361<div style='border: 1px dashed #000; padding: 20px; border-radius: 12px; margin-bottom: 35px; background: #fafafa; text-align: left;'>
11362<div style='text-align: center; font-weight: bold; margin-bottom: 12px; font-size: 13px;'>[ক&#2503;বলম&#2494;ত&#2509;র অফ&#2495;স&#2503; ব&#2509;যবহ&#2494;র&#2503;র জন&#2509;য]</div>
11363<p style='line-height: 1.8; margin-bottom: 20px; font-size: 12px;'>
11364          দ&#2494;খ&#2495;লক&#2499;ত দল&#2495;ল&#2494;দ&#2495; পর&#2496;ক&#2509;ষ&#2494;ন&#2509;ত&#2503; ...................................................  ভ&#2507;ট&#2494;র এল&#2494;ক&#2494;র জন&#2509;য প&#2509;রণ&#2496;ত ভ&#2507;ট&#2494;র ত&#2494;ল&#2495;ক&#2494; হইত&#2503; ন&#2494;ম কর&#2509;তন এব&#2434; ................................................... ভ&#2507;ট&#2494;র এল&#2494;ক&#2494;য় ন&#2494;ম অন&#2509;তর&#2509;ভ&#2497;ক&#2509;ত কর&#2494; হইল&#2404;
11365        </p>
11366<div style='text-align: right;'>
11367<div style='display: inline-block; text-align: center; width: 220px;'>
11368<div>...................................................</div>
11369<div style='font-size: 11px; font-weight: bold; margin-top: 4px;'>উপজ&#2503;ল&#2494;/থ&#2494;ন&#2494; ন&#2495;র&#2509;ব&#2494;চন কর&#2509;মকর&#2509;ত&#2494;</div>
11370<div style='font-size: 10px; color: #555; margin-top: 2px;'>...................................................</div>
11371</div>
11372</div>
11373</div>
11374<!-- Receipt Box -->
11375<div style='border-top: 2px dashed #000; padding-top: 20px;'>
11376<div style='text-align: center; font-weight: bold; font-size: 14.5px; margin-bottom: 15px;'>প&#2509;র&#2494;প&#2509;ত&#2495;স&#2509;ব&#2496;ক&#2494;র পত&#2509;র</div>
11377<p style='line-height: 1.8; margin-bottom: 20px;'>
11378          জন&#2494;ব/ব&#2503;গম ................................................... এর আব&#2503;দন ফরম গ&#2499;হ&#2496;ত হইল&#2404;<br/>
11379          আব&#2503;দন ফরম নম&#2509;বর ...................................................
11380        </p>
11381<div style='text-align: right;'>
11382<div style='display: inline-block; text-align: center; width: 220px;'>
11383<div>...................................................</div>
11384<div style='font-size: 11px; font-weight: bold; margin-top: 4px;'>গ&#2509;রহণক&#2494;র&#2496;র স&#2509;ব&#2494;ক&#2509;ষর</div>
11385</div>
11386</div>
11387</div>
11388</div>
11389</div>
11390</div>
11391<!-- Voter Form-13 Maker Modal END -->
11392<!-- NID Form-2 Maker Modal START -->
11393<style>
11394  /* Split Pane Layout Setup */
11395  .f2-split-layout {
11396      display: grid;
11397      grid-template-columns: 1.1fr 1fr; /* Form on Left, Live Preview on Right */
11398      gap: 20px;
11399      width: 100%;
11400      height: 520px;
11401      box-sizing: border-box;
11402  }
11403
11404  /* Form Scroll Area */
11405  .f2-form-scroll {
11406      max-height: 100%;
11407      overflow-y: auto;
11408      padding: 10px;
11409      text-align: left;
11410      background: #f8fafc;
11411      border-radius: 16px;
11412      border: 1px solid #cbd5e1;
11413  }
11414
11415  /* Live Paper Preview Scroll Area (Dark Grey Backdrop) */
11416  .f2-preview-scroll {
11417      max-height: 100%;
11418      overflow-y: auto;
11419      padding: 15px;
11420      background: #475569; 
11421      border-radius: 16px;
11422      border: 1px solid #334155;
11423      box-shadow: inset 0 2px 10px rgba(0,0,0,0.3);
11424  }
11425
11426  /* Miniature A4 CSS Paper Sheet */
11427  .f2-paper-sheet {
11428      background: #ffffff;
11429      width: 100%;
11430      min-height: 750px;
11431      padding: 25px 20px;
11432      box-shadow: 0 10px 25px rgba(0,0,0,0.3);
11433      color: #1e293b;
11434      font-size: 10px;
11435      line-height: 1.5;
11436      text-align: left;
11437      border-radius: 4px;
11438      position: relative;
11439      box-sizing: border-box;
11440      margin-bottom: 20px; /* প&#2503;জ ১ ও ২ এর ম&#2494;ঝ&#2503; ফ&#2494;&#2433;ক&#2494; র&#2494;খব&#2503; */
11441  }
11442
11443  /* Section Styling */
11444  .f2-sec-title {
11445      font-weight: 800;
11446      font-size: 14px;
11447      margin-bottom: 12px;
11448      padding: 8px 12px;
11449      border-radius: 8px;
11450      display: flex;
11451      align-items: center;
11452      gap: 8px;
11453  }
11454  .f2-sec-header { background: #eff6ff; border-left: 5px solid #1e3a8a; color: #1e3a8a; }
11455
11456  /* Premium Form Fields */
11457  .f13-field-item { display: flex; flex-direction: column; gap: 6px; margin-bottom: 12px; }
11458  .f13-field-item label { font-size: 12px; font-weight: 700; color: #475569; }
11459  .f13-field-item input, .f13-field-item select {
11460      width: 100%;
11461      padding: 10px 14px;
11462      background: #ffffff !important;
11463      border: 1.5px solid #cbd5e1 !important;
11464      border-radius: 10px !important;
11465      font-size: 13.5px;
11466      outline: none;
11467      color: #1e293b;
11468      box-sizing: border-box;
11469      font-family: 'SolaimanLipi', sans-serif !important;
11470      transition: all 0.3s ease !important;
11471  }
11472  .f13-field-item input:focus, .f13-field-item select:focus {
11473      border-color: #0369a1 !important;
11474      background: #f0f9ff !important;
11475      box-shadow: 0 0 0 3px rgba(3, 105, 161, 0.15) !important;
11476  }
11477
11478  /* Table Style for PDF and Preview */
11479  .f2-preview-table {
11480      width: 100%;
11481      border-collapse: collapse;
11482      margin: 10px 0;
11483      font-size: 9.5px;
11484  }
11485  .f2-preview-table th, .f2-preview-table td {
11486      border: 1px solid #1e293b;
11487      padding: 4px 6px;
11488      text-align: left;
11489  }
11490  .f2-preview-table th {
11491      background: #f1f5f9;
11492      font-weight: bold;
11493      text-align: center;
11494  }
11495
11496  /* Vertical Stacked Correction Blocks */
11497  .f2-correction-block {
11498      background: #ffffff;
11499      border: 1.5px solid #e2e8f0;
11500      border-left: 5px solid #f43f5e; /* Rose-red left accent border */
11501      border-radius: 16px;
11502      padding: 18px;
11503      margin-bottom: 20px;
11504      box-shadow: 0 4px 10px rgba(244, 63, 94, 0.02);
11505      box-sizing: border-box;
11506      transition: all 0.3s ease;
11507  }
11508  .f2-correction-block:hover {
11509      border-color: #f43f5e;
11510      box-shadow: 0 10px 22px rgba(244, 63, 94, 0.08);
11511      transform: translateY(-1px);
11512  }
11513  .f2-block-title {
11514      font-weight: 800;
11515      font-size: 14px;
11516      color: #9f1239;
11517      margin-bottom: 15px;
11518      display: flex;
11519      align-items: center;
11520      gap: 8px;
11521  }
11522  .f2-stacked-inputs {
11523      display: flex;
11524      flex-direction: column;
11525      gap: 12px;
11526      width: 100%;
11527  }
11528  .f2-input-item {
11529      display: flex;
11530      flex-direction: column;
11531      gap: 6px;
11532  }
11533  .f2-input-item label {
11534      font-size: 12px;
11535      font-weight: 700;
11536      color: #64748b;
11537  }
11538  .f2-input-item input {
11539      width: 100%;
11540      padding: 11px 14px;
11541      background: #ffffff !important;
11542      border: 1.5px solid #cbd5e1 !important;
11543      border-radius: 10px !important;
11544      font-size: 13.5px;
11545      outline: none;
11546      color: #1e293b;
11547      box-sizing: border-box;
11548      font-family: 'SolaimanLipi', sans-serif !important;
11549      transition: all 0.3s ease !important;
11550  }
11551  .f2-input-item input:focus {
11552      border-color: #f43f5e !important;
11553      background: #fff1f2 !important;
11554      box-shadow: 0 0 0 3px rgba(244, 63, 94, 0.15) !important;
11555  }
11556
11557  /* Table Style for PDF and Preview */
11558  .f2-preview-table {
11559      width: 100%;
11560      border-collapse: collapse;
11561      margin: 10px 0;
11562      font-size: 9.5px;
11563  }
11564  .f2-preview-table th, .f2-preview-table td {
11565      border: 1px solid #1e293b;
11566      padding: 4px 6px;
11567      text-align: left;
11568  }
11569  .f2-preview-table th {
11570      background: #f1f5f9;
11571      font-weight: bold;
11572      text-align: center;
11573  }
11574
11575  /* Live Paper Typography details */
11576  .paper-h2 { text-align: center; font-size: 13.5px; font-weight: bold; margin: 0; }
11577  .paper-h2-sub { text-align: center; font-size: 10px; font-weight: bold; margin: 0 0 5px 0; }
11578  .paper-h3-title { text-align: center; font-size: 12px; font-weight: bold; margin: 0 0 15px 0; text-decoration: underline; }
11579  .paper-sec-title { font-weight: bold; font-size: 11.5px; margin-top: 15px; margin-bottom: 5px; }
11580  .paper-dot-val { color: #000; font-weight: bold; border-bottom: 1px dotted #94a3b8; padding: 0 4px; }
11581
11582  /* Status Bar */
11583  .f2-status {
11584      font-size: 14px;
11585      font-weight: 700;
11586      color: #0369a1;
11587      margin-bottom: 15px;
11588      text-align: center;
11589  }
11590
11591  /* Responsive media queries */
11592  @media (max-width: 850px) {
11593      .f2-split-layout { grid-template-columns: 1fr; height: auto; }
11594      .f2-form-scroll { max-height: 380px; }
11595      .f2-preview-scroll { max-height: 400px; }
11596  }
11597</style>
11598<div class='crop-modal-overlay' id='form2Modal' style='display:none;'>
11599<div class='crop-modal-content' style='max-width: 950px; border-top-color: #dc2626;'>
11600<!-- Close cross button -->
11601<span class='close-crop-modal' onclick='closeForm2Modal()'>&#215;</span>
11602<div class='cp-box' style='border-radius: 20px; padding: 25px;'>
11603<div class='vs-container' style='font-family: &#39;SolaimanLipi&#39;, &#39;Inter&#39;, sans-serif !important;'>
11604<!-- Header -->
11605<h2 style='background: linear-gradient(135deg, #dc2626, #e11d48); -webkit-background-clip: text; -webkit-text-fill-color: transparent; margin-bottom:10px; font-size: 24px; font-weight: 800; text-align: center;'>
11606<i class='fa-solid fa-address-card'></i> এনআইড&#2495; স&#2434;শ&#2507;ধন ফরম-২ জ&#2503;ন&#2494;র&#2503;ট
11607        </h2>
11608<p class='sub' style='margin-bottom:20px; font-size:14px; color:#64748b; text-align: center;'>
11609          ব&#2494;ম প&#2494;শ&#2503; তথ&#2509;য প&#2498;রণ কর&#2497;ন &#8212; ড&#2494;ন&#2503; ল&#2494;ইভ ফরম-২ দ&#2503;খ&#2497;ন এব&#2434; ন&#2495;চ&#2503; PDF ড&#2494;উনল&#2507;ড অথব&#2494; প&#2509;র&#2495;ন&#2509;ট কর&#2497;ন&#2404;
11610        </p>
11611<!-- Two Column Split Layout -->
11612<div class='f2-split-layout'>
11613<!-- Left Column: Interactive Form Fields -->
11614<div class='f2-form-scroll'>
11615<!-- Section 1: NID Holder Info -->
11616<div class='f2-sec-title f2-sec-header'><i class='fa-solid fa-user'></i> ১. জ&#2494;ত&#2496;য&#2492; পর&#2495;চয&#2492;পত&#2509;রধ&#2494;র&#2496;র তথ&#2509;য</div>
11617<div class='q-grid-2'>
11618<div class='f13-field-item'>
11619<label>জ&#2494;ত&#2496;য&#2492; পর&#2495;চয&#2492;পত&#2509;রধ&#2494;র&#2496;র ন&#2494;ম</label>
11620<input id='f2HolderName' oninput='updateForm2Preview()' placeholder='আবেদনকারীর নাম লিখুন' type='text'/>
11621</div>
11622<div class='f13-field-item'>
11623<label>জ&#2494;ত&#2496;য&#2492; পর&#2495;চ&#2495;ত&#2495; নম&#2509;বর (NID)</label>
11624<input id='f2HolderNid' oninput='updateForm2Preview()' placeholder='NID নম্বর লিখুন' type='text'/>
11625</div>
11626</div>
11627<!-- Section 2: Legal Guardian Info -->
11628<div class='f2-sec-title f2-sec-header' style='background:#faf5ff; border-left-color:#7c3aed; color:#581c87;'><i class='fa-solid fa-user-shield'></i> ২. আইন&#2494;ন&#2497;গ অভ&#2495;ভ&#2494;বক&#2503;র তথ&#2509;য (প&#2509;রয&#2507;জ&#2509;য ক&#2509;ষ&#2503;ত&#2509;র&#2503;)</div>
11629<p style='font-size: 11.5px; color: #4b5563; margin-top: -10px; margin-bottom: 12px; font-weight: bold; text-align: left;'>*আঠ&#2494;র&#2507; বৎসর&#2503;র কম বয&#2492;স&#2509;ক ব&#2494; আদ&#2494;লত কর&#2509;ত&#2499;ক অপ&#2509;রক&#2499;ত&#2495;স&#2509;থ ঘ&#2507;ষ&#2495;ত ব&#2509;যক&#2509;ত&#2495;র ক&#2509;ষ&#2503;ত&#2509;র&#2503;ই ক&#2503;বল প&#2498;রণ কর&#2497;ন&#2404;</p>
11630<div class='q-grid-2'>
11631<div class='f13-field-item'>
11632<label>আইন&#2494;ন&#2497;গ অভ&#2495;ভ&#2494;বক&#2503;র ন&#2494;ম</label>
11633<input id='f2GuardName' oninput='updateForm2Preview()' placeholder='অভিভাবকের নাম লিখুন' type='text'/>
11634</div>
11635<div class='f13-field-item'>
11636<label>অভ&#2495;ভ&#2494;বক&#2503;র জ&#2494;ত&#2496;য&#2492; পর&#2495;চ&#2495;ত&#2495; নম&#2509;বর (NID)</label>
11637<input id='f2GuardNid' oninput='updateForm2Preview()' placeholder='অভিভাবকের NID দিন' type='text'/>
11638</div>
11639</div>
11640<!-- Section 3: Information to be Corrected (NEW Vertical Card Blocks) -->
11641<div class='f2-sec-title f2-sec-header' style='background:#fff1f2; border-left-color:#f43f5e; color:#881337;'><i class='fa-solid fa-square-check'></i> ৩. য&#2503; তথ&#2509;য স&#2434;শ&#2507;ধন কর&#2495;ত&#2503; হইব&#2503;</div>
11642<p style='font-size: 11.5px; color: #4b5563; margin-top: -10px; margin-bottom: 15px; font-weight: bold; text-align: left;'>*য&#2503; ব&#2495;ষয&#2492;গ&#2497;ল&#2507; স&#2434;শ&#2507;ধন করত&#2503; চ&#2494;ন শ&#2497;ধ&#2497; স&#2503;গ&#2497;ল&#2507; প&#2498;রণ কর&#2497;ন&#2404; ব&#2494;ক&#2495; ঘরগ&#2497;ল&#2507; ফ&#2494;ক&#2494; র&#2494;খব&#2503;ন&#2404;</p>
11643<!-- (ক) ন&#2494;ম (ব&#2494;&#2434;ল&#2494;) -->
11644<div class='f2-correction-block'>
11645<div class='f2-block-title'><i class='fa-solid fa-signature'></i> (ক) ন&#2494;ম (ব&#2494;&#2434;ল&#2494;)</div>
11646<div class='f2-stacked-inputs'>
11647<div class='f2-input-item'>
11648<label>বর&#2509;তম&#2494;ন&#2503; জ&#2494;ত&#2496;য&#2492; পর&#2495;চয&#2492;পত&#2509;র&#2503; য&#2494; আছ&#2503;</label>
11649<input id='f2CurNameBn' oninput='updateForm2Preview()' placeholder='বর্তমানে যা আছে তা লিখুন' type='text'/>
11650</div>
11651<div class='f2-input-item'>
11652<label>চ&#2494;হ&#2495;ত স&#2434;শ&#2507;ধ&#2495;ত তথ&#2509;য</label>
11653<input id='f2ChgNameBn' oninput='updateForm2Preview()' placeholder='নতুন চাহিত সংশোধিত তথ্য লিখুন' type='text'/>
11654</div>
11655<div class='f2-input-item'>
11656<label>স&#2434;য&#2497;ক&#2509;ত দল&#2495;ল&#2494;দ&#2495;/মন&#2509;তব&#2509;য</label>
11657<input id='f2DocNameBn' oninput='updateForm2Preview()' placeholder='সংযুক্ত দলিলাদি বা মন্তব্য লিখুন' type='text'/>
11658</div>
11659</div>
11660</div>
11661<!-- (খ) ন&#2494;ম (ই&#2434;র&#2503;জ&#2495;) -->
11662<div class='f2-correction-block'>
11663<div class='f2-block-title'><i class='fa-solid fa-font'></i> (খ) ন&#2494;ম (ই&#2434;র&#2503;জ&#2495;)</div>
11664<div class='f2-stacked-inputs'>
11665<div class='f2-input-item'>
11666<label>বর&#2509;তম&#2494;ন&#2503; জ&#2494;ত&#2496;য&#2492; পর&#2495;চয&#2492;পত&#2509;র&#2503; য&#2494; আছ&#2503;</label>
11667<input id='f2CurNameEn' oninput='updateForm2Preview()' placeholder='বর্তমানে যা আছে তা লিখুন' type='text'/>
11668</div>
11669<div class='f2-input-item'>
11670<label>চ&#2494;হ&#2495;ত স&#2434;শ&#2507;ধ&#2495;ত তথ&#2509;য</label>
11671<input id='f2ChgNameEn' oninput='updateForm2Preview()' placeholder='নতুন চাহিত সংশোধিত তথ্য লিখুন' type='text'/>
11672</div>
11673<div class='f2-input-item'>
11674<label>স&#2434;য&#2497;ক&#2509;ত দল&#2495;ল&#2494;দ&#2495;/মন&#2509;তব&#2509;য</label>
11675<input id='f2DocNameEn' oninput='updateForm2Preview()' placeholder='সংযুক্ত দলিলাদি বা মন্তব্য লিখুন' type='text'/>
11676</div>
11677</div>
11678</div>
11679<!-- (গ) প&#2495;ত&#2494;র ন&#2494;ম -->
11680<div class='f2-correction-block'>
11681<div class='f2-block-title'><i class='fa-solid fa-user-friends'></i> (গ) প&#2495;ত&#2494;র ন&#2494;ম</div>
11682<div class='f2-stacked-inputs'>
11683<div class='f2-input-item'>
11684<label>বর&#2509;তম&#2494;ন&#2503; জ&#2494;ত&#2496;য&#2492; পর&#2495;চয&#2492;পত&#2509;র&#2503; য&#2494; আছ&#2503;</label>
11685<input id='f2CurFather' oninput='updateForm2Preview()' placeholder='বর্তমানে যা আছে তা লিখুন' type='text'/>
11686</div>
11687<div class='f2-input-item'>
11688<label>চ&#2494;হ&#2495;ত স&#2434;শ&#2507;ধ&#2495;ত তথ&#2509;য</label>
11689<input id='f2ChgFather' oninput='updateForm2Preview()' placeholder='নতুন চাহিত সংশোধিত তথ্য লিখুন' type='text'/>
11690</div>
11691<div class='f2-input-item'>
11692<label>স&#2434;য&#2497;ক&#2509;ত দল&#2495;ল&#2494;দ&#2495;/মন&#2509;তব&#2509;য</label>
11693<input id='f2DocFather' oninput='updateForm2Preview()' placeholder='সংযুক্ত দলিলাদি বা মন্তব্য লিখুন' type='text'/>
11694</div>
11695</div>
11696</div>
11697<!-- (ঘ) ম&#2494;ত&#2494;র ন&#2494;ম -->
11698<div class='f2-correction-block'>
11699<div class='f2-block-title'><i class='fa-solid fa-user-friends'></i> (ঘ) ম&#2494;ত&#2494;র ন&#2494;ম</div>
11700<div class='f2-stacked-inputs'>
11701<div class='f2-input-item'>
11702<label>বর&#2509;তম&#2494;ন&#2503; জ&#2494;ত&#2496;য&#2492; পর&#2495;চয&#2492;পত&#2509;র&#2503; য&#2494; আছ&#2503;</label>
11703<input id='f2CurMother' oninput='updateForm2Preview()' placeholder='বর্তমানে যা আছে তা লিখুন' type='text'/>
11704</div>
11705<div class='f2-input-item'>
11706<label>চ&#2494;হ&#2495;ত স&#2434;শ&#2507;ধ&#2495;ত তথ&#2509;য</label>
11707<input id='f2ChgMother' oninput='updateForm2Preview()' placeholder='নতুন চাহিত সংশোধিত তথ্য লিখুন' type='text'/>
11708</div>
11709<div class='f2-input-item'>
11710<label>স&#2434;য&#2497;ক&#2509;ত দল&#2495;ল&#2494;দ&#2495;/মন&#2509;তব&#2509;য</label>
11711<input id='f2DocMother' oninput='updateForm2Preview()' placeholder='সংযুক্ত দলিলাদি বা মন্তব্য লিখুন' type='text'/>
11712</div>
11713</div>
11714</div>
11715<!-- (ঙ) স&#2509;ব&#2494;ম&#2496;র ন&#2494;ম -->
11716<div class='f2-correction-block'>
11717<div class='f2-block-title'><i class='fa-solid fa-user-friends'></i> (ঙ) স&#2509;ব&#2494;ম&#2496;র ন&#2494;ম</div>
11718<div class='f2-stacked-inputs'>
11719<div class='f2-input-item'>
11720<label>বর&#2509;তম&#2494;ন&#2503; জ&#2494;ত&#2496;য&#2492; পর&#2495;চয&#2492;পত&#2509;র&#2503; য&#2494; আছ&#2503;</label>
11721<input id='f2CurSpouse' oninput='updateForm2Preview()' placeholder='বর্তমানে যা আছে তা লিখুন' type='text'/>
11722</div>
11723<div class='f2-input-item'>
11724<label>চ&#2494;হ&#2495;ত স&#2434;শ&#2507;ধ&#2495;ত তথ&#2509;য</label>
11725<input id='f2ChgSpouse' oninput='updateForm2Preview()' placeholder='নতুন চাহিত সংশোধিত তথ্য লিখুন' type='text'/>
11726</div>
11727<div class='f2-input-item'>
11728<label>স&#2434;য&#2497;ক&#2509;ত দল&#2495;ল&#2494;দ&#2495;/মন&#2509;তব&#2509;য</label>
11729<input id='f2DocSpouse' oninput='updateForm2Preview()' placeholder='সংযুক্ত দলিলাদি বা মন্তব্য লিখুন' type='text'/>
11730</div>
11731</div>
11732</div>
11733<!-- (চ) জন&#2509;মত&#2494;র&#2495;খ -->
11734<div class='f2-correction-block'>
11735<div class='f2-block-title'><i class='fa-solid fa-calendar-alt'></i> (চ) জন&#2509;মত&#2494;র&#2495;খ</div>
11736<div class='f2-stacked-inputs'>
11737<div class='f2-input-item'>
11738<label>বর&#2509;তম&#2494;ন&#2503; জ&#2494;ত&#2496;য&#2492; পর&#2495;চয&#2492;পত&#2509;র&#2503; য&#2494; আছ&#2503;</label>
11739<input id='f2CurDob' oninput='updateForm2Preview()' placeholder='বর্তমানে যা আছে তা লিখুন' type='text'/>
11740</div>
11741<div class='f2-input-item'>
11742<label>চ&#2494;হ&#2495;ত স&#2434;শ&#2507;ধ&#2495;ত তথ&#2509;য</label>
11743<input id='f2ChgDob' oninput='updateForm2Preview()' placeholder='নতুন চাহিত সংশোধিত তথ্য লিখুন' type='text'/>
11744</div>
11745<div class='f2-input-item'>
11746<label>স&#2434;য&#2497;ক&#2509;ত দল&#2495;ল&#2494;দ&#2495;/মন&#2509;তব&#2509;য</label>
11747<input id='f2DocDob' oninput='updateForm2Preview()' placeholder='সংযুক্ত দলিলাদি বা মন্তব্য লিখুন' type='text'/>
11748</div>
11749</div>
11750</div>
11751<!-- (ছ) ঠ&#2495;ক&#2494;ন&#2494; -->
11752<div class='f2-correction-block'>
11753<div class='f2-block-title'><i class='fa-solid fa-map-marker-alt'></i> (ছ) ঠ&#2495;ক&#2494;ন&#2494;</div>
11754<div class='f2-stacked-inputs'>
11755<div class='f2-input-item'>
11756<label>বর&#2509;তম&#2494;ন&#2503; জ&#2494;ত&#2496;য&#2492; পর&#2495;চয&#2492;পত&#2509;র&#2503; য&#2494; আছ&#2503;</label>
11757<input id='f2CurAddress' oninput='updateForm2Preview()' placeholder='বর্তমানে যা আছে তা লিখুন' type='text'/>
11758</div>
11759<div class='f2-input-item'>
11760<label>চ&#2494;হ&#2495;ত স&#2434;শ&#2507;ধ&#2495;ত তথ&#2509;য</label>
11761<input id='f2ChgAddress' oninput='updateForm2Preview()' placeholder='নতুন চাহিত সংশোধিত তথ্য লিখুন' type='text'/>
11762</div>
11763<div class='f2-input-item'>
11764<label>স&#2434;য&#2497;ক&#2509;ত দল&#2495;ল&#2494;দ&#2495;/মন&#2509;তব&#2509;য</label>
11765<input id='f2DocAddress' oninput='updateForm2Preview()' placeholder='সংযুক্ত দলিলাদি বা মন্তব্য লিখুন' type='text'/>
11766</div>
11767</div>
11768</div>
11769<!-- (জ) রক&#2509;ত&#2503;র গ&#2509;র&#2497;প -->
11770<div class='f2-correction-block'>
11771<div class='f2-block-title'><i class='fa-solid fa-droplet'></i> (জ) রক&#2509;ত&#2503;র গ&#2509;র&#2497;প</div>
11772<div class='f2-stacked-inputs'>
11773<div class='f2-input-item'>
11774<label>বর&#2509;তম&#2494;ন&#2503; জ&#2494;ত&#2496;য&#2492; পর&#2495;চয&#2492;পত&#2509;র&#2503; য&#2494; আছ&#2503;</label>
11775<input id='f2CurBlood' oninput='updateForm2Preview()' placeholder='বর্তমানে যা আছে তা লিখুন' type='text'/>
11776</div>
11777<div class='f2-input-item'>
11778<label>চ&#2494;হ&#2495;ত স&#2434;শ&#2507;ধ&#2495;ত তথ&#2509;য</label>
11779<input id='f2ChgBlood' oninput='updateForm2Preview()' placeholder='নতুন চাহিত সংশোধিত তথ্য লিখুন' type='text'/>
11780</div>
11781<div class='f2-input-item'>
11782<label>স&#2434;য&#2497;ক&#2509;ত দল&#2495;ল&#2494;দ&#2495;/মন&#2509;তব&#2509;য</label>
11783<input id='f2DocBlood' oninput='updateForm2Preview()' placeholder='সংযুক্ত দলিলাদি বা মন্তব্য লিখুন' type='text'/>
11784</div>
11785</div>
11786</div>
11787<!-- (ঝ) অন&#2509;য&#2494;ন&#2509;য -->
11788<div class='f2-correction-block'>
11789<div class='f2-block-title'><i class='fa-solid fa-ellipsis'></i> (ঝ) অন&#2509;য&#2494;ন&#2509;য</div>
11790<div class='f2-stacked-inputs'>
11791<div class='f2-input-item'>
11792<label>বর&#2509;তম&#2494;ন&#2503; জ&#2494;ত&#2496;য&#2492; পর&#2495;চয&#2492;পত&#2509;র&#2503; য&#2494; আছ&#2503;</label>
11793<input id='f2CurOther' oninput='updateForm2Preview()' placeholder='বর্তমানে যা আছে তা লিখুন' type='text'/>
11794</div>
11795<div class='f2-input-item'>
11796<label>চ&#2494;হ&#2495;ত স&#2434;শ&#2507;ধ&#2495;ত তথ&#2509;য</label>
11797<input id='f2ChgOther' oninput='updateForm2Preview()' placeholder='নতুন চাহিত সংশোধিত তথ্য লিখুন' type='text'/>
11798</div>
11799<div class='f2-input-item'>
11800<label>স&#2434;য&#2497;ক&#2509;ত দল&#2495;ল&#2494;দ&#2495;/মন&#2509;তব&#2509;য</label>
11801<input id='f2DocOther' oninput='updateForm2Preview()' placeholder='সংযুক্ত দলিলাদি বা মন্তব্য লিখুন' type='text'/>
11802</div>
11803</div>
11804</div>
11805<!-- Section 4: Fees and Docs -->
11806<div class='f2-sec-title f2-sec-header' style='background:#ecfeff; border-left-color:#0891b2; color:#164e63;'><i class='fa-solid fa-file-invoice-dollar'></i> ৪. ফ&#2495; ও স&#2434;য&#2497;ক&#2509;ত দল&#2495;ল&#2494;দ&#2495;</div>
11807<div class='q-grid-2' style='margin-bottom: 15px;'>
11808<div class='f13-field-item'>
11809<label>জম&#2494;ক&#2499;ত ফ&#2495; এর পর&#2495;ম&#2494;ণ (ট&#2494;ক&#2494;)</label>
11810<input id='f2FeeAmount' oninput='updateForm2Preview()' placeholder='উদা: ৩৪৫' type='text'/>
11811</div>
11812<div class='f13-field-item'>
11813<label>ফ&#2495; জম&#2494; দ&#2494;ন&#2503;র রশ&#2495;দ নম&#2509;বর</label>
11814<input id='f2FeeReceipt' oninput='updateForm2Preview()' placeholder='রশিদ নম্বর লিখুন' type='text'/>
11815</div>
11816</div>
11817<div class='f13-field-item' style='margin-bottom: 25px;'>
11818<label>আব&#2503;দনপত&#2509;র&#2503;র সহ&#2495;ত স&#2434;য&#2497;ক&#2509;ত দল&#2495;ল&#2494;দ&#2495;র ব&#2495;বরণ</label>
11819<input id='f2DocsList' oninput='updateForm2Preview()' placeholder='উদা: এসএসসি সার্টিফিকেট, জন্ম নিবন্ধন' type='text'/>
11820</div>
11821<!-- Section 5: Applicant Sign -->
11822<div class='f2-sec-title f2-sec-header' style='background:#f0fdf4; border-left-color:#10b981; color:#14532d;'><i class='fa-solid fa-signature'></i>
11822 ৫. আব&#2503;দনক&#2494;র&#2496;র স&#2509;ব&#2494;ক&#2509;ষর ব&#2509;লক</div>
11823<div class='q-grid-2'>
11824<div class='f13-field-item'>
11825<label>আব&#2503;দনক&#2494;র&#2496;র ন&#2494;ম</label>
11826<input id='f2AppName' oninput='updateForm2Preview()' placeholder='নাম লিখুন' type='text'/>
11827</div>
11828<div class='f13-field-item'>
11829<label>আব&#2503;দনক&#2494;র&#2496;র ম&#2507;ব&#2494;ইল নম&#2509;বর</label>
11830<input id='f2AppPhone' oninput='updateForm2Preview()' placeholder='মোবাইল নম্বর' type='text'/>
11831</div>
11832</div>
11833<div class='q-grid-2' style='margin-bottom: 25px;'>
11834<div class='f13-field-item'>
11835<label>আব&#2503;দনক&#2494;র&#2496;র ঠ&#2495;ক&#2494;ন&#2494;</label>
11836<input id='f2AppAddress' oninput='updateForm2Preview()' placeholder='ঠিকানা' type='text'/>
11837</div>
11838<div class='f13-field-item'>
11839<label>আব&#2503;দনক&#2494;র&#2496;র ই-ম&#2503;ইল (ঐচ&#2509;ছ&#2495;ক)</label>
11840<input id='f2AppEmail' oninput='updateForm2Preview()' placeholder='ই-মেইল' type='text'/>
11841</div>
11842</div>
11843<!-- Section 6: Guardian Sign -->
11844<div class='f2-sec-title f2-sec-header' style='background:#fffbeb; border-left-color:#f59e0b; color:#78350f;'><i class='fa-solid fa-signature'></i> ৬. আইন&#2494;ন&#2497;গ অভ&#2495;ভ&#2494;বক&#2503;র স&#2509;ব&#2494;ক&#2509;ষর ব&#2509;লক (প&#2509;রয&#2507;জ&#2509;য ক&#2509;ষ&#2503;ত&#2509;র&#2503;)</div>
11845<div class='q-grid-2'>
11846<div class='f2-guard-input-item f13-field-item'>
11847<label>অভ&#2495;ভ&#2494;বক&#2503;র ন&#2494;ম</label>
11848<input id='f2GuardSignName' oninput='updateForm2Preview()' placeholder='অভিভাবকের নাম' type='text'/>
11849</div>
11850<div class='f2-guard-input-item f13-field-item'>
11851<label>অভ&#2495;ভ&#2494;বক&#2503;র ম&#2507;ব&#2494;ইল নম&#2509;বর</label>
11852<input id='f2GuardSignPhone' oninput='updateForm2Preview()' placeholder='মোবাইল নম্বর' type='text'/>
11853</div>
11854</div>
11855<div class='q-grid-2' style='margin-bottom: 20px;'>
11856<div class='f2-guard-input-item f13-field-item'>
11857<label>অভ&#2495;ভ&#2494;বক&#2503;র ঠ&#2495;ক&#2494;ন&#2494;</label>
11858<input id='f2GuardSignAddress' oninput='updateForm2Preview()' placeholder='ঠিকানা' type='text'/>
11859</div>
11860<div class='f2-guard-input-item f13-field-item'>
11861<label>অভ&#2495;ভ&#2494;বক&#2503;র ই-ম&#2503;ইল (ঐচ&#2509;ছ&#2495;ক)</label>
11862<input id='f2GuardSignEmail' oninput='updateForm2Preview()' placeholder='ই-মেইল' type='text'/>
11863</div>
11864</div>
11865</div>
11866<!-- Right Column: Real-time paper preview scroll container (Shows Page 1 and Page 2 stacked) -->
11867<div class='f13-preview-scroll'>
11868<!-- PAGE 1 PREVIEW -->
11869<div class='f13-paper-sheet'>
11870<div class='paper-h2'>ফরম-২</div>
11871<div class='paper-h2-sub'>[প&#2509;রব&#2495;ধ&#2494;ন ৪ দ&#2509;রষ&#2509;টব&#2509;য]</div>
11872<div class='paper-h3-title'>জ&#2494;ত&#2496;য&#2492; পর&#2495;চয&#2492;পত&#2509;র ব&#2494; তথ&#2509;য-উপ&#2494;ত&#2509;ত স&#2434;শ&#2507;ধন&#2503;র আব&#2503;দন</div>
11873<div style='font-size: 9.5px; line-height: 1.5;'>
11874<div style='text-align: right; margin-bottom: 10px;'>
11875                  ক&#2509;রম&#2495;ক নম&#2509;বর : ..................... (অফ&#2495;স কর&#2509;ত&#2499;ক প&#2498;রণ&#2496;য&#2492;)
11876                </div>
11877<div class='paper-sec-title' style='margin-top: 5px;'>১&#2404; জ&#2494;ত&#2496;য&#2492; পর&#2495;চয&#2492;পত&#2509;রধ&#2494;র&#2496;-</div>
11878<div style='padding-left: 15px;'>
11879                  (ক) ন&#2494;ম : <span class='paper-dot-val' id='p-holder-name'>...................................................</span><br/>
11880                  (খ) জ&#2494;ত&#2496;য&#2492; পর&#2495;চ&#2495;ত&#2495; নম&#2509;বর (NID) : <span class='paper-dot-val' id='p-holder-nid'>
11880...................................................</span>
11881</div>
11882<div class='paper-sec-title'>২&#2404; আঠ&#2494;র&#2507; বৎসর&#2503;র কম বয&#2492;স&#2509;ক/আদ&#2494;লত কর&#2509;ত&#2499;ক অপ&#2509;রক&#2499;ত&#2495;স&#2509;থ घ&#2379;ष&#2367;त জ&#2494;ত&#2496;য&#2492; পর&#2495;চয&#2492;পত&#2509;রধ&#2494;র&#2496;র ক&#2509;ষ&#2503;ত&#2509;র&#2503;, আইন&#2494;ন&#2497;গ অভ&#2495;ভ&#2494;বক&#2503;র -</div>
11883<div style='padding-left: 15px;'>
11884                  (ক) ন&#2494;ম : <span class='paper-dot-val' id='p-guard-name'>...................................................</span><br/>
11885                  (খ) জ&#2494;ত&#2496;য&#2492; পর&#2495;চ&#2495;ত&#2495; নম&#2509;বর (NID) : <span class='paper-dot-val' id='p-guard-nid'>...................................................</span>
11886</div>
11887<div class='paper-sec-title'>৩&#2404; জ&#2494;ত&#2496;য&#2492; পর&#2495;চয&#2492;পত&#2509;র ব&#2494; স&#2434;রক&#2509;ষ&#2495;ত তথ&#2509;য-উপ&#2494;ত&#2509;ত&#2503; য&#2503; তথ&#2509;য স&#2434;শ&#2507;ধন কর&#2495;ত&#2503; হইব&#2503; (অপ&#2509;রয&#2492;&#2507;জন&#2496;য&#2492; অ&#2434;শ ক&#2494;ট&#2495;য&#2492;&#2494; দ&#2495;ন):</div>
11888<table class='f2-preview-table'>
11889<thead>
11890<tr>
11891<th style='width: 25%;'>ব&#2495;ষয&#2492;</th>
11892<th style='width: 35%;'>বর&#2509;তম&#2494;ন&#2503; জ&#2494;ত&#2496;য&#2492; পর&#2495;চয&#2492;পত&#2509;র ব&#2494; স&#2434;রক&#2509;ষ&#2495;ত তথ&#2509;য উপ&#2494;ত&#2509;ত&#2503; ব&#2495;দ&#2509;যম&#2494;ন তথ&#2509;য</th>
11893<th style='width: 20%;'>চ&#2494;হ&#2495;ত স&#2434;শ&#2507;ধ&#2495;ত তথ&#2509;য</th>
11894<th style='width: 20%;'>স&#2434;য&#2497;ক&#2509;ত দল&#2495;ল&#2494;দ&#2495;/মন&#2509;তব&#2509;য</th>
11895</tr>
11896</thead>
11897<tbody>
11898<tr><td>(ক) ন&#2494;ম (ব&#2494;&#2434;ল&#2494;)</td><td id='p-cur-name-bn'></td><td id='p-chg-name-bn'></td><td id='p-doc-name-bn'></td></tr>
11899<tr><td>(খ) ন&#2494;ম (ই&#2434;র&#2503;জ&#2495;)</td><td id='p-cur-name-en'></td><td id='p-chg-name-en'></td><td id='p-doc-name-en'></td></tr>
11900<tr><td>(গ) প&#2495;ত&#2494;র ন&#2494;ম</td><td id='p-cur-father'></td><td id='p-chg-father'></td><td id='p-doc-father'></td></tr>
11901<tr><td>(ঘ) ম&#2494;ত&#2494;র ন&#2494;ম</td><td id='p-cur-mother'></td><td id='p-chg-mother'></td><td id='p-doc-mother'></td></tr>
11902<tr><td>(ঙ) স&#2509;ব&#2494;ম&#2496;র ন&#2494;ম</td><td id='p-cur-spouse'></td><td id='p-chg-spouse'></td><td id='p-doc-spouse'></td></tr>
11903<tr><td>(চ) জন&#2509;মত&#2494;র&#2495;খ</td><td id='p-cur-dob'></td><td id='p-chg-dob'></td><td id='p-doc-dob'></td></tr>
11904<tr><td>(ছ) ঠ&#2495;ক&#2494;ন&#2494;</td><td id='p-cur-address'></td><td id='p-chg-address'></td><td id='p-doc-address'></td></tr>
11905<tr><td>(জ) রক&#2509;ত&#2503;র গ&#2509;র&#2497;প</td><td id='p-cur-blood'></td><td id='p-chg-blood'></td><td id='p-doc-blood'></td></tr>
11906<tr><td>(ঝ) অন&#2509;য&#2494;ন&#2509;য</td><td id='p-cur-other'></td><td id='p-chg-other'></td><td id='p-doc-other'></td></tr>
11907</tbody>
11908</table>
11909<div style='margin-top: 10px;'>
11910                  ৪&#2404; জম&#2494;ক&#2499;ত ফ&#2495; এর পর&#2495;ম&#2494;ণ (১১ এর উপ-প&#2509;রব&#2495;ধ&#2494;ন (১) এর ক&#2509;রম&#2495;ক ন&#2434; ১ ব&#2494;, প&#2509;রয&#2507;জ&#2509;য ক&#2509;ষ&#2503;ত&#2509;র&#2503;, ২ এ উল&#2509;ল&#2495;খ&#2495;ত ফ&#2495; অন&#2497;স&#2494;র&#2503;): <span class='paper-dot-val' id='p-fee-amount'>.....................</span> ট&#2494;ক&#2494;&#2404;<br/>
11911                  ৫&#2404; প&#2509;রয&#2507;জ&#2509;য ক&#2509;ষ&#2503;ত&#2509;র&#2503; ফ&#2495; জম&#2494; দ&#2494;ন&#2503;র রশ&#2495;দ: <span class='paper-dot-val' id='p-fee-receipt'>
11911...................................................</span><br/>
11912                  ৬&#2404; আব&#2503;দনপত&#2509;র&#2503;র সহ&#2495;ত স&#2434;য&#2497;ক&#2509;ত দল&#2495;ল&#2494;দ&#2495;র ব&#2495;বরণ: <span class='paper-dot-val' id='p-docs-list'>................................................................................</span>
11913</div>
11914<!-- Signatures Row -->
11915<div style='display: flex; justify-content: space-between; margin-top: 30px; line-height: 1.4; font-size: 8.5px;'>
11916<div style='width: 48%; text-align: left;'>
11917<strong>আইন&#2494;ন&#2497;গ অভ&#2495;ভ&#2494;বক&#2503;র স&#2509;ব&#2494;ক&#2509;ষর/ট&#2495;পসহ&#2495; (প&#2509;রয&#2507;জ&#2509;য ক&#2509;ষ&#2503;ত&#2509;র&#2503;)</strong><br/>
11918                    ন&#2494;ম&#2435; <span class='paper-dot-val' id='p-g-sign-name'>...............</span><br/>
11919                    ঠ&#2495;ক&#2494;ন&#2494;&#2435; <span class='paper-dot-val' id='p-g-sign-address'>...............</span><br/>
11920                    ম&#2507;ব&#2494;ইল নম&#2509;বর&#2435; <span class='paper-dot-val' id='p-g-sign-phone'>...............</span><br/>
11921                    ই-ম&#2503;ইল (যদ&#2495; থ&#2494;ক&#2503;)&#2435; <span class='paper-dot-val' id='p-g-sign-email'>...............</span>
11922</div>
11923<div style='width: 48%; text-align: left;'>
11924<strong>আব&#2503;দনক&#2494;র&#2496;র স&#2509;ব&#2494;ক&#2509;ষর/ট&#2495;পসহ&#2495;</strong><br/>
11925                    ন&#2494;ম&#2435; <span class='paper-dot-val' id='p-a-sign-name'>...............</span><br/>
11926                    ঠ&#2495;ক&#2494;ন&#2494;&#2435; <span class='paper-dot-val' id='p-a-sign-address'>...............</span><br/>
11927                    ম&#2507;ব&#2494;ইল নম&#2509;বর&#2435; <span class='paper-dot-val' id='p-a-sign-phone'>...............</span><br/>
11928                    ই-ম&#2503;ইল (যদ&#2495; থ&#2494;ক&#2503;)&#2435; <span class='paper-dot-val' id='p-a-sign-email'>...............</span>
11929</div>
11930</div>
11931</div>
11932</div>
11933<!-- PAGE 2 PREVIEW -->
11934<div class='f13-paper-sheet'>
11935<div style='font-size: 9px; line-height: 1.5; padding-top: 5px;'>
11936<div class='paper-sec-title' style='margin-top: 0; text-align: center; font-size: 11px;'>আব&#2503;দনক&#2494;র&#2496;র জন&#2509;য ন&#2495;র&#2509;দ&#2503;শ&#2494;বল&#2496;</div>
11937<div id='p-instructions-box' style='padding-left: 10px; color: #334155; font-size: 9px; line-height: 1.5; margin-bottom: 25px;'>
11938<!-- JS will dynamically populate the complete condensed instructions here -->
11939</div>
11940<!-- Witness Box -->
11941<div style='text-align: left; margin-top: 15px; border-top: 1px dashed #cbd5e1; padding-top: 10px;'>
11942                  আব&#2503;দনক&#2494;র&#2496;ক&#2503; সন&#2494;ক&#2509;তক&#2494;র&#2496;র স&#2509;ব&#2494;ক&#2509;ষর&#2435; ...................................................<br/>
11943<div style='padding-left: 30px;'>
11944                    ন&#2494;ম&#2435; ...................................................<br/>
11945                    জ&#2494;ত&#2496;য&#2492; পর&#2495;চয&#2492;পত&#2509;র নম&#2509;বর&#2435; ...................................................<br/>
11946                    ঠ&#2495;ক&#2494;ন&#2494;&#2435; ................................................................................
11947                  </div>
11948</div>
11949<!-- Office Use Box -->
11950<div style='border: 1px dashed #000; padding: 12px; border-radius: 8px; margin-top: 15px; margin-bottom: 15px; background: #fafafa; text-align: left;'>
11951<div style='text-align: center; font-weight: bold; margin-bottom: 5px; font-size: 11px;'>[ক&#2503;বলম&#2494;ত&#2509;র অফ&#2495;স&#2503; ব&#2509;যবহ&#2494;র&#2503;র জন&#2509;য]</div>
11952<p style='line-height: 1.5; margin-bottom: 10px; font-size: 9.5px;'>
11953                    দ&#2494;খ&#2495;লক&#2499;ত দল&#2495;ল&#2494;দ&#2495; পর&#2496;ক&#2509;ষ&#2494;ন&#2509;ত&#2503; ............................................. জন&#2509;য NID স&#2434;শ&#2507;ধন অন&#2497;ম&#2507;দন কর&#2494; গ&#2503;ল&#2404;
11954                  </p>
11955<div style='text-align: right;'>
11956<div style='display: inline-block; text-align: center; width: 180px;'>
11957<div>...................................................</div>
11958<div style='font-size: 8.5px; font-weight: bold; margin-top: 3px;'>দ&#2494;য&#2492;&#2495;ত&#2509;বপ&#2509;র&#2494;প&#2509;ত কর&#2509;মকর&#2509;ত&#2494;র স&#2509;ব&#2494;ক&#2509;ষর</div>
11959</div>
11960</div>
11961</div>
11962<!-- Receipt Box -->
11963<div style='border-top: 1.5px dashed #000; padding-top: 15px;'>
11964<div style='text-align: center; font-weight: bold; font-size: 11.5px; margin-bottom: 10px;'>অ&#2434;শ-ক (ফরম-২) প&#2509;র&#2494;প&#2509;ত&#2495;স&#2509;ব&#2496;ক&#2494;র রশ&#2495;দ</div>
11965<p style='line-height: 1.5; font-size: 9.5px;'>
11966                    আব&#2503;দনক&#2494;র&#2496;র ন&#2494;ম এব&#2434; জ&#2494;ত&#2496;য&#2492; পর&#2495;চ&#2495;ত&#2495; নম&#2509;বর : ...................................................<br/>
11967                    আব&#2503;দন&#2503;র ত&#2494;র&#2495;খ : ...................................................
11968                  </p>
11969<div style='text-align: right;'>
11970<div style='display: inline-block; text-align: center; width: 180px;'>
11971<div>...................................................</div>
11972<div style='font-size: 9.5px; font-weight: bold; margin-top: 3px;'>দ&#2494;য&#2492;&#2495;ত&#2509;বপ&#2509;র&#2494;প&#2509;ত কর&#2509;মকর&#2509;ত&#2494;র স&#2509;ব&#2494;ক&#2509;ষর</div>
11973</div>
11974</div>
11975</div>
11976</div>
11977</div>
11978</div>
11979</div>
11980<!-- Split layout end -->
11981<!-- Real-time Status Bar -->
11982<div class='f13-status' id='form2Status'>ফরম ড&#2494;উনল&#2507;ড ব&#2494; প&#2509;র&#2495;ন&#2509;ট কর&#2494;র জন&#2509;য প&#2509;রস&#2509;ত&#2497;ত</div>
11983<!-- Action Buttons -->
11984<div class='actions' style='display:grid; grid-template-columns: 1fr 1fr; gap:10px; margin-bottom: 10px;'>
11985<button class='conv-btn-main' id='f2GenerateBtn' onclick='startForm2Generation("download")' style='margin:0; background:#dc2626 !important;'>
11986<i class='fa-solid fa-file-pdf'></i> Download PDF
11987          </button>
11988<button class='conv-btn-main' id='f2PrintBtn' onclick='startForm2Generation("print")' style='margin:0; background:#059669 !important;'>
11989<i class='fa-solid fa-print'></i> Print Form
11990          </button>
11991</div>
11992<button class='conv-btn-main' onclick='clearForm2Form()' style='margin:0; background:#ef4444 !important; width: 100%;'>
11993<i class='fa-solid fa-trash-can'></i> Clear Form
11994        </button>
11995</div>
11996</div>
11997</div>
11998</div>
11999<!-- ==================== HIDDEN A4 BENGALI DUAL-PAGE FORM-2 TEMPLATE ==================== -->
12000<div id='f2PdfTemplate' style='position: absolute; left: -9999px; top: -9999px; box-sizing: border-box;'>
12001<!-- PDF PAGE 1 (Standard 794 x 1123 A4 Dimensions) -->
12002<div id='f2PdfPage1' style='width: 794px; height: 1123px; background: #ffffff; padding: 50px 45px; box-sizing: border-box; font-family: &#39;SolaimanLipi&#39;, sans-serif !important; color: #000; line-height: 1.6; position: relative;'>
12003<div style='text-align: center; margin-bottom: 25px;'>
12004<h2 style='font-size: 20px; font-weight: bold; margin: 0;'>ফরম-২</h2>
12005<p style='font-size: 11px; margin: 2px 0 10px 0; font-weight: bold;'>[প&#2509;রব&#2495;ধ&#2494;ন ৪ দ&#2509;রষ&#2509;টব&#2509;য]</p>
12006<h3 style='font-size: 15px; font-weight: bold; margin: 0;'>জ&#2494;ত&#2496;য&#2492; পর&#2495;চয&#2492;পত&#2509;র ব&#2494; তথ&#2509;য-উপ&#2494;ত&#2509;ত স&#2434;শ&#2507;ধন&#2503;র আব&#2503;দন</h3>
12007</div>
12008<div style='font-size: 13.5px; line-height: 1.7; text-align: left;'>
12009<div style='text-align: right; margin-bottom: 10px;'>
12010        ক&#2509;রম&#2495;ক নম&#2509;বর : ..................... (অফ&#2495;স কর&#2509;ত&#2499;ক প&#2498;রণ&#2496;য&#2492;)
12011      </div>
12012<div style='font-weight: bold; font-size: 14px; margin-top: 10px; margin-bottom: 5px;'>১&#2404; জ&#2494;ত&#2496;য&#2492; পর&#2495;চয&#2492;পত&#2509;রধ&#2494;র&#2496;-</div>
12013<div style='padding-left: 20px; line-height: 1.8;'>
12014        (ক) ন&#2494;ম : <span class='paper-dot-val' id='pdf-f2-holder-name' style='font-weight: bold;'>...................................................</span><br/>
12015        (খ) জ&#2494;ত&#2496;য&#2492; পর&#2495;চ&#2495;ত&#2495; নম&#2509;বর (NID) : <span class='paper-dot-val' id='pdf-f2-holder-nid' style='font-weight: bold;'>...................................................</span>
12016</div>
12017<div style='font-weight: bold; font-size: 14px; margin-top: 15px; margin-bottom: 5px;'>২&#2404; আঠ&#2494;র&#2507; বৎসর&#2503;র কম বয&#2492;স&#2509;ক/আদ&#2494;লত কর&#2509;ত&#2499;ক অপ&#2509;রক&#2499;ত&#2495;স&#2509;থ ঘ&#2507;ষ&#2495;ত জ&#2494;ত&#2496;য&#2492; পর&#2495;চয&#2492;পত&#2509;রধ&#2494;র&#2496;র ক&#2509;ষ&#2503;ত&#2509;র&#2503;, আইন&#2494;ন&#2497;গ অভ&#2495;ভ&#2494;বক&#2503;র -</div>
12018<div style='padding-left: 20px; line-height: 1.8;'>
12019        (ক) ন&#2494;ম : <span class='paper-dot-val' id='pdf-f2-guard-name' style='font-weight: bold;'>...................................................</span><br/>
12020        (খ) জ&#2494;ত&#2496;য&#2492; পর&#2495;চ&#2495;ত&#2495; নম&#2509;বর (NID) : <span class='paper-dot-val' id='pdf-f2-guard-nid' style='font-weight: bold;'>...................................................</span>
12021</div>
12022<div style='font-weight: bold; font-size: 14px; margin-top: 15px; margin-bottom: 5px;'>৩&#2404; জ&#2494;ত&#2496;য&#2492; পর&#2495;চয&#2492;পত&#2509;র ব&#2494; স&#2434;রক&#2509;ষ&#2495;ত তথ&#2509;য-উপ&#2494;ত&#2509;ত&#2503; য&#2503; তথ&#2509;য স&#2434;শ&#2507;ধন কর&#2495;ত&#2503; হইব&#2503; (অপ&#2509;রয&#2492;&#2507;জন&#2496;য&#2492; অ&#2434;শ ক&#2494;ট&#2495;য&#2492;&#2494; দ&#2495;ন):</div>
12023<!-- Table Structure matching the screenshot exactly -->
12024<table class='f2-preview-table' style='width: 100%; border-collapse: collapse; margin-top: 10px; font-size: 12px; line-height: 1.4;'>
12025<thead>
12026<tr>
12027<th style='border: 1px solid #000; padding: 6px; text-align: center; width: 25%;'>ব&#2495;ষয&#2492;</th>
12028<th style='border: 1px solid #000; padding: 6px; text-align: center; width: 35%;'>বর&#2509;তম&#2494;ন&#2503; জ&#2494;ত&#2496;য&#2492; পর&#2495;চয&#2492;পত&#2509;র ব&#2494; স&#2434;রক&#2509;ষ&#2495;ত তথ&#2509;য উপ&#2494;ত&#2509;ত&#2503; ব&#2495;দ&#2509;যম&#2494;ন তথ&#2509;য</th>
12029<th style='border: 1px solid #000; padding: 6px; text-align: center; width: 20%;'>চ&#2494;হ&#2495;ত স&#2434;শ&#2507;ধ&#2495;ত তথ&#2509;য</th>
12030<th style='border: 1px solid #000; padding: 6px; text-align: center; width: 20%;'>স&#2434;য&#2497;ক&#2509;ত দল&#2495;ল&#2494;দ&#2495;/মন&#2509;তব&#2509;য</th>
12031</tr>
12032</thead>
12033<tbody>
12034<tr><td style='border: 1px solid #000; padding: 6px;'>(ক) ন&#2494;ম (ব&#2494;&#2434;ল&#2494;)</td><td id='pdf-f2-cur-name-bn' style='border: 1px solid #000; padding: 6px; font-weight: bold;'></td><td id='pdf-f2-chg-name-bn' style='border: 1px solid #000; padding: 6px; font-weight: bold; color: #2563eb;'></td><td id='pdf-f2-doc-name-bn' style='border: 1px solid #000; padding: 6px;'></td></tr>
12035<tr><td style='border: 1px solid #000; padding: 6px;'>(খ) ন&#2494;ম (ই&#2434;র&#2503;জ&#2495;)</td><td id='pdf-f2-cur-name-en' style='border: 1px solid #000; padding: 6px; font-weight: bold;'></td><td id='pdf-f2-chg-name-en' style='border: 1px solid #000; padding: 6px; font-weight: bold; color: #2563eb;'></td><td id='pdf-f2-doc-name-en' style='border: 1px solid #000; padding: 6px;'></td></tr>
12036<tr><td style='border: 1px solid #000; padding: 6px;'>(গ) প&#2495;ত&#2494;র ন&#2494;ম</td><td id='pdf-f2-cur-father' style='border: 1px solid #000; padding: 6px; font-weight: bold;'></td><td id='pdf-f2-chg-father' style='border: 1px solid #000; padding: 6px; font-weight: bold; color: #2563eb;'></td><td id='pdf-f2-doc-father' style='border: 1px solid #000; padding: 6px;'></td></tr>
12037<tr><td style='border: 1px solid #000; padding: 6px;'>(ঘ) ম&#2494;ত&#2494;র ন&#2494;ম</td><td id='pdf-f2-cur-mother' style='border: 1px solid #000; padding: 6px; font-weight: bold;'></td><td id='pdf-f2-chg-mother' style='border: 1px solid #000; padding: 6px; font-weight: bold; color: #2563eb;'></td><td id='pdf-f2-doc-mother' style='border: 1px solid #000; padding: 6px;'></td></tr>
12038<tr><td style='border: 1px solid #000; padding: 6px;'>(ঙ) স&#2509;ব&#2494;ম&#2496;র ন&#2494;ম</td><td id='pdf-f2-cur-spouse' style='border: 1px solid #000; padding: 6px; font-weight: bold;'></td><td id='pdf-f2-chg-spouse' style='border: 1px solid #000; padding: 6px; font-weight: bold; color: #2563eb;'></td><td id='pdf-f2-doc-spouse' style='border: 1px solid #000; padding: 6px;'></td></tr>
12039<tr><td style='border: 1px solid #000; padding: 6px;'>(চ) জন&#2509;মত&#2494;র&#2495;খ</td><td id='pdf-f2-cur-dob' style='border: 1px solid #000; padding: 6px; font-weight: bold;'></td><td id='pdf-f2-chg-dob' style='border: 1px solid #000; padding: 6px; font-weight: bold; color: #2563eb;'></td><td id='pdf-f2-doc-dob' style='border: 1px solid #000; padding: 6px;'></td></tr>
12040<tr><td style='border: 1px solid #000; padding: 6px;'>(ছ) ঠ&#2495;ক&#2494;ন&#2494;</td><td id='pdf-f2-cur-address' style='border: 1px solid #000; padding: 6px; font-weight: bold;'></td><td id='pdf-f2-chg-address' style='border: 1px solid #000; padding: 6px; font-weight: bold; color: #2563eb;'></td><td id='pdf-f2-doc-address' style='border: 1px solid #000; padding: 6px;'></td></tr>
12041<tr><td style='border: 1px solid #000; padding: 6px;'>(জ) রক&#2509;ত&#2503;র গ&#2509;র&#2497;প</td><td id='pdf-f2-cur-blood' style='border: 1px solid #000; padding: 6px; font-weight: bold;'></td><td id='pdf-f2-chg-blood' style='border: 1px solid #000; padding: 6px; font-weight: bold; color: #2563eb;'></td><td id='pdf-f2-doc-blood' style='border: 1px solid #000; padding: 6px;'></td></tr>
12042<tr><td style='border: 1px solid #000; padding: 6px;'>(ঝ) অন&#2509;য&#2494;ন&#2509;য</td><td id='pdf-f2-cur-other' style='border: 1px solid #000; padding: 6px; font-weight: bold;'></td><td id='pdf-f2-chg-other' style='border: 1px solid #000; padding: 6px; font-weight: bold; color: #2563eb;'></td><td id='pdf-f2-doc-other' style='border: 1px solid #000; padding: 6px;'></td></tr>
12043</tbody>
12044</table>
12045<div style='margin-top: 15px; line-height: 1.8;'>
12046        ৪&#2404; জম&#2494;ক&#2499;ত ফ&#2495; এর পর&#2495;ম&#2494;ণ (১১ এর উপ-প&#2509;রব&#2495;ধ&#2494;ন (১) এর ক&#2509;রম&#2495;ক ন&#2434; ১ ব&#2494;, প&#2509;রয&#2507;জ&#2509;য ক&#2509;ষ&#2503;ত&#2509;র&#2503;, ২ এ উল&#2509;ল&#2495;খ&#2495;ত ফ&#2495; অন&#2497;স&#2494;র&#2503;): <span class='paper-dot-val' id='pdf-f2-fee-amount' style='font-weight: bold;'>
12046.....................</span> ট&#2494;ক&#2494;&#2404;<br/>
12047        ৫&#2404; প&#2509;রয&#2507;জ&#2509;য ক&#2509;ষ&#2503;ত&#2509;র&#2503; ফ&#2495; জম&#2494; দ&#2494;ন&#2503;র রশ&#2495;দ: <span class='paper-dot-val' id='pdf-f2-fee-receipt' style='font-weight: bold;'>...................................................</span><br/>
12048        ৬&#2404; আব&#2503;দনপত&#2509;র&#2503;র সহ&#2495;ত স&#2434;য&#2497;ক&#2509;ত দল&#2495;ল&#2494;দ&#2495;র ব&#2495;বরণ: <span class='paper-dot-val' id='pdf-f2-docs-list' style='font-weight: bold;'>................................................................................</span>
12049</div>
12050<!-- Signatures Row -->
12051<div style='display: flex; justify-content: space-between; margin-top: 35px; line-height: 1.5; font-size: 11px; font-weight: bold;'>
12052<div style='width: 48%; text-align: left;'>
12053<strong>আইন&#2494;ন&#2497;গ অভ&#2495;ভ&#2494;বক&#2503;র স&#2509;ব&#2494;ক&#2509;ষর/ট&#2495;পসহ&#2495; (প&#2509;রয&#2507;জ&#2509;য ক&#2509;ষ&#2503;ত&#2509;র&#2503;)</strong><br/>
12054          न&#2366;म&#2435; <span class='paper-dot-val' id='pdf-f2-g-sign-name'>...............</span><br/>
12055          ঠ&#2495;ক&#2494;ন&#2494;&#2435; <span class='paper-dot-val' id='pdf-f2-g-sign-address'>...............</span><br/>
12056          ম&#2507;ব&#2494;ইল নম&#2509;বর&#2435; <span class='paper-dot-val' id='pdf-f2-g-sign-phone'>...............</span><br/>
12057          ই-ম&#2503;ইল (যদ&#2495; থ&#2494;ক&#2503;)&#2435; <span class='paper-dot-val' id='pdf-f2-g-sign-email'>...............</span>
12058</div>
12059<div style='width: 48%; text-align: left;'>
12060<strong>আব&#2503;দনক&#2494;র&#2496;র স&#2509;ব&#2494;ক&#2509;ষর/ট&#2495;পসহ&#2495;</strong><br/>
12061          ন&#2494;ম&#2435; <span class='paper-dot-val' id='pdf-f2-a-sign-name'>...............</span><br/>
12062          ঠ&#2495;ক&#2494;ন&#2494;&#2435; <span class='paper-dot-val' id='pdf-f2-a-sign-address'>...............</span><br/>
12063          ম&#2507;ব&#2494;ইল নম&#2509;বর&#2435; <span class='paper-dot-val' id='pdf-f2-a-sign-phone'>...............</span><br/>
12064          ই-ম&#2503;ইল (যদ&#2495; থ&#2494;ক&#2503;)&#2435; <span class='paper-dot-val' id='pdf-f2-a-sign-email'>...............</span>
12065</div>
12066</div>
12067</div>
12068</div>
12069<!-- PDF PAGE 2 (Standard 794 x 1123 A4 Dimensions) -->
12070<div id='f2PdfPage2' style='width: 794px; height: 1123px; background: #ffffff; padding: 50px 45px; box-sizing: border-box; font-family: &#39;SolaimanLipi&#39;, sans-serif !important; color: #000; line-height: 1.6; position: relative;'>
12071<div style='font-size: 13px; line-height: 1.7; text-align: left; padding-top: 10px;'>
12072<div style='font-weight: bold; font-size: 13.5px; margin-top: 0; margin-bottom: 8px; text-align: center; text-decoration: underline;'>আব&#2503;দনক&#2494;র&#2496;র জন&#2509;য ন&#2495;র&#2509;দ&#2503;শ&#2494;বল&#2496;</div>
12073<!-- Statically and beautifully rendered complete 16 points (NEW UPDATE) 
12073-->
12074<div id='pdf-instructions-box' style='padding-left: 10px; color: #000000; font-size: 9.5px; line-height: 1.45; text-align: justify; margin-bottom: 25px;'>
12075<!-- Live JS injection handles sync -->
12076</div>
12077<!-- Witness Box -->
12078<div style='text-align: left; margin-top: 15px; border-top: 1px dashed #cbd5e1; padding-top: 15px; font-weight: bold;'>
12079        আব&#2503;দনক&#2494;র&#2496;ক&#2503; সন&#2494;ক&#2509;তক&#2494;র&#2496;র স&#2509;ব&#2494;ক&#2509;ষর&#2435; ...................................................<br/>
12080<div style='padding-left: 35px; font-weight: normal; color: #334155; margin-top: 5px;'>
12081          ন&#2494;ম&#2435; ...................................................<br/>
12082          জ&#2494;ত&#2496;য&#2492; পর&#2495;চয&#2492;পত&#2509;র নম&#2509;বর&#2435; ...................................................<br/>
12083          ঠ&#2495;ক&#2494;ন&#2494;&#2435; ................................................................................
12084        </div>
12085</div>
12086<!-- Office Use Box -->
12087<div style='border: 1px dashed #000; padding: 15px; border-radius: 10px; margin-top: 20px; margin-bottom: 20px; background: #fafafa; text-align: left;'>
12088<div style='text-align: center; font-weight: bold; margin-bottom: 8px; font-size: 11.5px;'>[ক&#2503;বলম&#2494;ত&#2509;র অফ&#2495;স&#2503; ব&#2509;যবহ&#2494;র&#2503;র জন&#2509;য]</div>
12089<p style='line-height: 1.6; margin-bottom: 15px; font-size: 10px; color: #334155;'>
12090          দ&#2494;খ&#2495;লক&#2499;ত দল&#2495;ল&#2494;দ&#2495; পর&#2496;ক&#2509;ষ&#2494;ন&#2509;ত&#2503; ............................................. জন&#2509;য NID স&#2434;শ&#2507;ধন অন&#2497;ম&#2507;দন কর&#2494; গ&#2503;ল&#2404;
12091        </p>
12092<div style='text-align: right;'>
12093<div style='display: inline-block; text-align: center; width: 180px;'>
12094<div>...................................................</div>
12095<div style='font-size: 9.5px; font-weight: bold; margin-top: 3px;'>দ&#2494;য&#2492;&#2495;ত&#2509;বপ&#2509;র&#2494;প&#2509;ত কর&#2509;মকর&#2509;ত&#2494;র স&#2509;ব&#2494;ক&#2509;ষর</div>
12096</div>
12097</div>
12098</div>
12099<!-- Receipt Box -->
12100<div style='border-top: 1.5px dashed #000; padding-top: 15px;'>
12101<div style='text-align: center; font-weight: bold; font-size: 11.5px; margin-bottom: 10px;'>অ&#2434;শ-ক (ফরম-২) প&#2509;র&#2494;প&#2509;ত&#2495;স&#2509;ব&#2496;ক&#2494;র রশ&#2495;দ</div>
12102<p style='line-height: 1.5; font-size: 10px;'>
12103          আব&#2503;দনক&#2494;র&#2496;র ন&#2494;ম এব&#2434; জ&#2494;ত&#2496;য&#2492; পর&#2495;চ&#2495;ত&#2495; নম&#2509;বর : ...................................................<br/>
12104          আব&#2503;দন&#2503;র ত&#2494;র&#2495;খ : ...................................................
12105        </p>
12106<div style='text-align: right;'>
12107<div style='display: inline-block; text-align: center; width: 180px;'>
12108<div>...................................................</div>
12109<div style='font-size: 9.5px; font-weight: bold; margin-top: 3px;'>দ&#2494;য&#2492;&#2495;ত&#2509;বপ&#2509;র&#2494;প&#2509;ত কর&#2509;মকর&#2509;ত&#2494;র স&#2509;ব&#2494;ক&#2509;ষর</div>
12110</div>
12111</div>
12112</div>
12113</div>
12114</div>
12115</div>
12116<!-- NID Form-2 Maker Modal END -->
12117<!-- Theme-Level Full-Screen Custom 404 Page (10 Seconds & WA Support) START -->
12118<!-- Theme-Level Full-Screen Custom 404 Page END -->
12119
12120</body>
12121</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.