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<!-- à¦à¦ি যোঠà¦à¦°ুন --> 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<!-- à¦à¦ি যোঠà¦à¦°ুন --> 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!='all')media='all'' 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> à¦à¦®াদের à¦à¦ à¦à¦¯়েবসাà¦à¦ের যে à¦োনো নতুন à¦à¦ªà¦¡েঠপেতে à¦à¦®াদের à¦্যানেলে à¦ুলোতে à¦à¦¯়েন à¦à¦°ুন। ð 573 </div> 574<div class='ticker-text line-en'> 575<i class='fa-solid fa-bell'></i> à¦à¦®াদের à¦à¦ à¦্যানেলà¦ুলোতে à¦à¦¯়েন থাà¦à¦²ে à¦à¦ªà¦¨ি যা ঠর্ডার à¦à¦°à¦েন সà¦à¦² প্রডাà¦্ঠà¦à¦° à¦à¦ªà¦¡েঠà¦ানতে পাবেন। ð 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; } /* মোবাà¦à¦²ে বামের স্লাà¦à¦¡িং à¦েà¦্সঠবন্ধ থাà¦à¦¬ে */ 678 .social-bar-container { justify-content: center; padding: 0 5px; } /* দুঠপাশে মার্à¦িন à¦à¦®ানো হà§েà¦ে */ 679 680 .social-links { 681 gap: 5px; /* বাà¦à¦¨à¦ুলোর মাà¦ের দূরত্ব à¦à¦®ানো হà§েà¦ে */ 682 width: 100%; 683 justify-content: center; 684 } 685 686 .social-link-item { 687 padding: 5px 8px; /* বাà¦à¦¨à¦ুলো ডেà¦্সà¦à¦ªের মতোঠদেà¦à¦¤ে থাà¦à¦¬ে à¦িন্তু à¦à¦ারে à¦োঠদেà¦াবে */ 688 font-size: 10.5px; /* লেà¦ার সাà¦à¦ à¦োঠà¦à¦°া হà§েà¦ে যেন à¦à¦ লাà¦à¦¨ে ধরে যাà§ */ 689 gap: 4px;
689 /* à¦à¦à¦à¦¨ à¦à¦¬ং লেà¦ার মধ্যà¦ার দূরত্ব à¦à¦®ানো হà§েà¦ে */ 690 border-radius: 20px; /* à¦োঠবাà¦à¦¨ের সাথে সামà¦্à¦à¦¸্যপূর্ণ রাà¦à¦¨্ড বর্ডার */ 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; /* নতুন: হোà¦ার à¦à¦«েà¦্à¦ের à¦à¦¨্য à¦্রানà¦িশন */ 794 } 795 796 .ad-image-wrapper:hover { /* নতুন: হোà¦ার স্à¦েঠ*/ 797 transform: scale(1.00); /* à¦à¦¬িà¦ে 2% বড় à¦à¦°à¦¬ে */ 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&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">ডেà¦েলপার - মোঃ ফà§à¦ুল à¦à¦°িম</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&text=হ্যালো.. à¦à¦®ি à¦à¦ªà¦¨াদের à¦à¦¯়েবসাà¦à¦ের বিষয়ে à¦িà¦ু à¦ুরুত্বপূর্ণ à¦à¦²োà¦à¦¨া à¦à¦°à¦¤ে à¦াà¦!" target="_blank"> 1234 <i class="fa-brands fa-whatsapp"></i> সরাসরি মেসেঠà¦à¦°ুন! 1235 </a> 1236 </div> 1237 1238 <!--Right: Support & Contact Content--> 1239 <div class="ui-content-side"> 1240 <span class="ui-badge">সাপোর্ঠঠà¦à¦¨à¦োয়ারি</span> 1241 <h1 class="ui-main-title">প্রফেশনাল <span style="color: #19a900;">সাপোর্à¦</span> নিন।</h1> 1242 <p class="ui-desc"> 1243 à¦à¦ªà¦¨ার যেà¦োনো তথ্য বিশদà¦াবে à¦ানতে বা যেà¦োনো à¦েà¦à¦¨িà¦্যাল সহাà§à¦¤ার à¦à¦¨্য সরাসরি à¦à¦®াদের সাপোর্ঠà¦িমের সাথে যোà¦াযোঠà¦à¦°ুন। à¦à¦®াদের à¦িম ২৪/à§ à¦à¦ªà¦¨াà¦ে সাহায্য à¦à¦°à¦¤ে প্রস্তুত। 1244 </p> 1245 1246 <div class="ui-contact-list"> 1247 <div class="ui-item"> 1248 <h4>ফোন নাম্বার:</h4> 1249 <p><a href="tel:+8809696130544">+8809696130544</a></p> 1250 </div> 1251 <div class="ui-item"> 1252 <h4>à¦à¦®েà¦à¦² à¦à¦¡্রেস:</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>সম্পূর্ণ নাম</label> 1262 <input id="ui-name" type="text" /> 1263 </div> 1264 <div class="ui-field"> 1265 <label>à¦à¦®েà¦à¦² à¦à¦¡্রেস</label> 1266 <input id="ui-email" type="email" /> 1267 </div> 1268 <div class="ui-field ui-full"> 1269 <label>বিষà§</label> 1270 <input id="ui-subject" placeholder="সাপোর্à¦" type="text" /> 1271 </div> 1272 <div class="ui-field ui-full"> 1273 <label>মেসেà¦</label> 1274 <textarea id="ui-message" placeholder="à¦à¦ªà¦¨াà¦ে à¦ীà¦াবে সাহায্য à¦à¦°à¦¤ে পারি?" 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>হোà§াà¦à¦¸à¦ ্যাপে পাঠান</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">প্রà§োà¦à¦¨ীৠতথ্য à¦ালি রà§েà¦ে!</h3> 1295 <p class="val-text">দà§া à¦à¦°ে মেসেঠপাঠানোর à¦à¦ে প্রà§োà¦à¦¨ীৠসব তথ্য (নাম, à¦à¦®েà¦à¦² à¦à¦¬ং মেসেà¦) পূরণ à¦à¦°ুন।</p> 1296 <button class="val-action-btn" onclick="closeValModal()">ঠিঠà¦à¦ে</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>© 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'>⚠️</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()'>×</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('photo')'> 1447 Photo Sizes 1448 </button> 1449<button class='tab-btn' id='tab-paper' onclick='switchTab_CP('paper')'> 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, 'Dynamic', 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('crop')'> 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('rotate')' 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('delete')'> 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('png')'> 1480<i class='fa-solid fa-image'></i> Save as PNG 1481 </button> 1482<button class='cp-btn btn-jpg' onclick='downloadImage_CP('jpg')'> 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()'>×</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()'>×</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()'>×</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()'>×</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()'>×</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'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 × 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 × 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 × 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 × 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 × 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 × 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 × 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 × 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 × 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 × 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()'>×</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()'>×</span> 2106<div class='cp-box' style='border: 1px solid #4f46e5; border-radius: 20px; padding: 25px;'> 2107<div class='curr-container' style='font-family: 'SolaimanLipi', 'Inter', 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 বাংলা 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> ডলার ⇄ 2119 à¦াà¦া à¦à¦¨à¦ার্à¦ার 2120 </h2> 2121<div class='live-rate-box'> 2122<div class='live-rate-text' id='lbl-live' style='font-size: 20px !important;'> 2123<!-- পালস à¦à¦à¦à¦¨ যুà¦্ত à¦à¦°া হলো --> 2124<span class='pulse-icon' style='display:inline-block; margin-right:10px;'></span> 2125 à¦à¦à¦ের লাà¦à¦ ডলার রেà¦: 2126 </div> 2127<div id='currLiveRate' style='font-size: 30px !important; font-weight: 800; color: #1d4ed8; margin-top: 10px;'> 2128 লোড হà¦্à¦ে... 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> à¦à¦¨à¦ার্ঠধরন: 2134 </label> 2135<select id='currDirection' style='font-family: 'SolaimanLipi', sans-serif !important;'> 2136<option id='opt-usd-bdt' value='usd-bdt'> 2137 ডলার ➔ à¦াà¦া 2138 </option> 2139<option id='opt-bdt-usd' value='bdt-usd'> 2140 à¦াà¦া ➔ ডলার 2141 </option> 2142</select> 2143<label class='curr-label' for='currAmount' id='lbl-amount'> 2144<i class='fa-solid fa-calculator'></i> পরিমাণ 2145 লিà¦ুন: 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'>à¦à¦¨à¦ার্ঠà¦à¦°ুন!</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> à¦à¦ªà¦¡েঠ2154 রেà¦:</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'>রেঠà¦à¦ªি à¦à¦°ুন!</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()'>×</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 বাংলা 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'>বà§à¦¸ à¦্যালà¦ুলেà¦à¦°</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'>à¦à¦¨্ম তারিঠসিলেà¦্ঠ2192 à¦à¦°ুন:</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'>বà§à¦¸ হিসাব à¦à¦°ুন</span> 2198</button> 2199<!-- রেà¦াল্ঠসেà¦à¦¶à¦¨ --> 2200<div class='res-box-age' id='ageResultBox'> 2201<strong id='age-lbl-res'>à¦à¦ªà¦¨ার ফলাফল:</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'>ফলাফল à¦à¦ªি à¦à¦°ুন</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()'>×</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° 2257 </div> 2258<b id='v4-rotation'>0°</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()'>×</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<!-- à¦à¦ানে for='ipQuality' যোঠà¦à¦°া হà§েà¦ে যা নিà¦ের select id à¦à¦° সাথে মিলবে --> 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()'>×</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()'>×</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° 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 à¦à¦° à¦েতরের à¦্রিডà¦ি à¦à¦à¦¨ à¦à¦ à¦্লাস বেবহার à¦à¦°à¦¬ে --> 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()'>×</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° <b id='v-jStraightenL'>0°</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° <b id='v-jStraightenR'>0°</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()'>×</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 বাংলা 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()'>×</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()'>×</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()'>×</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()'>×</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()'>×</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 বাংলা 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()'>×</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()'>×</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()'>×</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'>বাংলা</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's Name' type='text' value='Md. Faizul Karim'/> 3279</div> 3280<div class='wdm-field'> 3281<input id='in-bride' oninput='updateWedCard()' placeholder='Bride'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 ❤ 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;'>×</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 • Secure • ID Card A4 Pdf Print Ready 3426 </p> 3427<div id='status'> 3428<span>⌛ 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()'>×</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()'>×</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()'>×</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()'>×</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()'>×</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 বাংলা 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()'>×</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()'>×</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 বাংলা 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 × 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()'>×</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()'>×</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()'>×</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()'>×</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 বাংলা 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()'>×</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()'>×</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 বাংলা 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()'>×</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 বাংলা 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()'>×</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 বাংলা 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('bio-photo-in').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' 6''' 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()'>×</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 ঠনুবাদ à¦à¦ানে দেà¦া 4964 যাবে... 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()'>×</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()'>×</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('imgPdfInput').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()'>×</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;'>⚠️ 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()'>×</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'>বাংলা</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()'>×</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")'>বাংলা</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'>প্রতিষ্ঠানের নাম</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'>ঠিà¦ানা</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'>স্মারঠনং</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'>তারিà¦</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'>নোà¦িশের বিষà§</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'>নোà¦িশের বিস্তারিত তথ্য</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'>à¦à¦°্তৃপà¦্ষের নাম ঠপদবী</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> প্রিন্ঠà¦à¦°ুন (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> সব মুà¦ুন 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()'>×</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")'>বাংলা</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'>লেà¦া à¦োরান (৯০° ডিà¦্রী)</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;'>à¦েমপ্লেঠনির্বাà¦à¦¨ à¦à¦°ুন</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;'>শিরোনাম / হেডলাà¦à¦¨</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('title', -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('title', 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;'>বিস্তারিত তথ্য</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('body', -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('body', 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;'>যোà¦াযোঠ/ ফুà¦ার</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('footer', -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('footer', 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;'>à¦à¦²াà¦à¦¨à¦®েন্ঠ(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'>মাà¦à¦ানে</option> 5572<option id='opt-left' value='left'>বামে</option> 5573<option id='opt-right' value='right'>ডানে</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;'>শিরোনাম</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;'>বিস্তারিত তথ্য à¦à¦ানে দেà¦া যাবে।</div> 5584<div id='lp-footer' style='font-weight: 900;
5584 border-top: 4px solid #000; padding-top: 10px;'>যোà¦াযোà¦</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'>প্রিন্ঠà¦à¦°ুন (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'>সব মুà¦ুন</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;'>×</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'>বাংলা</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 (à¦à¦¤ুর্à¦ুà¦)</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 (ত্রিà¦ুà¦)</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()'>×</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'>বাংলা</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()'>×</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 বাংলা à¦ার্সন 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;'>à¦েমপ্লেঠনির্বাà¦à¦¨ à¦à¦°ুন</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'>হলফà¦ারীর নাম</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'>পিতা/স্বামীর নাম</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'>মাতার নাম</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'>ঠিà¦ানা</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'>à¦ুল তথ্য (যা à¦à¦ে)</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'>সঠিঠতথ্য (যা হবে)</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'>স্à¦্যাম্প à¦à¦ª স্পেস (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 হলফনামা 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'>তদন্তà¦ারী 5804 à¦à¦°্মà¦à¦°্তা</span> 5805</div> 5806<div style='text-align:center;'> 5807<br/>________________<br/><span id='lbl-sig-2'>হলফà¦ারীর স্বাà¦্ষর</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()'>×</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>১০০% নিরাপদ:</b> à¦à¦ªà¦¨ার à¦à¦ªà¦²োড à¦à¦°া ফাà¦à¦² সম্পূর্ণ à¦à¦ªà¦¨ার নিà¦à¦¸্ব à¦ুà¦à¦² ড্রাà¦à¦ে (Google Drive) à¦à¦®া হবে। à¦à¦ি à¦োনোà¦াবেঠà¦à¦®াদের à¦à§েবসাà¦à¦ের সার্à¦ারে সেঠহৠনা, তাঠà¦à¦ªà¦¨ার ডেà¦া সম্পূর্ণ সুরà¦্ষিত।<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;'>×</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()'>×</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 ð সরà¦ারি à¦াà¦à¦°ি, ব্যাংঠà¦াà¦à¦°ি, শিà¦্ষà¦à¦¤া, à¦িà¦িà§à¦¸à¦ à¦াà¦à¦°ি, নার্সিং, সেনাবাহিনী à¦াà¦à¦°ি, পুলিশ à¦াà¦à¦°ি, বিà¦িবি, নৌবাহিনী, বিমানবাহিনী, প্রà¦ৌশলী à¦াà¦à¦°ি, তথ্যপ্রযুà¦্তি (à¦à¦à¦ি) à¦াà¦à¦°ি, সাংবাদিà¦à¦¤া, বেসরà¦ারি ঠফিস à¦াà¦à¦°ি, à¦à¦¨à¦িঠà¦াà¦à¦°ি, à¦ার্মেন্à¦à¦¸ à¦াà¦à¦°ি, ড্রাà¦à¦ার à¦াà¦à¦°ি, ফ্রিল্যান্সিং সহ à¦à¦¤্যাদি à¦াà¦à¦°ির à¦à¦¬েদন à¦à¦°à¦¤ে পারবেন। ð 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;'>সà¦à¦² à¦াà¦à¦°ির à¦à¦¬েদন ঠসার্à¦ুলার ✔</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;'>à¦ুঁà¦ুন</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()'>×</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 ð পল্লী বিদ্যুৠমিà¦ার à¦à¦¬েদন, ঠনলাà¦à¦¨ à¦িডি à¦à¦¬েদন, à¦à¦²েঠà¦à¦°্তি à¦à¦¬েদন, সà¦à¦² à¦াতার à¦à¦¬েদন, প্রতিবন্ধী à¦ার্ডের à¦à¦¬েদন, à¦-à¦ালান, à¦à¦¨্ম নিবন্ধন à¦à¦¬েদন, à¦à¦¨্ম নিবন্ধন যাà¦াà¦, à¦à¦¨-à¦à¦à¦¡ি à¦ার্ড à¦à¦¬েদন, à¦à¦¨-à¦à¦à¦¡ি à¦ার্ড ডাà¦à¦¨à¦²োড, স্মার্ঠà¦à¦¨-à¦à¦à¦¡ি স্à¦্যাà¦াস à¦েà¦, পুলিশ à¦্লিà§ারেন্স à¦à¦¬েদন, à¦িন সার্à¦িফিà¦েঠà¦à¦¬েদন, ড্রাà¦à¦িং লাà¦à¦¸েন্স à¦à¦¬েদন, à¦াà¦à¦«à¦¯়েড à¦্যাà¦à¦¸িন à¦à¦¬েদন, মেনিনà¦াà¦à¦িস à¦্যাà¦à¦¸িন à¦à¦¬েদন, à¦à¦à¦à¦ªিà¦ি à¦্যাà¦à¦¸িন à¦à¦¬েদন, à¦à¦¨à¦°োলমেন্ঠà¦ার্ড ডাà¦à¦¨à¦²োড, à¦্রেনিং সার্à¦িফিà¦েঠডাà¦à¦¨à¦²োড, ম্যানপাà¦à¦¯়ার ডাà¦à¦¨à¦²োড, বিà¦à¦®à¦à¦ি à¦à¦¬েদন, à¦-পাসপোর্ঠà¦à¦¬েদন, পাসপোর্ঠà¦à¦¬েদন à¦েà¦, à¦à¦®ির à¦ারিঠà¦à¦¬েদন, à¦ূমি à¦à¦¨্নয়ন à¦à¦° প্রদান, à¦ূমি ম্যাপ ঠà¦à¦¤িয়ান, স্মার্ঠনাà¦à¦°িঠà¦à¦à¦¨িয়ন, à¦িসিবি স্মার্ঠà¦ার্ড, à¦à¦¤্যাদি সেবাà¦ুলো পাবেন। ð 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> ঠনলাà¦à¦¨ à¦à¦¬েদন ঠডাà¦à¦¨à¦²োড 5952 </h2> 5953<p style='text-align:center; font-size:16px; color:#64748b; margin-bottom:15px; font-weight: 700;'>সà¦à¦² সরà¦ারি ঠবেসরà¦ারি ঠনলাà¦à¦¨ সেবা ✔</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()'>×</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")'>বাংলা</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()'>×</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 ð প্রাথমিঠশিà¦্ষা ঠধিদপ্তর, প্রাথমিঠশিà¦্ষা ঠধিদপ্তর-বিদ্যালৠà¦িত্তিà¦, বাংলাদেশ শিà¦্ষা বোর্ড, পরীà¦্ষার রেà¦াল্ঠবিডি, à¦à¦à¦®ী মাদরাসা শিà¦্ষাবোর্ড, à¦ারিà¦à¦°ী শিà¦্ষা বোর্ড, মেডিà¦েল রেà¦াল্ঠ- MBBS, মেডিà¦েল রেà¦াল্ঠ- BDS, বিদ্যালà§ের ঠà¦্যন্তরীণ রেà¦াল্à¦, সহ বাংলাদেশের সà¦à¦² পরীà¦্ষার ফলাফল দেà¦à¦¤ে পারবেন। ð 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> বাংলাদেশ পরীà¦্ষার রেà¦াল্ঠà¦েঠ6045 </h2> 6046<p style='text-align:center; font-size:16px; color:#64748b; margin-bottom:15px; font-weight: 700;'>দ্রুত ঠসঠিঠফলাফল যাà¦াঠ✔</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()'>×</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<!-- ড্রপ à¦à¦°িয়া --> 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<!-- সেà¦িংস à¦্রিড --> 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<!-- স্à¦্যাà¦াস à¦à¦¬ং প্রিà¦িঠ--> 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<!-- ঠ্যাà¦à¦¶à¦¨ বাà¦à¦¨ --> 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()'>×</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<!-- à¦à¦à¦à¦¨ের à¦à¦¨্য à¦à¦²াদা ফন্ঠফ্যামিলি ডিà¦্লেয়ার à¦à¦°া হয়েà¦ে --> 6118<i class='fa-solid fa-file-pen' style='font-family: "Font Awesome 6 Free" !important;'></i> 6119<span id='fq-main-title'>পরীà¦্ষার প্রশ্নপত্র মেà¦ার</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")'>বাংলা</button> 6124<button class='ph-tab' id='fq-btn-en' onclick='setFqLang("en")'>English</button> 6125</div> 6126<div class='fq-main-layout'> 6127<!-- বাম পাশ: à¦à¦¡িঠঠপশন --> 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'>à§§. প্রতিষ্ঠানের তথ্য</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'>২. প্রশ্নপত্র তৈরি à¦à¦°ুন</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('desc')'>+ বৠপ্রশ্ন</button> 6152<button class='btn-mcq' id='btn-add-mcq' onclick='addFqItem('mcq')'>+ MCQ প্রশ্ন</button> 6153</div> 6154</div> 6155</div> 6156<!-- ডান পাশ: প্রিà¦িঠ--> 6157<div class='fq-preview-side'> 6158<div class='fq-preview-container'> 6159<div id='fq-render-area'> 6160<!-- লাà¦à¦ প্রিà¦িঠà¦à¦ানে দেà¦াবে --> 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> প্রিন্ঠà¦à¦°ুন 6166 </button> 6167<button class='btn-reset' id='btn-fq-reset' onclick='resetFqTool()'> 6168<i class='fa-solid fa-trash-can'></i> সব মুà¦ুন 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()'>×</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 বাংলা 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;'>à¦ুà¦্তিপত্র নির্বাà¦à¦¨ à¦à¦°ুন</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'>প্রথম পà¦্ষের নাম</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'>দ্বিতীয় পà¦্ষের নাম</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'>সাà¦্ষীর নাম</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'>বিষà§ের বিবরণ/ঠিà¦ানা</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'>à¦াà¦ার পরিমাণ/শর্ত à§§</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'>মেà§াদ/শর্ত ২</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'>স্à¦্যাম্প à¦à¦ª স্পেস (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 à¦ুà¦্তিপত্র 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'>প্রথম পà¦্ষের স্বাà¦্ষর</span> 6259</div> 6260<div style='text-align:center;'> 6261<br/>________________<br/><span id='lbl-ag-sig2'>দ্বিতীৠপà¦্ষের স্বাà¦্ষর</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()'>×</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()'>×</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'>পুলিশ à¦িডি à¦à¦¬েদন রাà¦à¦িং</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")'>বাংলা</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<!-- à§§. à¦েমপ্লেঠলেবেল ঠিঠà¦à¦°া হà§েà¦ে --> 6334<label for='gdm-template-select' id='lbl-gdm-temp' style='font-weight: 800; color: #1e40af;'>à¦িডির বিষৠনির্বাà¦à¦¨ à¦à¦°ুন</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<!-- ২. সেà¦à¦¶à¦¨ à¦াà¦à¦েল হিসেবে span ব্যবহার à¦à¦°া হà§েà¦ে (à¦à¦°à¦° à¦à§াতে) --> 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;'>à§§. থানা ঠতারিà¦</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<!-- à§©. সেà¦à¦¶à¦¨ à¦াà¦à¦েল --> 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;'>২. à¦à¦¬েদনà¦ারীর তথ্য</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<!-- ৪. সেà¦à¦¶à¦¨ à¦াà¦à¦েল --> 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;'>à§©. হারানো à¦িনিসের বিবরণ</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>প্রিন্ঠà¦à¦°ুন (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>সব মুà¦ুন</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()'>×</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'>à¦্লাস রুà¦িন মেà¦ার</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")'>বাংলা</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;'>à§§. প্রতিষ্ঠানের তথ্য</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;'>২. পিরিà§à¦¡ ঠসমà§</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: 'SolaimanLipi', sans-serif;'>+ পিরিà§à¦¡ যোঠà¦à¦°ুন</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;'>à§©. বিষৠবিন্যাস</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: 'SolaimanLipi', sans-serif;'> 6424<i class='fa-solid fa-print' style='font-family: "Font Awesome 6 Free" !important;'></i> প্রিন্ঠà¦à¦°ুন 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: 'SolaimanLipi', sans-serif;'> 6427<i class='fa-solid fa-trash-can' style='font-family: "Font Awesome 6 Free" !important;'></i> সব মুà¦ুন 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()'>×</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'>সম্পত্তি বন্à¦à¦¨ à¦্যালà¦ুলেà¦à¦° (ফারায়েà¦)</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")'>বাংলা</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<!-- বাম পাশ: তথ্য à¦à¦¨à¦ªুঠ--> 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;'>à§§. সম্পত্তির বিবরণ</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;'>মোঠà¦à¦®ি (শতাংশ)</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;'>মোঠà¦াà¦া (নà¦à¦¦)</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;'>২. à¦ীবিত à¦à¦¤্তরাধিà¦ারীà¦à¦£</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'>স্ত্রী</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'>স্বামী</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'>পুত্র</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'>à¦à¦¨্যা</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'>পিতা</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'>মাতা</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 নির্দেশনা: মৃত ব্যà¦্তির স্ত্রী, স্বামী, সন্তান বা পিতা-মাতা যারা বেঁà¦ে à¦à¦েন তাদের পাশে à¦িঠদিন à¦à¦¬ং সংà¦্যা লিà¦ুন। 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> প্রিন্ঠরিপোর্ঠ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> সব মুà¦ুন 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()'>×</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'>ফà¦োশপ মাস্à¦ার শর্à¦à¦াà¦</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")'>বাংলা</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('all')'>All</button> 6562<button class='ps-cat-btn' onclick='filterPsByCategory('tool')'>Tools</button> 6563<button class='ps-cat-btn' onclick='filterPsByCategory('file')'>File</button> 6564<button class='ps-cat-btn' onclick='filterPsByCategory('layer')'>Layers</button> 6565<button class='ps-cat-btn' onclick='filterPsByCategory('adjust')'>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()'>×</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'>স্যালারি শীঠমেà¦ার</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")'>বাংলা</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;'>à§§. প্রতিষ্ঠানের তথ্য</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;'>২. সেà¦িংস</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;'>+ à¦à¦°্মà¦ারী যোà¦</button> 6605<select id='sal-orient' onchange='setSalOrient(this.value)' style='padding:8px; border-radius:8px; border:1px solid #cbd5e1;'> 6606<option value='p'>লম্বালম্বি (P)</option> 6607<option value='l'>à¦à§াà¦à§ি (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> প্রিন্ঠ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> রিসেঠ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()'>×</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()'>×</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> ফ্যামিলি à¦ার্ড à¦à¦¬েদন ফরম ২০২৬ 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'>à§§. সাধারণ তথ্যাদি</p> 6733<div class='fc-field-grid'> 6734<div> 6735<label class='fc-label' for='fc-authority'>প্রাপঠনির্বাà¦à¦¨ à¦à¦°ুন</label> 6736<select class='fc-select' id='fc-authority' onchange='updateFamilyCard()'> 6737<option value='à¦à¦²à¦¾à¦à¦¾à¦° à¦à¦£à§à¦¯à¦®à¦¾à¦¨à§à¦¯ বà§à¦¯à¦à§à¦¤à¦¿'>à¦à¦²াà¦ার à¦à¦£্যমান্য ব্যà¦্তি</option> 6738<option selected='selected' value='à¦à¦¯à¦¼à¦¾à¦°à§à¦¡ মà§à¦®à§à¦¬à¦¾à¦°'>à¦à¦¯়ার্ড মেম্বার</option> 6739<option value='à¦à§à§à¦¾à¦°à¦®à§à¦¯à¦¾à¦¨'>à¦েà§ারম্যান</option> 6740<option value='à¦à¦¾à¦à¦¨à§à¦¸à¦¿à¦²à¦°'>à¦াà¦à¦¨্সিলর</option> 6741<option value='মà§à§à¦°'>মেà§à¦°</option> 6742</select> 6743</div> 6744<div> 6745<label class='fc-label' for='fc-union'>à¦à¦à¦¨িয়ন/পৌরসà¦ার নাম</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'>à¦à¦¬েদনà¦ারীর পূর্ণ নাম</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'>পিতা/স্বামীর নাম</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'>মাতার নাম</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'>à¦াতীয় পরিà¦à¦¯়পত্র (NID) নম্বর</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'>মোবাà¦à¦² নম্বর</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'>২. পূর্ণ ঠিà¦ানা</p> 6776<div class='fc-field-grid'> 6777<div> 6778<label class='fc-label' for='fc-vill'>à¦্রাম / মহল্লা</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'>ডাà¦à¦à¦°</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'>à¦à¦¯়ার্ড নং</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'>à¦à¦ªà¦েলা</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'>à¦েলা</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'>à§©. পরিবারের বিবরণ (সন্তান)</p> 6804<div class='fc-field-grid'> 6805<div> 6806<label class='fc-label' for='fc-son'>à¦েলে সন্তান (à¦à¦¤à¦à¦¨)</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'>মেয়ে সন্তান (à¦à¦¤à¦à¦¨)</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 ডাà¦à¦¨à¦²োড à¦à¦°ুন 6824 </button> 6825<button class='fc-btn-action' onclick='resetFamilyCard()' style='background:#ef4444;'> 6826<i class='fa-solid fa-trash-can'></i> সব মুà¦ে ফেলুন 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 à¦ুরুত্বপূর্ণ তথ্যাদি ঠনির্দেশনা: 6835 </p> 6836<h4 style='color: #475569; font-size: 15px; margin-bottom: 10px; margin-top: 20px;'> 6837 নিম্নলিà¦িত à¦াà¦à¦à¦ªà¦¤্র সংযুà¦্ত à¦à¦°à¦¤ে হবে: 6838 </h4> 6839<ul style='color: #1e293b; font-size: 14px; line-height: 1.6; list-style-type: disc; margin-left: 20px;'> 6840<li> 6841 à¦à¦¬েদন ফরমের সাথে à¦à¦à¦ি রà¦িন পাসপোর্ঠসাà¦à¦ের à¦à¦¬ি স্à¦েপলার মেরে সংযুà¦্ত à¦à¦°à¦¤ে 6842 হবে। 6843 </li> 6844<li>à¦à¦¬েদন ফরমের সাথে à¦াতীৠপরিà¦à§à¦ªà¦¤্র (NID) à¦à¦° ফà¦োà¦à¦ªি à¦à¦®া দিতে হবে।</li> 6845<li> 6846 পরিবারের ঠন্য সদস্যদের (যদি থাà¦ে) à¦াতীৠপরিà¦à§à¦ªà¦¤্র (NID)-à¦à¦° ফà¦োà¦à¦ªি দিতে 6847 হবে। 6848 </li> 6849<li>à¦à¦à¦ি সà¦à¦² মোবাà¦à¦² নাম্বার ঠবশ্যঠà¦à¦²্লেঠà¦à¦°ে দিতে হবে।</li> 6850</ul> 6851<br/> 6852<p style='font-size: 14px; line-height: 1.6;'> 6853<span style='color: #ef4444; font-weight: bold;'>সম্পূর্ণ তথ্য সঠিঠঠনির্à¦ুলà¦াবে পূরণ à¦à¦°ুন। à¦ুল তথ্য প্রদানের à¦à¦¨্য à¦à¦¬েদন 6854 বাতিল হতে পারে।</span><br/> 6855<span style='color: #f97316; font-weight: bold;'>à¦à¦ ফর্মà¦ি à¦à¦ªà¦¨ার à¦à¦²াà¦ার à¦à¦£্যমান্য ব্যà¦্তি, মেম্বার, à¦েয়ারম্যান, à¦াà¦à¦¨্সিলর 6856 ঠথবা মেà§à¦°ের à¦াà¦ে à¦à¦®া দিন। à¦ারন, ফ্যামিলি à¦ার্ডের à¦à¦¨্য ঠনলাà¦à¦¨ে à¦à¦¬েদন à¦à¦°ার 6857 à¦োনো সিস্à¦েম নেà¦।</span><br/> 6858<span style='color: #059669; font-weight: bold;'>সরà¦ারি à¦à¦ সুবিধা পেতে à¦োনো দালালের সাহায্য নেà¦à§ার প্রà§োà¦à¦¨ নেঠবা à¦াà¦à¦ে 6859 à¦াà¦া দেà¦à§ার প্রà§োà¦à¦¨ নেà¦; à¦ারন, à¦à¦ ফ্যামিলি à¦ার্ড সরà¦ার থেà¦ে বিনামূল্যে 6860 বিতরণ à¦à¦°া হবে।</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'>ð à¦à¦°োঠবিস্তারিত à¦ানতে à¦à¦ানে à¦্লিঠà¦à¦°ুন!</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()'>×</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> বাংলা à¦্যালেন্ডার (à¦ংরেà¦ি, বাংলা ঠà¦à¦°à¦¬ি) 6879 </h2>
6880<div class='cal-clock-box' id='cal-clock-text'> 6881<i class='fa-regular fa-clock'></i> বর্তমান সমà§: লোড হà¦্à¦ে... 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> à¦à¦à¦ের সারসংà¦্ষেপ 6888 </strong> 6889<span id='cal-summary-text' style='font-size: 15px; font-weight: 700;'>লোড হà¦্à¦ে...</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'>মাস বà¦à¦°</h2> 6898<p id='cal-title-sub'>বাংলা ঠà¦à¦°à¦¬ি মাস</p> 6899<button class='cal-today-btn' onclick='goToToday()'>à¦à¦à¦ের তারিà¦ে ফিরে যাà¦...</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'>রবি</div> 6908<div class='cal-weekday'>সোম</div> 6909<div class='cal-weekday'>মà¦্à¦à¦²</div> 6910<div class='cal-weekday'>বুধ</div> 6911<div class='cal-weekday'>বৃহস্পতি</div> 6912<div class='cal-weekday weekend'>শুà¦্র</div> 6913<div class='cal-weekday weekend'>শনি</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>বিশেষ দ্রষ্à¦à¦¬্য:</b> হিà¦à¦°ি পà¦্à¦িà¦া à¦াঁদ দেà¦ার à¦à¦ªà¦° নির্à¦à¦°à¦¶ীল। à¦à¦ à¦à¦£à¦¨া à¦à¦াম à¦à¦¨ুমানিঠধারণা দেৠমাত্র। বাস্তব তারিà¦ের সাথে, শুধুমাত্র à§§ থেà¦ে ২ দিনের তফাৠহতে পারে। 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()'>×</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 ✔ 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’ 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>বিশেষ দ্রষ্à¦à¦¬্য:</b> 6961 à¦à¦¯়ারলাà¦à¦¨্সà¦ুলোর ঠফিসিয়াল à¦à¦¯়েবসাà¦à¦ের à¦েà¦িং লিংঠযেà¦োনো সময় পরিবর্তন হতে পারে। যদি à¦à¦ানà¦ার à¦োনো লিংঠà¦াঠনা à¦à¦°ে, তবে ঠনুà¦্রহ à¦à¦°ে à¦à¦®াদের 6962 <a href='/p/contact.html' style='color: #ea580c; text-decoration: underline;'>Contact</a> পেà¦ের মাধ্যমে মেসেঠà¦à¦°ে à¦ানাবেন, যাতে à¦à¦®à¦°া দ্রুত তা à¦à¦ªà¦¡েঠà¦à¦°à¦¤ে পারি। 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()'>×</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 ✔ 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’ 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>বিশেষ দ্রষ্à¦à¦¬্য:</b> 7001ঠনলাà¦à¦¨ে à¦িসা à¦েà¦িং, ঠফিসিয়াল à¦à¦¯়েবসাà¦à¦ের à¦েà¦িং লিংঠযেà¦োনো সময় পরিবর্তন হতে পারে। যদি à¦à¦ানà¦ার à¦োনো লিংঠà¦াঠনা à¦à¦°ে, তবে ঠনুà¦্রহ à¦à¦°ে à¦à¦®াদের 7002 <a href='/p/contact.html' style='color: #ea580c; text-decoration: underline;'>Contact</a> পেà¦ের মাধ্যমে মেসেঠà¦à¦°ে à¦ানাবেন, যাতে à¦à¦®à¦°া দ্রুত তা à¦à¦ªà¦¡েঠà¦à¦°à¦¤ে পারি। 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;'>×</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'>বাংলা à¦ার্সন</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;'>ঠ্যাডà¦ান্সড তারিঠà¦à¦¨à¦ার্à¦ার</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;'>à¦ংরেà¦ি তারিঠনির্বাà¦à¦¨ à¦à¦°ুন:</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;'>বাংলা তারিà¦:</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;'>à¦à¦°à¦¬ি তারিà¦:</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'>রিসেà¦</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'>à¦à¦ªি à¦à¦°ুন</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>বিশেষ দ্রষ্à¦à¦¬্য:</b> হিà¦à¦°ি পà¦্à¦িà¦া à¦াঁদ দেà¦ার à¦à¦ªà¦° নির্à¦à¦°à¦¶ীল। à¦à¦ à¦à¦£à¦¨া à¦à¦াম à¦à¦¨ুমানিঠধারণা দেৠমাত্র। বাস্তব তারিà¦ের সাথে, শুধুমাত্র à§§ থেà¦ে ২ দিনের তফাৠহতে পারে। 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()'>×</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()'>×</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> à¦à¦¦ মোবারঠà¦ার্ড ডিà¦াà¦à¦¨ 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> পোস্à¦ার ডিà¦াà¦à¦¨ সেà¦à¦à¦ª</p> 7102<label class='ep-label' for='ep1'>à¦à¦ªà¦¨ার à¦à¦¬ি à¦à¦ªà¦²োড à¦à¦°ুন</label> 7103<div class='ep-upload-box' onclick='document.getElementById('ep-photo-in').click()'> 7104<i class='fa-solid fa-cloud-arrow-up'></i> 7105<div style='font-weight: bold; color: #92400e;'>à¦্লিঠà¦à¦°ে à¦à¦¬ি নির্বাà¦à¦¨ à¦à¦°ুন</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'>à¦েমপ্লেঠডিà¦াà¦à¦¨</label> 7109<select class='ep-select' id='ep-layout' onchange='updateEidPoster()'> 7110<option value='layout-1'>রাà¦à¦¨্ড ফ্রেম (Standard)</option> 7111<option value='layout-2'>স্à¦à¦¯়ার ফ্রেম (Classic)</option> 7112<option value='layout-3'>হেà¦্সাà¦à¦¨ ফ্রেম (Modern)</option> 7113</select> 7114<label class='ep-label' for='ep3'>পোস্à¦ারের à¦ালার থিম</label> 7115<select class='ep-select' id='ep-theme' onchange='updateEidPoster()'> 7116<option value='theme-blue'>Royal Blue (রà§েল ব্লু)</option> 7117<option value='theme-green'>Emerald Green (সবুà¦)</option> 7118<option value='theme-purple'>Deep Purple (পার্পল)</option> 7119<option value='theme-red'>Crimson Red (লাল)</option> 7120</select> 7121<label class='ep-label' for='ep4'>শুà¦েà¦্à¦া বার্তা</label> 7122<input class='ep-input' id='ep-msg' oninput='updateEidPoster()' type='text' value='সবাà¦à¦à§ পবিতà§à¦° à¦à¦¦à§à¦² ফিতরà§à¦° শà§à¦à§à¦à§à¦à¦¾ ঠঠà¦à¦¿à¦¨à¦¨à§à¦¦à¦¨'/> 7123<label class='ep-label' for='ep5'>à¦à¦ªà¦¨ার নাম</label> 7124<input class='ep-input' id='ep-name' oninput='updateEidPoster()' placeholder='à¦à¦ªà¦¨à¦¾à¦° নাম লিà¦à§à¦¨...' type='text'/> 7125<label class='ep-label' for='ep6'>à¦à¦ªà¦¨ার পদবি / পরিà¦à§</label> 7126<input class='ep-input' id='ep-title' oninput='updateEidPoster()' placeholder='à¦à¦ªà¦¨à¦¾à¦° পদবৠঠপà§à¦¶à¦¾ লিà¦à§à¦¨...' type='text'/> 7127<label class='ep-label' for='ep7'>à¦à¦ªà¦¨ার ঠিà¦ানা</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> হাঠà¦োয়ালিà¦ি HD à¦à¦¦ à¦ার্ড</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'>বিসমিল্লাহির রাহমানির রাহিম</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'>à¦à¦¦ মোবারà¦</div> 7149<div class='ep-message' id='out-ep-msg'>সবাà¦à¦ে পবিত্র à¦à¦¦ুল ফিতরের শুà¦েà¦্à¦া ঠঠà¦িনন্দন</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='http://www.w3.org/2000/svg' viewBox='0 0 448 512'><path fill='%2394a3b8' d='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'/></svg>'/> 7154</div> 7155<div class='ep-user-name' id='out-ep-name'>à¦à¦ªà¦¨ার নাম</div> 7156<div class='ep-user-title' id='out-ep-title'>à¦à¦ªà¦¨ার পদবি</div> 7157<div class='ep-address' id='out-ep-address'>à¦à¦ªà¦¨ার ঠিà¦ানা</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 ডাà¦à¦¨à¦²োড 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> রিসেঠ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> à¦ীà¦াবে à¦à¦¦ মোবারঠপোস্à¦ার তৈরি à¦à¦°à¦¬েন? 7177 </h3> 7178<p class='ep-guidelines-text'> 7179 à¦ুব সহà¦েঠনিà¦ের à¦à¦¬ি দিà§ে à¦à¦®à§à¦ার à¦à¦¦ à¦ার্ড তৈরি à¦à¦°à¦¤ে প্রথমে à¦à¦ªà¦¨ার পà¦à¦¨্দের <span>à¦েমপ্লেঠঠথিম</span> নির্বাà¦à¦¨ à¦à¦°ুন। à¦à¦°à¦ªà¦° বà¦্সে à¦à¦ªà¦¨ার <span>নাম, পদবি ঠঠিà¦ানা</span> লিà¦ে <span>à¦à¦¬ি à¦à¦ªà¦²োড</span> ঠপশনে à¦্লিঠà¦à¦°ে à¦্যালারি থেà¦ে à¦à¦à¦ি সুন্দর à¦à¦¬ি সিলেà¦্ঠঠà¦্রপ à¦à¦°ুন। সবà¦িà¦ু ঠিঠথাà¦à¦²ে ডানপাশের লাà¦à¦ প্রিà¦িঠদেà¦ে <span>"HD ডাà¦à¦¨à¦²োড"</span> বাà¦à¦¨ে à¦্লিঠà¦à¦°à¦²েঠপোস্à¦ারà¦ি à¦à¦ªà¦¨ার à¦্যালারিতে সেঠহà§ে যাবে। <span style='color: red;'><b><a href='https://www.idcardscannerpro.com/2026/03/best-eid-mubarak-poster-maker.html' target='_blank'>à¦à¦°à¦ বিস্তারিত à¦ানুন!</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;'>à¦à¦¬ি à¦্রপ à¦à¦°ুন</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> সেঠà¦à¦°ুন</button> 7194<button class='ep-btn-action' onclick='closeEpCrop()' style='background: #ef4444;'><i class='fa-solid fa-xmark'></i> বাতিল</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()'>×</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()'>×</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()'>×</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()'>×</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('bold')'><i class='fa-solid fa-bold'></i> Bold</button> 7532<button class='waf-tool-btn' onclick='insertWaFormat('italic')'><i class='fa-solid fa-italic'></i> Italic</button> 7533<button class='waf-tool-btn' onclick='insertWaFormat('strike')'><i class='fa-solid fa-strikethrough'></i> Strike</button> 7534<button class='waf-tool-btn' onclick='insertWaFormat('code')'><i class='fa-solid fa-code'></i> Monospace</button> 7535<button class='waf-tool-btn' onclick='insertWaFormat('bullet')'><i class='fa-solid fa-list-ul'></i> Bullet List</button> 7536<button class='waf-tool-btn' onclick='insertWaFormat('number')'><i class='fa-solid fa-list-ol'></i> Number List</button> 7537<button class='waf-tool-btn' onclick='insertWaFormat('quote')'><i class='fa-solid fa-quote-left'></i> Quote</button> 7538<button class='waf-tool-btn' onclick='insertWaFormat('codeblock')'><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()'>×</span> 7594<div class='cp-box' style='border-radius: 20px; padding: 25px;'> 7595<!-- সোলেমান লিপি ফন্ঠথিম সাপোর্ঠ(NEW UPDATE) --> 7596<div class='ip-container' style='font-family: 'SolaimanLipi', 'Inter', 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'>বাংলা (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'>প্রথমে ঠর্ডার লিংà¦à¦ি <span>সেঠà¦à¦°ুন!</span></h3> 8293<p class='lks-info-text'>পরবর্তীতে à¦à¦ªà¦¡েঠপেতে বা ফাà¦à¦²à¦ি à¦à¦¬ার ডাà¦à¦¨à¦²োড à¦à¦°à¦¤ে à¦à¦ পেà¦ের লিংà¦à¦ি ঠবশ্যঠ<b>নোà¦à¦ª্যাড বা à¦à¦¨à¦¬à¦্সে</b> ঠথবা <b>ঠন্য à¦োথাà¦</b> সেঠà¦à¦°ে রাà¦ুন।</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> লিংà¦à¦ি à¦à¦ªি à¦à¦°ুন 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 /* ২ৠপেঠরোধ à¦à¦°ার à¦à¦¨্য à¦à¦ানে পরিবর্তন à¦à¦°া হà§েà¦ে */ 8593 #fo-print-wrapper { position: absolute; left: -9999px; top: 0; } 8594 .fo-print-only { 8595 background: white; 8596 width: 210mm; 8597 height: 296mm; /* à§§ মিমি à¦à¦®ানো হà§েà¦ে */ 8598 padding: 20mm; 8599 box-sizing: border-box; 8600 display: block !important; 8601 position: relative; 8602 overflow: hidden; /* ঠতিরিà¦্ত à¦à¦¨্à¦েন্ঠপরের পেà¦ে যাà¦à§া বন্ধ à¦à¦°à¦¬ে */ 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()'>×</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;'>à¦্বালানি তেলের à¦à¦¬েদন ফরম</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'>ব্যà¦্তিà¦à¦¤ ঠপ্রতিষ্ঠানের তথ্য</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'>ঠিà¦ানা ঠপাম্পের বিবরণ</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'>যন্ত্র ঠব্যবহারের তথ্য</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 ডাà¦à¦¨à¦²োড</button> 8657<button class='fo-btn-action' onclick='resetFuelOilForm()' style='background:#ef4444;'>সব মুà¦ুন</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<!--à¦à¦¨্ম ঠমৃত্যু নিবন্ধন à¦েà¦ার 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()'>×</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> à¦à¦¨্ম ঠমৃত্যু নিবন্ধন ঠনলাà¦à¦¨ যাà¦াঠ✔ 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('birth')'>à¦à¦¨্ম নিবন্ধন যাà¦াà¦</button> 8774<button class='dob-tab-btn' onclick='showDobTab('death')'>মৃত্যু নিবন্ধন যাà¦াà¦</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>à¦à¦¨্ম নিবন্ধন ঠনলাà¦à¦¨ যাà¦াঠ✔</h3> 8783<h2>à¦à¦¨্ম নিবন্ধন নম্বর à¦à¦¬ং à¦à¦¨্ম তারিঠলিà¦ে à¦েরিফাঠà¦à¦°ুন।</h2> 8784<div class='input-item'> 8785<label>à¦à¦¨্ম নিবন্ধন নম্বর:</label> 8786<div class='input-group'> 8787<input id='UBRN' maxlength='17' name='UBRN' placeholder='১ৠসà¦à¦à§à¦¯à¦¾à¦° নমà§à¦¬à¦° à¦à¦à¦°à§à¦à¦¿à¦¤à§ লিà¦à§à¦¨' required='' type='number'/> 8788<button id='copyBtn' type='button'>১ৠসংà¦্যা à¦à¦ªি à¦à¦°ুন?</button> 8789</div> 8790</div> 8791<div class='input-item'> 8792<label>à¦à¦¨্ম তারিঠ(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>মৃত্যু নিবন্ধন ঠনলাà¦à¦¨ যাà¦াঠ✔</h3> 8810<h2>মৃত্যু নিবন্ধন নম্বর à¦à¦¬ং মৃত্যু তারিঠলিà¦ে à¦েরিফাঠà¦à¦°ুন।</h2> 8811<div class='input-item'> 8812<label>মৃত্যু নিবন্ধন নম্বর:</label> 8813<div class='input-group'> 8814<input id='deathUBRN' maxlength='17' name='UBRN' placeholder='১ৠসà¦à¦à§à¦¯à¦¾à¦° নমà§à¦¬à¦° à¦à¦à¦°à§à¦à¦¿à¦¤à§ লিà¦à§à¦¨' required='' type='number'/> 8815<button id='deathCopyBtn' type='button'>১ৠসংà¦্যা à¦à¦ªি à¦à¦°ুন?</button> 8816<!-- Changed ID for death copy button --> 8817</div> 8818</div> 8819<div class='input-item'> 8820<label>মৃত্যু তারিঠ(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<!--à¦à¦¨্ম ঠমৃত্যু নিবন্ধন à¦েà¦ার Modal END--> 8835<style> 8836 8837 /* Modal Specific Styles for DOB Checker */ 8838 .dob-title { 8839 font-family: "SolaimanLipi", sans-serif; 8840} 8841/* à¦à¦ªà¦¨ার ঠন্যান্য CSS à¦োড */ 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'>à¦à¦®াদের ঠ্যাপ à¦à¦¨à¦¸্à¦à¦² à¦à¦°ুন<br/> ID Card Scanner Pro</h3> 9364<p class='pwa-desc'>দ্রুততম ঠ্যাà¦্সেস, ঠফলাà¦à¦¨ ব্যবহার à¦à¦¬ং হোম স্à¦্রিন থেà¦ে সরাসরি à¦à¦¨à¦¸্à¦্যান্ঠসাপোর্à¦ের à¦à¦¨্য à¦à¦®াদের ঠফিশিà§াল ঠ্যাপà¦ি à¦à¦¨à¦¸্à¦à¦² à¦à¦°ুন।</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> যেà¦াবে à¦à¦¨à¦¸্à¦à¦² à¦à¦°à¦¬েন:</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> ঠ্যাপ à¦à¦¨à¦¸্à¦à¦² à¦à¦°ুন 9373 </button> 9374<button class='pwa-btn-dismiss' onclick='closePwaPrompt()'>পরে à¦à¦°à¦¬</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'>প্রথমে ঠর্ডার লিংà¦à¦ি <span>সেঠà¦à¦°ুন!</span></h3> 9744<p class='lks-info-text'>পরবর্তীতে à¦à¦ªà¦¡েঠপেতে বা ফাà¦à¦²à¦ি à¦à¦¬ার ডাà¦à¦¨à¦²োড à¦à¦°à¦¤ে à¦à¦ পেà¦ের লিংà¦à¦ি ঠবশ্যঠ<b>নোà¦à¦ª্যাড বা à¦à¦¨à¦¬à¦্সে</b> ঠথবা <b>ঠন্য à¦োথাà¦</b> সেঠà¦à¦°ে রাà¦ুন।</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> লিংà¦à¦ি à¦à¦ªি à¦à¦°ুন 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()'>×</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; } /* মোবাà¦à¦²ে লোà¦োর সাà¦à¦ à¦িà¦ুà¦া à¦োঠহবে */ 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()'>×</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> সমাà¦à¦¸েবা ঠধিদপ্তর ঠনলাà¦à¦¨ সেবা</div> 10469<h3>সামাà¦িঠনিরাপত্তা à¦à¦°্মসূà¦ি পোর্à¦াল <br/><span>সহঠঠনলাà¦à¦¨ à¦à¦¬েদন ঠফরম প্রিন্à¦</span></h3> 10470<p> 10471 সমাà¦à¦¸েবা ঠধিদপ্তর à¦à¦°্তৃঠসামাà¦িঠনিরাপত্তা à¦à¦°্মসূà¦ির à¦à¦à¦¤াৠসরà¦ারি à¦াতা à¦à¦¬ং শিà¦্ষা à¦à¦ªà¦¬ৃত্তির সুবিধাà¦োà¦ীদের à¦à¦¨্য তৈরিà¦ৃত স্বà§ংà¦্রিৠসেবা à¦à¦à¦¨্ডো। 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>নতুন ঠনলাà¦à¦¨ à¦à¦¬েদন</h4> 10482<p>à§§ à¦à¦à¦¸্ঠথেà¦ে à§§à§« à¦à¦à¦¸্ঠ২০২৬ à¦à¦° মধ্যে যেà¦োনো à¦াতার à¦à¦¨্য সরাসরি সরà¦ারি সার্à¦ারে à¦à¦¬েদন সম্পন্ন à¦à¦°ুন।</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> সরাসরি à¦à¦¬েদন à¦à¦°ুন 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>à¦à¦¬েদন ফরম প্রিন্ঠঠà¦্র্যাà¦</h4> 10491<p>à¦à¦¬েদন à¦à¦°ার পর à¦à¦ªà¦¨ার à¦à¦¬েদনপত্রের ঠনলাà¦à¦¨ à¦à¦ªি প্রিন্ঠà¦à¦°ুন ঠথবা à¦à¦¬েদনের বর্তমান ঠবস্থা à¦্র্যাà¦িং à¦à¦°ুন।</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> ফরম প্রিন্ঠঠà¦্র্যাঠ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> à¦ুরুত্বপূর্ণ সরà¦ারি নোà¦িশ ঠসমà§à¦¸ীমা:</h3> 10500<p> 10501 সমাà¦à¦¸েবা ঠধিদপ্তর à¦à¦°্তৃঠবাস্তবাà§িত সামাà¦িঠনিরাপত্তা à¦à¦°্মসূà¦ির à¦à¦à¦¤াà§ <b>à§§ à¦à¦à¦¸্ঠ২০২৬ থেà¦ে</b> সরà¦ারি à§«à¦ি প্রধান à¦াতার নতুন ঠনলাà¦à¦¨ à¦à¦¬েদন à¦ার্যà¦্রম শুরু হà§েà¦ে, যা à¦à¦ামী <b>à§§à§« à¦à¦à¦¸্ঠ২০২৬ পর্যন্ত</b> à¦à¦²à¦¬ে। à¦ূà§ান্তà¦াবে নির্বাà¦িত à¦à¦ªà¦ারà¦োà¦ীরা <b>à§§ à¦ুলাঠ২০২৬ থেà¦ে</b> à¦à¦ à¦াতা ঠশিà¦্ষা à¦à¦ªà¦¬ৃত্তির সুবিধা পাà¦à§ার যোà¦্য বলে বিবেà¦িত হবেন। 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> সমাà¦à¦¸েবা ঠধিদপ্তরের à¦à¦à¦¤াৠপ্রধান যে ৬à¦ি সামাà¦িঠà¦াতা:</h3> 10507<ul class='allowance-list'> 10508<li><i class='fa-solid fa-square-check'></i> à§§. বিধবা ঠস্বামী নিà¦ৃহীতা à¦াতা</li> 10509<li><i class='fa-solid fa-square-check'></i> ২. প্রতিবন্ধী à¦াতা</li> 10510<li><i class='fa-solid fa-square-check'></i> à§©. ঠনà¦্রসর সমন্বিত বিশেষ à¦াতা</li> 10511<li><i class='fa-solid fa-square-check'></i> ৪. ঠনà¦্রসর সমন্বিত শিà¦্ষা à¦à¦ªà¦¬ৃত্তি</li> 10512<li><i class='fa-solid fa-square-check'></i> à§«. প্রতিবন্ধী শিà¦্ষার্থীদের à¦à¦¨্য শিà¦্ষা à¦à¦ªà¦¬ৃত্তি</li> 10513<li><i class='fa-solid fa-square-check'></i> ৬. বà§à¦¸্ঠà¦াতা</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 à¦াতার à¦à¦¬েদন ফরম ডাà¦à¦¨à¦²োড ঠপ্রিন্ঠবুà¦à¦¤ে সমস্যা হলে <a href='https://youtu.be/1UF1lpYxuCE' style='color: #059669; text-decoration: none;' target='_blank'>à¦à¦ানে à¦্লিঠà¦à¦°ে à¦িডিঠদেà¦ুন!</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;'>×</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>à¦োà¦à¦¸à¦¨্ধান - <span>à¦োà¦ার তালিà¦া ঠনুসন্ধান!</span></h1> 10627<p>ঠফিসিয়াল à¦োà¦ার লিস্ঠপিডিà¦à¦« à¦à¦ªà¦²োড à¦à¦°ে à¦োà¦ার তথ্য à¦ুঁà¦ুন à¦à¦¬ং à¦à¦ªি à¦à¦°ুন!</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'>দুঃà¦ের বিষয় à¦à¦®াদের à¦à¦ের হোয়াà¦à¦¸à¦ ্যাপ à¦্যানেল à¦ি ব্যান হয়ে à¦িয়েà¦ে!</p> 10673<p class='idp-notice-hl-text'>নতুন সব à¦à¦ªà¦¡েঠপেতে হোয়াà¦à¦¸à¦ ্যাপ à¦্যানেলà¦ি ফলো à¦à¦°ে রাà¦ুন।</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> à¦্যানেল ফলো à¦à¦°ুন! 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; } /* à¦à¦¨্ডারলাà¦à¦¨ রিমুঠà¦à¦°া হà§েà¦ে */ 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; } /* মোবাà¦à¦²ে à¦à¦ªà¦°-নিà¦ে সেà¦ে যাবে */ 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()'>×</span> 11008<div class='cp-box' style='border-radius: 20px; padding: 25px;'> 11009<div class='vs-container' style='font-family: 'SolaimanLipi', 'Inter', 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> à¦োà¦ার স্থানান্তর ফরম-à§§à§© à¦েনারেঠ11013 </h2> 11014<p class='sub' style='margin-bottom:20px; font-size:14px; color:#64748b; text-align: center;'> 11015 বাম পাশে তথ্য পূরণ à¦à¦°ুন — ডানে লাà¦à¦ ফরম-à§§à§© দেà¦ুন à¦à¦¬ং নিà¦ে PDF ডাà¦à¦¨à¦²োড ঠথবা প্রিন্ঠà¦à¦°ুন। 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> à§§. প্রাপঠ(নির্বাà¦à¦¨ ঠফিস)</div> 11023<div class='q-grid-2'> 11024<div class='f13-field-item'> 11025<label>à¦à¦ªà¦েলা/থানা (নির্বাà¦à¦¨ ঠফিস)</label> 11026<input id='f13RecThana' oninput='updateForm13Preview()' placeholder='à¦à¦¦à¦¾: হà§à¦®à¦¨à¦¾' type='text'/> 11027</div> 11028<div class='f13-field-item'> 11029<label>à¦েলা (নির্বাà¦à¦¨ ঠফিস)</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> ২. à¦à¦¬েদনà¦ারীর তথ্য</div> 11035<div class='f13-field-item'> 11036<label>à¦à¦¬েদনà¦ারীর নাম (বাংলা)</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>à¦াতীয় পরিà¦à¦¯়পত্র (NID) নম্বর</label> 11042<input id='f13Nid' oninput='updateForm13Preview()' placeholder='১ৠবা ১০ ডিà¦à¦¿à¦à§à¦° à¦à¦¨à¦à¦à¦¡à¦¿ দিন' type='text'/> 11043</div> 11044<div class='f13-field-item'> 11045<label>à¦à¦¨্ম তারিঠ(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> à§©. বর্তমান তালিà¦াà¦ুà¦্তি</div> 11051<div class='q-grid-3'> 11052<div class='f13-field-item'> 11053<label>à¦োà¦ার নম্বর</label> 11054<input id='f13VoterNo' oninput='updateForm13Preview()' placeholder='à¦à§à¦à¦¾à¦° নমà§à¦¬à¦°' type='text'/> 11055</div> 11056<div class='f13-field-item'> 11057<label>à¦োà¦ার à¦à¦²াà¦ার নাম</label>
11058<input id='f13VoterArea' oninput='updateForm13Preview()' placeholder='à¦à¦²à¦¾à¦à¦¾à¦° নাম' type='text'/> 11059</div> 11060<div class='f13-field-item'> 11061<label>à¦োà¦ার à¦à¦²াà¦ার নম্বর</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>à¦à¦ªà¦েলা/থানা</label> 11068<input id='f13VoterThana' oninput='updateForm13Preview()' placeholder='à¦à¦ªà¦à§à¦²à¦¾' type='text'/> 11069</div> 11070<div class='f13-field-item'> 11071<label>à¦েলা</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>à¦্রাম/রাস্তার নাম ঠনম্বর</label> 11078<input id='f13VoterVillage' oninput='updateForm13Preview()' placeholder='à¦à§à¦°à¦¾à¦®/রাসà§à¦¤à¦¾' type='text'/> 11079</div> 11080<div class='f13-field-item'> 11081<label>বাসা/হোল্ডিং নম্বর</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> ৪. যে à¦à¦²াà¦ায় স্থানান্তর হà¦à¦¤ে à¦à¦্à¦ুà¦</div> 11087<div class='q-grid-2'> 11088<div class='f13-field-item'> 11089<label>à¦েলা (নতুন)</label> 11090<input id='f13NewZila' oninput='updateForm13Preview()' placeholder='নতà§à¦¨ à¦à§à¦²à¦¾' type='text'/> 11091</div> 11092<div class='f13-field-item'> 11093<label>à¦à¦ªà¦েলা/থানা (নতুন)</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>সিà¦ি à¦à¦°্পোরেশন/পৌরসà¦া/à¦à¦à¦¨িয়ন/à¦্যান্à¦à¦¨à¦®েন্à¦</label> 11100<input id='f13NewUnion' oninput='updateForm13Preview()' placeholder='সিà¦à¦¿ à¦à¦°à§à¦ªà§à¦°à§à¦¶à¦¨/পà§à¦°à¦¸à¦à¦¾/à¦à¦à¦¨à¦¿à¦¯à¦¼à¦¨/à¦à§à¦¯à¦¾à¦¨à§à¦à¦¨à¦®à§à¦¨à§à¦' type='text'/> 11101</div> 11102<div class='f13-field-item'> 11103<label>à¦à¦¯়ার্ড নম্বর</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>à¦োà¦ার à¦à¦²াà¦ার নাম (নতুন)</label>
11110<input id='f13NewArea' oninput='updateForm13Preview()' placeholder='নতà§à¦¨ à¦à¦²à¦¾à¦à¦¾à¦° নাম' type='text'/> 11111</div> 11112<div class='f13-field-item'> 11113<label>à¦োà¦ার à¦à¦²াà¦ার নম্বর (নতুন)</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>à¦্রাম/রাস্তার নাম ঠনম্বর (নতুন)</label> 11120<input id='f13NewVillage' oninput='updateForm13Preview()' placeholder='নতà§à¦¨ à¦à§à¦°à¦¾à¦®/রাসà§à¦¤à¦¾' type='text'/> 11121</div> 11122<div class='f13-field-item'> 11123<label>বাসা/হোল্ডিং নম্বর (নতুন)</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>à¦েলিফোন/মোবাà¦à¦² ফোন নম্বর</label> 11130<input id='f13NewPhone' oninput='updateForm13Preview()' placeholder='মà§à¦¬à¦¾à¦à¦² নমà§à¦¬à¦°' type='text'/> 11131</div> 11132<div class='f13-field-item'> 11133<label>ডাà¦à¦à¦°</label> 11134<input id='f13NewPost' oninput='updateForm13Preview()' placeholder='ডাà¦à¦à¦°' type='text'/> 11135</div> 11136<div class='f13-field-item'> 11137<label>পোস্ঠà¦োড (৪ ডিà¦িà¦)</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> à§«. ঠবস্থানà¦াল ঠস্থানান্তরের à¦ারণ</div> 11143<div class='f13-field-item'> 11144<label>à§« নম্বর à¦্রমিà¦ে বর্ণিত ঠিà¦ানায় যে সময় হà¦à¦¤ে ঠবস্থান à¦à¦°িতেà¦েন</label> 11145<input id='f13StaySince' oninput='updateForm13Preview()' placeholder='à¦à¦¦à¦¾: à¦à¦¾à¦¨à§à¦¯à¦¼à¦¾à¦°à¦¿ ২০২৩ হà¦à¦¤à§' type='text'/> 11146</div> 11147<div class='f13-field-item' style='margin-bottom: 25px;'> 11148<label>স্থানান্তরের à¦ারণ</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> ৬. সনাà¦্তà¦ারীর তথ্য</div> 11153<div class='f13-field-item'> 11154<label>সনাà¦্তà¦ারীর নাম</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>সনাà¦্তà¦ারীর à¦াতীয় পরিà¦à¦¯়পত্র নম্বর</label> 11160<input id='f13WitnessNid' oninput='updateForm13Preview()' placeholder='à¦à¦¨à¦à¦à¦¡à¦¿ নমà§à¦¬à¦°' type='text'/> 11161</div> 11162<div class='f13-field-item'> 11163<label>সনাà¦্তà¦ারীর ঠিà¦ানা</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'>[বিধি ২৬(à§) দ্রষ্à¦à¦¬্য]</div> 11174<div class='paper-h3-title'>à¦à¦ à¦োà¦ার à¦à¦²াà¦া হà¦à¦¤ে ঠন্য à¦োà¦ার à¦à¦²াà¦াà§ à¦োà¦ার স্থানান্তরের à¦à¦¬েদন</div> 11175<div style='font-size: 11px; line-height: 1.6;'> 11176<strong>প্রাপà¦ঃ</strong><br/> 11177<div style='padding-left: 30px; margin-bottom: 15px;'> 11178 à¦à¦ªà¦েলা/থানা নির্বাà¦à¦¨ ঠফিসার<br/> 11179 à¦à¦ªà¦েলা/থানা: <span class='paper-dot-val' id='p-rec-thana'>
11179...............</span><br/> 11180 à¦েলা: <span class='paper-dot-val' id='p-rec-zila'>...............</span> 11181</div> 11182<div style='margin-bottom: 8px;'>à§§। à¦à¦¬েদনà¦ারীর নামঃ <span class='paper-dot-val' id='p-name' style='width: 70%; display: inline-block;'>...............</span></div> 11183<div style='margin-bottom: 3px;'>২। à¦াতীয় পরিà¦à¦¯়পত্র নম্বর (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;'>(সাথে à¦াতীয় পরিà¦à¦¯়পত্রের ফà¦োà¦à¦ªি সংযুà¦্ত à¦à¦°িতে হà¦à¦¬ে)</div> 11185<div style='margin-bottom: 12px;'>à§©। à¦à¦¨্ম তারিà¦ঃ <span class='paper-dot-val' id='p-dob' style='width: 70%; display: inline-block;'>...............</span></div> 11186<div class='paper-sec-title'>৪। বর্তমান তালিà¦াà¦ুà¦্তি সংà¦্রান্ত তথ্যাদি-</div> 11187<div style='padding-left: 15px; line-height: 1.7;'> 11188 à¦োà¦ার নম্বরঃ <span class='paper-dot-val' id='p-voter-no'>...................................................</span><br/> 11189 à¦োà¦ার à¦à¦²াà¦ার নামঃ <span class='paper-dot-val' id='p-voter-area'>..........................................</span>, à¦োà¦ার à¦à¦²াà¦ার নম্বরঃ <span class='paper-dot-val' id='p-voter-area-no'>............</span><br/> 11190 à¦à¦ªà¦েলা/থানাঃ <span class='paper-dot-val' id='p-voter-thana'>.....................</span>, à¦েলাঃ <span class='paper-dot-val' id='p-voter-zila'>.....................</span><br/> 11191 à¦্রাম/রাস্তার নাম ঠনম্বরঃ <span class='paper-dot-val' id='p-voter-village'>................................................................................</span><br/> 11192 বাসা/হোল্ডিং নম্বরঃ <span class='paper-dot-val' id='p-voter-holding'>...................................................</span> 11193</div> 11194<div class='paper-sec-title'>à§«। যে à¦à¦²াà¦ায় স্থানান্তর হà¦à¦¤ে à¦à¦্à¦ুà¦-</div> 11195<div style='padding-left: 15px; line-height: 1.7;'> 11196 à¦েলাঃ <span class='paper-dot-val' id='p-new-zila'>.....................</span>, à¦à¦ªà¦েলা/থানাঃ <span class='paper-dot-val' id='p-new-thana'>.....................</span><br/> 11197 সিà¦ি à¦à¦°্পোরেশন/পৌরসà¦া/à¦à¦à¦¨িয়ন/à¦্যান্à¦à¦¨à¦®েন্ঠবোর্ডঃ <span class='paper-dot-val' id='p-new-union'>..........................................</span>, à¦à¦¯়ার্ড নম্বরঃ <span class='paper-dot-val' id='p-new-ward'>............</span><br/> 11198 নতুন à¦োà¦ার à¦à¦²াà¦ার নামঃ <span class='paper-dot-val' id='p-new-area'>...................................................</span>, à¦à¦²াà¦া নম্বরঃ <span class='paper-dot-val' id='p-new-area-no'>............</span><br/> 11199 à¦্রাম/রাস্তার নাম ঠনম্বরঃ <span class='paper-dot-val' id='p-new-village'>................................................................................</sp
11199an><br/> 11200 বাসা/হোল্ডিং নম্বরঃ <span class='paper-dot-val' id='p-new-holding'>.....................</span>, à¦েলিফোন/মোবাà¦à¦² ফোন নম্বরঃ <span class='paper-dot-val' id='p-new-phone'>.....................</span><br/> 11201 ডাà¦à¦à¦°ঃ <span class='paper-dot-val' id='p-new-post'>.....................</span>, পোস্ঠà¦োডঃ 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;'>৬। à§« নম্বর à¦্রমিà¦ে বর্ণিত ঠিà¦ানায় যে সময় হà¦à¦¤ে ঠবস্থান à¦à¦°িতেà¦েনঃ</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;'>à§। স্থানান্তরের à¦ারণঃ</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;'>à§®। à§« নম্বর à¦্রমিà¦ে বর্ণিত ঠিà¦ানায় ঠবস্থানের সমর্থনে নিম্নোà¦্ত দলিলাদি সংযুà¦্ত à¦à¦°িতে হà¦à¦¬েঃ</div> 11216<div style='padding-left: 15px; color: #334155;'> 11217 (à¦) প্রথম শ্রেণীর à¦à¦°্মà¦à¦°্তা / à¦্যান্à¦à¦¨à¦®েন্ঠবোর্ডের à¦à¦্সিà¦িà¦à¦িঠঠফিসার / সিà¦ি à¦à¦°্পোরেশন/পৌরসà¦ার মেয়র / à¦à¦¯়ার্ড à¦াà¦à¦¨্সিলর/à¦à¦à¦¨িয়ন পরিষদ à¦েয়ারম্যান à¦à¦°্তৃঠপ্রদত্ত প্রত্যয়ন পত্র।<br/> 11218 (à¦) à¦à¦à¦িলিà¦ি বিলের ঠনুলিপি (যদি থাà¦ে)<br/> 11219 (à¦) বাড়ী à¦াড়া রশিদ/à¦ৌà¦িদারী à¦à¦° রশিদ/পৌরà¦à¦° রশিদ/ঠন্যান্য 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;'>à¦à¦¬েদনà¦ারীর স্বাà¦্ষর বা à¦িপসহি</div> 11226</div> 11227</div> 11228<!-- Witness Box --> 11229<div style='text-align: left; margin-bottom: 30px; line-height: 1.8;'> 11230 à¦à¦¬েদনà¦ারীà¦ে সনাà¦্তà¦ারীর স্বাà¦্ষরঃ ...................................................<br/> 11231<div style='padding-left: 30px;'> 11232 নামঃ <span class='paper-dot-val' id='p-witness-name'>
11232...................................................</span><br/> 11233 à¦াতীয় পরিà¦à¦¯়পত্র নম্বরঃ <span class='paper-dot-val' id='p-witness-nid'>...................................................</span><br/> 11234 ঠিà¦ানাঃ <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;'>[à¦েবলমাত্র ঠফিসে ব্যবহারের à¦à¦¨্য]</div> 11240<p style='line-height: 1.6; margin-bottom: 15px; font-size: 10.5px;'> 11241 দাà¦িলà¦ৃত দলিলাদি পরীà¦্ষান্তে ................................................... à¦োà¦ার à¦à¦²াà¦ার à¦à¦¨্য প্রণীত à¦োà¦ার তালিà¦া হà¦à¦¤ে নাম à¦à¦°্তন à¦à¦¬ং ................................................... à¦োà¦ার à¦à¦²াà¦াৠনাম ঠন্তর্à¦ুà¦্ত à¦à¦°া হà¦à¦²। 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;'>à¦à¦ªà¦েলা/থানা নির্বাà¦à¦¨ à¦à¦°্মà¦à¦°্তা</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;'>প্রাপ্তিস্বীà¦ার পত্র</div> 11254<p style='line-height: 1.6; margin-bottom: 15px;'> 11255 à¦à¦¨াব/বেà¦à¦® ................................................... à¦à¦° à¦à¦¬েদন ফরম à¦ৃহীত হà¦à¦²।<br/> 11256 à¦à¦¬েদন ফরম নম্বর ................................................... 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;'>à¦্রহণà¦ারীর স্বাà¦্ষর</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'>পিডিà¦à¦« ডাà¦à¦¨à¦²োড ঠথবা প্রিন্ঠà¦à¦°ুন!</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: 'SolaimanLipi', 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;'>[বিধি ২৬(à§) দ্রষ্à¦à¦¬্য]</p> 11295<!-- à¦à¦¨্ডারলাà¦à¦¨ রিমুঠà¦à¦°া হà§েà¦ে
11295 (NEW UPDATE) --> 11296<h3 style='font-size: 15px; font-weight: bold; margin: 0;'>à¦à¦ à¦োà¦ার à¦à¦²াà¦া হà¦à¦¤ে ঠন্য à¦োà¦ার à¦à¦²াà¦াà§ à¦োà¦ার স্থানান্তরের à¦à¦¬েদন</h3> 11297</div> 11298<div style='font-size: 13.5px; line-height: 1.7; text-align: left;'> 11299<strong>প্রাপà¦ঃ</strong><br/> 11300<div style='padding-left: 35px; margin-bottom: 20px;'> 11301 à¦à¦ªà¦েলা/থানা নির্বাà¦à¦¨ ঠফিসার<br/> 11302 à¦à¦ªà¦েলা/থানা: <span class='paper-dot-val' id='pdf-p-rec-thana' style='font-weight: bold;'>...............</span><br/> 11303 à¦েলা: <span class='paper-dot-val' id='pdf-p-rec-zila' style='font-weight: bold;'>...............</span> 11304</div> 11305<div style='margin-bottom: 10px;'>à§§। à¦à¦¬েদনà¦ারীর নামঃ <span class='paper-dot-val' id='pdf-p-name' style='font-weight: bold;'>...................................................</span></div> 11306<div style='margin-bottom: 3px;'>২। à¦াতীয় পরিà¦à¦¯়পত্র নম্বর (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;'>(সাথে à¦াতীয় পরিà¦à¦¯়পত্রের ফà¦োà¦à¦ªি সংযুà¦্ত à¦à¦°িতে হà¦à¦¬ে)</div> 11308<div style='margin-bottom: 15px;'>à§©। à¦à¦¨্ম তারিà¦ঃ <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;'>৪। বর্তমান তালিà¦াà¦ুà¦্তি সংà¦্রান্ত তথ্যাদি-</div> 11310<div style='padding-left: 20px; line-height: 1.8;'> 11311 à¦োà¦ার নম্বরঃ <span class='paper-dot-val' id='pdf-p-voter-no'>...................................................</span><br/> 11312 à¦োà¦ার à¦à¦²াà¦ার নামঃ <span class='paper-dot-val' id='pdf-p-voter-area'>..........................................</span>, à¦োà¦ার à¦à¦²াà¦ার নম্বরঃ <span class='paper-dot-val' id='pdf-p-voter-area-no'>............</span><br/> 11313 à¦à¦ªà¦েলা/থানাঃ <span class='paper-dot-val' id='pdf-p-voter-thana'>.....................</span>, à¦েলাঃ <span class='paper-dot-val' id='pdf-p-voter-zila'>.....................</span><br/> 11314 à¦্রাম/রাস্তার নাম ঠনম্বরঃ <span class='paper-dot-val' id='pdf-p-voter-village'>................................................................................</span><br/> 11315 বাসা/হোল্ডিং নম্বরঃ <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;'>à§«। যে à¦à¦²াà¦ায় স্থানান্তর হà¦à¦¤ে à¦à¦্à¦ুà¦-</div> 11318<div style='padding-left: 20px; line-height: 1.8;'> 11319 à¦েলাঃ <span class='paper-dot-val' id='pdf-p-new-zila'>.....................</span>, à¦à¦ªà¦েলা/থানাঃ <span class='paper-dot-val' id='pdf-p-new-thana'>
11319.....................</span><br/> 11320 সিà¦ি à¦à¦°্পোরেশন/পৌরসà¦া/à¦à¦à¦¨িয়ন/à¦্যান্à¦à¦¨à¦®েন্ঠবোর্ডঃ <span class='paper-dot-val' id='pdf-p-new-union'>..........................................</span>, à¦à¦¯়ার্ড নম্বরঃ <span class='paper-dot-val' id='pdf-p-new-ward'>............</span><br/> 11321 নতুন à¦োà¦ার à¦à¦²াà¦ার নামঃ <span class='paper-dot-val' id='pdf-p-new-area'>...................................................</span>, à¦à¦²াà¦া নম্বরঃ <span class='paper-dot-val' id='pdf-p-new-area-no'>............</span><br/> 11322 à¦্রাম/রাস্তার নাম ঠনম্বরঃ <span class='paper-dot-val' id='pdf-p-new-village'>................................................................................</span><br/> 11323 বাসা/হোল্ডিং নম্বরঃ <span class='paper-dot-val' id='pdf-p-new-holding'>.....................</span>, à¦েলিফোন/মোবাà¦à¦² ফোন নম্বরঃ <span class='paper-dot-val' id='pdf-p-new-phone'>.....................</span><br/> 11324 ডাà¦à¦à¦°ঃ <span class='paper-dot-val' id='pdf-p-new-post'>.....................</span>, পোস্ঠà¦োডঃ 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;'>৬। à§« নম্বর à¦্রমিà¦ে বর্ণিত ঠিà¦ানায় যে সময় হà¦à¦¤ে ঠবস্থান à¦à¦°িতেà¦েনঃ</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;'>à§। স্থানান্তরের à¦ারণঃ</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: 'SolaimanLipi', 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;'>à§®। à§« নম্বর à¦্রমিà¦ে বর্ণিত ঠিà¦ানায় ঠবস্থানের সমর্থনে নিম্নোà¦্ত দলিলাদি সংযুà¦্ত à¦à¦°িতে হà¦à¦¬েঃ</div> 11339<div style='padding-left: 20px; color: #334155; line-height: 1.8; margin-bottom: 25px;'> 11340 (à¦) প্রথম শ্রেণীর à¦à¦°্মà¦à¦°্তা / à¦্যান্à¦à¦¨à¦®েন্ঠবোর্ডের à¦à¦্সিà¦িà¦à¦িঠঠফিসার / সিà¦ি à¦à¦°্পোরেশন/পৌরসà¦ার মেয়র / à¦à¦¯়ার্ড à¦াà¦à¦¨্সিলর/à¦à¦à¦¨িয়ন পরিষদ à¦েয়ারম্যান à¦à¦°্তৃঠপ্রদত্ত প্রত্যয়ন পত্র।<br/> 11341 (à¦) à¦à¦à¦িলিà¦ি বিলের ঠনুলিপি (যদি থাà¦ে)<br/> 11342 (à¦) বাড়ী à¦াড়া রশিদ/à¦ৌà¦িদারী à¦à¦° রশিদ/পৌরà¦à¦° রশিদ/ঠন্যান্য 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;'>à¦à¦¬েদনà¦ারীর স্বাà¦্ষর বা à¦িপসহি</div> 11349</div> 11350</div> 11351<!-- Witness Box --> 11352<div style='text-align: left; margin-bottom: 35px; line-height: 1.8;'> 11353 à¦à¦¬েদনà¦ারীà¦ে সনাà¦্তà¦ারীর স্বাà¦্ষরঃ ...................................................<br/> 11354<div style='padding-left: 35px;'> 11355 নামঃ <span class='paper-dot-val' id='pdf-p-witness-name'>
11355...................................................</span><br/> 11356 à¦াতীয় পরিà¦à¦¯়পত্র নম্বরঃ <span class='paper-dot-val' id='pdf-p-witness-nid'>...................................................</span><br/> 11357 ঠিà¦ানাঃ <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;'>[à¦েবলমাত্র ঠফিসে ব্যবহারের à¦à¦¨্য]</div> 11363<p style='line-height: 1.8; margin-bottom: 20px; font-size: 12px;'> 11364 দাà¦িলà¦ৃত দলিলাদি পরীà¦্ষান্তে ................................................... à¦োà¦ার à¦à¦²াà¦ার à¦à¦¨্য প্রণীত à¦োà¦ার তালিà¦া হà¦à¦¤ে নাম à¦à¦°্তন à¦à¦¬ং ................................................... à¦োà¦ার à¦à¦²াà¦াৠনাম ঠন্তর্à¦ুà¦্ত à¦à¦°া হà¦à¦²। 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;'>à¦à¦ªà¦েলা/থানা নির্বাà¦à¦¨ à¦à¦°্মà¦à¦°্তা</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;'>প্রাপ্তিস্বীà¦ার পত্র</div> 11377<p style='line-height: 1.8; margin-bottom: 20px;'> 11378 à¦à¦¨াব/বেà¦à¦® ................................................... à¦à¦° à¦à¦¬েদন ফরম à¦ৃহীত হà¦à¦²।<br/> 11379 à¦à¦¬েদন ফরম নম্বর ................................................... 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;'>à¦্রহণà¦ারীর স্বাà¦্ষর</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; /* পেঠ১ ঠ২ à¦à¦° মাà¦ে ফাঁà¦া রাà¦à¦¬ে */ 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()'>×</span> 11602<div class='cp-box' style='border-radius: 20px; padding: 25px;'> 11603<div class='vs-container' style='font-family: 'SolaimanLipi', 'Inter', 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> à¦à¦¨à¦à¦à¦¡ি সংশোধন ফরম-২ à¦েনারেঠ11607 </h2> 11608<p class='sub' style='margin-bottom:20px; font-size:14px; color:#64748b; text-align: center;'> 11609 বাম পাশে তথ্য পূরণ à¦à¦°ুন — ডানে লাà¦à¦ ফরম-২ দেà¦ুন à¦à¦¬ং নিà¦ে PDF ডাà¦à¦¨à¦²োড ঠথবা প্রিন্ঠà¦à¦°ুন। 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> à§§. à¦াতীয় পরিà¦à¦¯়পত্রধারীর তথ্য</div> 11617<div class='q-grid-2'> 11618<div class='f13-field-item'> 11619<label>à¦াতীয় পরিà¦à¦¯়পত্রধারীর নাম</label> 11620<input id='f2HolderName' oninput='updateForm2Preview()' placeholder='à¦à¦¬à§à¦¦à¦¨à¦à¦¾à¦°à§à¦° নাম লিà¦à§à¦¨' type='text'/> 11621</div> 11622<div class='f13-field-item'> 11623<label>à¦াতীয় পরিà¦িতি নম্বর (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> ২. à¦à¦à¦¨ানুঠঠà¦িà¦াবà¦ের তথ্য (প্রযোà¦্য à¦্ষেত্রে)</div> 11629<p style='font-size: 11.5px; color: #4b5563; margin-top: -10px; margin-bottom: 12px; font-weight: bold; text-align: left;'>*à¦à¦ ারো বà§à¦¸à¦°ের à¦à¦® বয়স্ঠবা à¦à¦¦ালত à¦à¦°্তৃঠঠপ্রà¦ৃতিস্থ à¦োষিত ব্যà¦্তির à¦্ষেত্রেঠà¦েবল পূরণ à¦à¦°ুন।</p> 11630<div class='q-grid-2'> 11631<div class='f13-field-item'> 11632<label>à¦à¦à¦¨ানুঠঠà¦িà¦াবà¦ের নাম</label> 11633<input id='f2GuardName' oninput='updateForm2Preview()' placeholder='ঠà¦à¦¿à¦à¦¾à¦¬à¦à§à¦° নাম লিà¦à§à¦¨' type='text'/> 11634</div> 11635<div class='f13-field-item'> 11636<label>ঠà¦িà¦াবà¦ের à¦াতীয় পরিà¦িতি নম্বর (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> à§©. যে তথ্য সংশোধন à¦à¦°িতে হà¦à¦¬ে</div> 11642<p style='font-size: 11.5px; color: #4b5563; margin-top: -10px; margin-bottom: 15px; font-weight: bold; text-align: left;'>*যে বিষয়à¦ুলো সংশোধন à¦à¦°à¦¤ে à¦ান শুধু সেà¦ুলো পূরণ à¦à¦°ুন। বাà¦ি à¦à¦°à¦ুলো ফাà¦া রাà¦à¦¬েন।</p> 11643<!-- (à¦) নাম (বাংলা) --> 11644<div class='f2-correction-block'> 11645<div class='f2-block-title'><i class='fa-solid fa-signature'></i> (à¦) নাম (বাংলা)</div> 11646<div class='f2-stacked-inputs'> 11647<div class='f2-input-item'> 11648<label>বর্তমানে à¦াতীয় পরিà¦à¦¯়পত্রে যা à¦à¦ে</label> 11649<input id='f2CurNameBn' oninput='updateForm2Preview()' placeholder='বরà§à¦¤à¦®à¦¾à¦¨à§ যা à¦à¦à§ তা লিà¦à§à¦¨' type='text'/> 11650</div> 11651<div class='f2-input-item'> 11652<label>à¦াহিত সংশোধিত তথ্য</label> 11653<input id='f2ChgNameBn' oninput='updateForm2Preview()' placeholder='নতà§à¦¨ à¦à¦¾à¦¹à¦¿à¦¤ সà¦à¦¶à§à¦§à¦¿à¦¤ তথà§à¦¯ লিà¦à§à¦¨' type='text'/> 11654</div> 11655<div class='f2-input-item'> 11656<label>সংযুà¦্ত দলিলাদি/মন্তব্য</label> 11657<input id='f2DocNameBn' oninput='updateForm2Preview()' placeholder='সà¦à¦¯à§à¦à§à¦¤ দলিলাদি বা মনà§à¦¤à¦¬à§à¦¯ লিà¦à§à¦¨' type='text'/> 11658</div> 11659</div> 11660</div> 11661<!-- (à¦) নাম (à¦ংরেà¦ি) --> 11662<div class='f2-correction-block'> 11663<div class='f2-block-title'><i class='fa-solid fa-font'></i> (à¦) নাম (à¦ংরেà¦ি)</div> 11664<div class='f2-stacked-inputs'> 11665<div class='f2-input-item'> 11666<label>বর্তমানে à¦াতীয় পরিà¦à¦¯়পত্রে যা à¦à¦ে</label>
11667<input id='f2CurNameEn' oninput='updateForm2Preview()' placeholder='বরà§à¦¤à¦®à¦¾à¦¨à§ যা à¦à¦à§ তা লিà¦à§à¦¨' type='text'/> 11668</div> 11669<div class='f2-input-item'> 11670<label>à¦াহিত সংশোধিত তথ্য</label> 11671<input id='f2ChgNameEn' oninput='updateForm2Preview()' placeholder='নতà§à¦¨ à¦à¦¾à¦¹à¦¿à¦¤ সà¦à¦¶à§à¦§à¦¿à¦¤ তথà§à¦¯ লিà¦à§à¦¨' type='text'/> 11672</div> 11673<div class='f2-input-item'> 11674<label>সংযুà¦্ত দলিলাদি/মন্তব্য</label> 11675<input id='f2DocNameEn' oninput='updateForm2Preview()' placeholder='সà¦à¦¯à§à¦à§à¦¤ দলিলাদি বা মনà§à¦¤à¦¬à§à¦¯ লিà¦à§à¦¨' type='text'/> 11676</div> 11677</div> 11678</div> 11679<!-- (à¦) পিতার নাম --> 11680<div class='f2-correction-block'> 11681<div class='f2-block-title'><i class='fa-solid fa-user-friends'></i> (à¦) পিতার নাম</div> 11682<div class='f2-stacked-inputs'> 11683<div class='f2-input-item'> 11684<label>বর্তমানে à¦াতীয় পরিà¦à¦¯়পত্রে যা à¦à¦ে</label> 11685<input id='f2CurFather' oninput='updateForm2Preview()' placeholder='বরà§à¦¤à¦®à¦¾à¦¨à§ যা à¦à¦à§ তা লিà¦à§à¦¨' type='text'/> 11686</div> 11687<div class='f2-input-item'> 11688<label>à¦াহিত সংশোধিত তথ্য</label> 11689<input id='f2ChgFather' oninput='updateForm2Preview()' placeholder='নতà§à¦¨ à¦à¦¾à¦¹à¦¿à¦¤ সà¦à¦¶à§à¦§à¦¿à¦¤ তথà§à¦¯ লিà¦à§à¦¨' type='text'/> 11690</div> 11691<div class='f2-input-item'> 11692<label>সংযুà¦্ত দলিলাদি/মন্তব্য</label> 11693<input id='f2DocFather' oninput='updateForm2Preview()' placeholder='সà¦à¦¯à§à¦à§à¦¤ দলিলাদি বা মনà§à¦¤à¦¬à§à¦¯ লিà¦à§à¦¨' type='text'/> 11694</div> 11695</div> 11696</div> 11697<!-- (à¦) মাতার নাম --> 11698<div class='f2-correction-block'> 11699<div class='f2-block-title'><i class='fa-solid fa-user-friends'></i> (à¦) মাতার নাম</div> 11700<div class='f2-stacked-inputs'> 11701<div class='f2-input-item'> 11702<label>বর্তমানে à¦াতীয় পরিà¦à¦¯়পত্রে যা à¦à¦ে</label> 11703<input id='f2CurMother' oninput='updateForm2Preview()' placeholder='বরà§à¦¤à¦®à¦¾à¦¨à§ যা à¦à¦à§ তা লিà¦à§à¦¨' type='text'/> 11704</div> 11705<div class='f2-input-item'> 11706<label>à¦াহিত সংশোধিত তথ্য</label> 11707<input id='f2ChgMother' oninput='updateForm2Preview()' placeholder='নতà§à¦¨ à¦à¦¾à¦¹à¦¿à¦¤ সà¦à¦¶à§à¦§à¦¿à¦¤ তথà§à¦¯ লিà¦à§à¦¨' type='text'/> 11708</div> 11709<div class='f2-input-item'> 11710<label>সংযুà¦্ত দলিলাদি/মন্তব্য</label> 11711<input id='f2DocMother' oninput='updateForm2Preview()' placeholder='সà¦à¦¯à§à¦à§à¦¤ দলিলাদি বা মনà§à¦¤à¦¬à§à¦¯ লিà¦à§à¦¨' type='text'/> 11712</div> 11713</div> 11714</div> 11715<!-- (à¦) স্বামীর নাম --> 11716<div class='f2-correction-block'> 11717<div class='f2-block-title'><i class='fa-solid fa-user-friends'></i> (à¦) স্বামীর নাম</div> 11718<div class='f2-stacked-inputs'> 11719<div class='f2-input-item'> 11720<label>বর্তমানে à¦াতীয় পরিà¦à¦¯়পত্রে যা à¦à¦ে</label> 11721<input id='f2CurSpouse' oninput='updateForm2Preview()' placeholder='বরà§à¦¤à¦®à¦¾à¦¨à§ যা à¦à¦à§ তা লিà¦à§à¦¨' type='text'/> 11722</div> 11723<div class='f2-input-item'> 11724<label>à¦াহিত সংশোধিত তথ্য</label> 11725<input id='f2ChgSpouse' oninput='updateForm2Preview()' placeholder='নতà§à¦¨ à¦à¦¾à¦¹à¦¿à¦¤ সà¦à¦¶à§à¦§à¦¿à¦¤ তথà§à¦¯ লিà¦à§à¦¨' type='text'/> 11726</div> 11727<div class='f2-input-item'> 11728<label>সংযুà¦্ত দলিলাদি/মন্তব্য</label> 11729<input id='f2DocSpouse' oninput='updateForm2Preview()' placeholder='সà¦à¦¯à§à¦à§à¦¤ দলিলাদি বা মনà§à¦¤à¦¬à§à¦¯ লিà¦à§à¦¨' type='text'/> 11730</div> 11731</div> 11732</div> 11733<!-- (à¦) à¦à¦¨্মতারিঠ--> 11734<div class='f2-correction-block'> 11735<div class='f2-block-title'><i class='fa-solid fa-calendar-alt'></i> (à¦) à¦à¦¨্মতারিà¦</div> 11736<div class='f2-stacked-inputs'> 11737<div class='f2-input-item'> 11738<label>বর্তমানে à¦াতীয় পরিà¦à¦¯়পত্রে যা à¦à¦ে</label> 11739<input id='f2CurDob' oninput='updateForm2Preview()' placeholder='বরà§à¦¤à¦®à¦¾à¦¨à§ যা à¦à¦à§ তা লিà¦à§à¦¨' type='text'/> 11740</div> 11741<div class='f2-input-item'> 11742<label>à¦াহিত সংশোধিত তথ্য</label> 11743<input id='f2ChgDob' oninput='updateForm2Preview()' placeholder='নতà§à¦¨ à¦à¦¾à¦¹à¦¿à¦¤ সà¦à¦¶à§à¦§à¦¿à¦¤ তথà§à¦¯ লিà¦à§à¦¨' type='text'/> 11744</div> 11745<div class='f2-input-item'> 11746<label>সংযুà¦্ত দলিলাদি/মন্তব্য</label> 11747<input id='f2DocDob' oninput='updateForm2Preview()' placeholder='সà¦à¦¯à§à¦à§à¦¤ দলিলাদি বা মনà§à¦¤à¦¬à§à¦¯ লিà¦à§à¦¨' type='text'/> 11748</div> 11749</div> 11750</div> 11751<!-- (à¦) ঠিà¦ানা --> 11752<div class='f2-correction-block'> 11753<div class='f2-block-title'><i class='fa-solid fa-map-marker-alt'></i> (à¦) ঠিà¦ানা</div> 11754<div class='f2-stacked-inputs'> 11755<div class='f2-input-item'> 11756<label>বর্তমানে à¦াতীয় পরিà¦à¦¯়পত্রে যা à¦à¦ে</label>
11757<input id='f2CurAddress' oninput='updateForm2Preview()' placeholder='বরà§à¦¤à¦®à¦¾à¦¨à§ যা à¦à¦à§ তা লিà¦à§à¦¨' type='text'/> 11758</div> 11759<div class='f2-input-item'> 11760<label>à¦াহিত সংশোধিত তথ্য</label> 11761<input id='f2ChgAddress' oninput='updateForm2Preview()' placeholder='নতà§à¦¨ à¦à¦¾à¦¹à¦¿à¦¤ সà¦à¦¶à§à¦§à¦¿à¦¤ তথà§à¦¯ লিà¦à§à¦¨' type='text'/> 11762</div> 11763<div class='f2-input-item'> 11764<label>সংযুà¦্ত দলিলাদি/মন্তব্য</label> 11765<input id='f2DocAddress' oninput='updateForm2Preview()' placeholder='সà¦à¦¯à§à¦à§à¦¤ দলিলাদি বা মনà§à¦¤à¦¬à§à¦¯ লিà¦à§à¦¨' type='text'/> 11766</div> 11767</div> 11768</div> 11769<!-- (à¦) রà¦্তের à¦্রুপ --> 11770<div class='f2-correction-block'> 11771<div class='f2-block-title'><i class='fa-solid fa-droplet'></i> (à¦) রà¦্তের à¦্রুপ</div> 11772<div class='f2-stacked-inputs'> 11773<div class='f2-input-item'> 11774<label>বর্তমানে à¦াতীয় পরিà¦à¦¯়পত্রে যা à¦à¦ে</label> 11775<input id='f2CurBlood' oninput='updateForm2Preview()' placeholder='বরà§à¦¤à¦®à¦¾à¦¨à§ যা à¦à¦à§ তা লিà¦à§à¦¨' type='text'/> 11776</div> 11777<div class='f2-input-item'> 11778<label>à¦াহিত সংশোধিত তথ্য</label> 11779<input id='f2ChgBlood' oninput='updateForm2Preview()' placeholder='নতà§à¦¨ à¦à¦¾à¦¹à¦¿à¦¤ সà¦à¦¶à§à¦§à¦¿à¦¤ তথà§à¦¯ লিà¦à§à¦¨' type='text'/> 11780</div> 11781<div class='f2-input-item'> 11782<label>সংযুà¦্ত দলিলাদি/মন্তব্য</label> 11783<input id='f2DocBlood' oninput='updateForm2Preview()' placeholder='সà¦à¦¯à§à¦à§à¦¤ দলিলাদি বা মনà§à¦¤à¦¬à§à¦¯ লিà¦à§à¦¨' type='text'/> 11784</div> 11785</div> 11786</div> 11787<!-- (à¦) ঠন্যান্য --> 11788<div class='f2-correction-block'> 11789<div class='f2-block-title'><i class='fa-solid fa-ellipsis'></i> (à¦) ঠন্যান্য</div> 11790<div class='f2-stacked-inputs'> 11791<div class='f2-input-item'> 11792<label>বর্তমানে à¦াতীয় পরিà¦à¦¯়পত্রে যা à¦à¦ে</label> 11793<input id='f2CurOther' oninput='updateForm2Preview()' placeholder='বরà§à¦¤à¦®à¦¾à¦¨à§ যা à¦à¦à§ তা লিà¦à§à¦¨' type='text'/> 11794</div> 11795<div class='f2-input-item'> 11796<label>à¦াহিত সংশোধিত তথ্য</label> 11797<input id='f2ChgOther' oninput='updateForm2Preview()' placeholder='নতà§à¦¨ à¦à¦¾à¦¹à¦¿à¦¤ সà¦à¦¶à§à¦§à¦¿à¦¤ তথà§à¦¯ লিà¦à§à¦¨' type='text'/> 11798</div> 11799<div class='f2-input-item'> 11800<label>সংযুà¦্ত দলিলাদি/মন্তব্য</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> ৪. ফি ঠসংযুà¦্ত দলিলাদি</div> 11807<div class='q-grid-2' style='margin-bottom: 15px;'> 11808<div class='f13-field-item'> 11809<label>à¦à¦®াà¦ৃত ফি à¦à¦° পরিমাণ (à¦াà¦া)</label> 11810<input id='f2FeeAmount' oninput='updateForm2Preview()' placeholder='à¦à¦¦à¦¾: ৩৪৫' type='text'/> 11811</div> 11812<div class='f13-field-item'> 11813<label>ফি à¦à¦®া দানের রশিদ নম্বর</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>à¦à¦¬েদনপত্রের সহিত সংযুà¦্ত দলিলাদির বিবরণ</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 à§«. à¦à¦¬েদনà¦ারীর স্বাà¦্ষর ব্লà¦</div> 11823<div class='q-grid-2'> 11824<div class='f13-field-item'> 11825<label>à¦à¦¬েদনà¦ারীর নাম</label> 11826<input id='f2AppName' oninput='updateForm2Preview()' placeholder='নাম লিà¦à§à¦¨' type='text'/> 11827</div> 11828<div class='f13-field-item'> 11829<label>à¦à¦¬েদনà¦ারীর মোবাà¦à¦² নম্বর</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>à¦à¦¬েদনà¦ারীর ঠিà¦ানা</label> 11836<input id='f2AppAddress' oninput='updateForm2Preview()' placeholder='ঠিà¦à¦¾à¦¨à¦¾' type='text'/> 11837</div> 11838<div class='f13-field-item'> 11839<label>à¦à¦¬েদনà¦ারীর à¦-মেà¦à¦² (à¦à¦্à¦িà¦)</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> ৬. à¦à¦à¦¨ানুঠঠà¦িà¦াবà¦ের স্বাà¦্ষর ব্লঠ(প্রযোà¦্য à¦্ষেত্রে)</div> 11845<div class='q-grid-2'> 11846<div class='f2-guard-input-item f13-field-item'> 11847<label>ঠà¦িà¦াবà¦ের নাম</label> 11848<input id='f2GuardSignName' oninput='updateForm2Preview()' placeholder='ঠà¦à¦¿à¦à¦¾à¦¬à¦à§à¦° নাম' type='text'/> 11849</div> 11850<div class='f2-guard-input-item f13-field-item'> 11851<label>ঠà¦িà¦াবà¦ের মোবাà¦à¦² নম্বর</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>ঠà¦িà¦াবà¦ের ঠিà¦ানা</label> 11858<input id='f2GuardSignAddress' oninput='updateForm2Preview()' placeholder='ঠিà¦à¦¾à¦¨à¦¾' type='text'/> 11859</div> 11860<div class='f2-guard-input-item f13-field-item'> 11861<label>ঠà¦িà¦াবà¦ের à¦-মেà¦à¦² (à¦à¦্à¦িà¦)</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'>[প্রবিধান ৪ দ্রষ্à¦à¦¬্য]</div> 11872<div class='paper-h3-title'>à¦াতীয় পরিà¦à¦¯়পত্র বা তথ্য-à¦à¦ªাত্ত সংশোধনের à¦à¦¬েদন</div> 11873<div style='font-size: 9.5px; line-height: 1.5;'> 11874<div style='text-align: right; margin-bottom: 10px;'> 11875 à¦্রমিঠনম্বর : ..................... (ঠফিস à¦à¦°্তৃঠপূরণীয়) 11876 </div> 11877<div class='paper-sec-title' style='margin-top: 5px;'>à§§। à¦াতীয় পরিà¦à¦¯়পত্রধারী-</div> 11878<div style='padding-left: 15px;'> 11879 (à¦) নাম : <span class='paper-dot-val' id='p-holder-name'>...................................................</span><br/> 11880 (à¦) à¦াতীয় পরিà¦িতি নম্বর (NID) : <span class='paper-dot-val' id='p-holder-nid'>
11880...................................................</span> 11881</div> 11882<div class='paper-sec-title'>২। à¦à¦ ারো বà§à¦¸à¦°ের à¦à¦® বয়স্à¦/à¦à¦¦ালত à¦à¦°্তৃঠঠপ্রà¦ৃতিস্থ à¤ोषित à¦াতীয় পরিà¦à¦¯়পত্রধারীর à¦্ষেত্রে, à¦à¦à¦¨ানুঠঠà¦িà¦াবà¦ের -</div> 11883<div style='padding-left: 15px;'> 11884 (à¦) নাম : <span class='paper-dot-val' id='p-guard-name'>...................................................</span><br/> 11885 (à¦) à¦াতীয় পরিà¦িতি নম্বর (NID) : <span class='paper-dot-val' id='p-guard-nid'>...................................................</span> 11886</div> 11887<div class='paper-sec-title'>à§©। à¦াতীয় পরিà¦à¦¯়পত্র বা সংরà¦্ষিত তথ্য-à¦à¦ªাত্তে যে তথ্য সংশোধন à¦à¦°িতে হà¦à¦¬ে (ঠপ্রয়োà¦à¦¨ীয় ঠংশ à¦াà¦িয়া দিন):</div> 11888<table class='f2-preview-table'> 11889<thead> 11890<tr> 11891<th style='width: 25%;'>বিষয়</th> 11892<th style='width: 35%;'>বর্তমানে à¦াতীয় পরিà¦à¦¯়পত্র বা সংরà¦্ষিত তথ্য à¦à¦ªাত্তে বিদ্যমান তথ্য</th> 11893<th style='width: 20%;'>à¦াহিত সংশোধিত তথ্য</th> 11894<th style='width: 20%;'>সংযুà¦্ত দলিলাদি/মন্তব্য</th> 11895</tr> 11896</thead> 11897<tbody> 11898<tr><td>(à¦) নাম (বাংলা)</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>(à¦) নাম (à¦ংরেà¦ি)</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>(à¦) পিতার নাম</td><td id='p-cur-father'></td><td id='p-chg-father'></td><td id='p-doc-father'></td></tr> 11901<tr><td>(à¦) মাতার নাম</td><td id='p-cur-mother'></td><td id='p-chg-mother'></td><td id='p-doc-mother'></td></tr> 11902<tr><td>(à¦) স্বামীর নাম</td><td id='p-cur-spouse'></td><td id='p-chg-spouse'></td><td id='p-doc-spouse'></td></tr> 11903<tr><td>(à¦) à¦à¦¨্মতারিà¦</td><td id='p-cur-dob'></td><td id='p-chg-dob'></td><td id='p-doc-dob'></td></tr> 11904<tr><td>(à¦) ঠিà¦ানা</td><td id='p-cur-address'></td><td id='p-chg-address'></td><td id='p-doc-address'></td></tr> 11905<tr><td>(à¦) রà¦্তের à¦্রুপ</td><td id='p-cur-blood'></td><td id='p-chg-blood'></td><td id='p-doc-blood'></td></tr> 11906<tr><td>(à¦) ঠন্যান্য</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 ৪। à¦à¦®াà¦ৃত ফি à¦à¦° পরিমাণ (à§§à§§ à¦à¦° à¦à¦ª-প্রবিধান (à§§) à¦à¦° à¦্রমিঠনং à§§ বা, প্রযোà¦্য à¦্ষেত্রে, ২ ঠà¦à¦²্লিà¦িত ফি ঠনুসারে): <span class='paper-dot-val' id='p-fee-amount'>.....................</span> à¦াà¦া।<br/> 11911 à§«। প্রযোà¦্য à¦্ষেত্রে ফি à¦à¦®া দানের রশিদ: <span class='paper-dot-val' id='p-fee-receipt'>
11911...................................................</span><br/> 11912 ৬। à¦à¦¬েদনপত্রের সহিত সংযুà¦্ত দলিলাদির বিবরণ: <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>à¦à¦à¦¨ানুঠঠà¦িà¦াবà¦ের স্বাà¦্ষর/à¦িপসহি (প্রযোà¦্য à¦্ষেত্রে)</strong><br/> 11918 নামঃ <span class='paper-dot-val' id='p-g-sign-name'>...............</span><br/> 11919 ঠিà¦ানাঃ <span class='paper-dot-val' id='p-g-sign-address'>...............</span><br/> 11920 মোবাà¦à¦² নম্বরঃ <span class='paper-dot-val' id='p-g-sign-phone'>...............</span><br/> 11921 à¦-মেà¦à¦² (যদি থাà¦ে)ঃ <span class='paper-dot-val' id='p-g-sign-email'>...............</span> 11922</div> 11923<div style='width: 48%; text-align: left;'> 11924<strong>à¦à¦¬েদনà¦ারীর স্বাà¦্ষর/à¦িপসহি</strong><br/> 11925 নামঃ <span class='paper-dot-val' id='p-a-sign-name'>...............</span><br/> 11926 ঠিà¦ানাঃ <span class='paper-dot-val' id='p-a-sign-address'>...............</span><br/> 11927 মোবাà¦à¦² নম্বরঃ <span class='paper-dot-val' id='p-a-sign-phone'>...............</span><br/> 11928 à¦-মেà¦à¦² (যদি থাà¦ে)ঃ <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;'>à¦à¦¬েদনà¦ারীর à¦à¦¨্য নির্দেশাবলী</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 à¦à¦¬েদনà¦ারীà¦ে সনাà¦্তà¦ারীর স্বাà¦্ষরঃ ...................................................<br/> 11943<div style='padding-left: 30px;'> 11944 নামঃ ...................................................<br/> 11945 à¦াতীয় পরিà¦à¦¯়পত্র নম্বরঃ ...................................................<br/> 11946 ঠিà¦ানাঃ ................................................................................ 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;'>[à¦েবলমাত্র ঠফিসে ব্যবহারের à¦à¦¨্য]</div> 11952<p style='line-height: 1.5; margin-bottom: 10px; font-size: 9.5px;'> 11953 দাà¦িলà¦ৃত দলিলাদি পরীà¦্ষান্তে ............................................. à¦à¦¨্য NID সংশোধন ঠনুমোদন à¦à¦°া à¦েল। 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;'>দায়িত্বপ্রাপ্ত à¦à¦°্মà¦à¦°্তার স্বাà¦্ষর</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;'>ঠংশ-ঠ(ফরম-২) প্রাপ্তিস্বীà¦ার রশিদ</div> 11965<p style='line-height: 1.5; font-size: 9.5px;'> 11966 à¦à¦¬েদনà¦ারীর নাম à¦à¦¬ং à¦াতীয় পরিà¦িতি নম্বর : ...................................................<br/> 11967 à¦à¦¬েদনের তারিঠ: ................................................... 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;'>দায়িত্বপ্রাপ্ত à¦à¦°্মà¦à¦°্তার স্বাà¦্ষর</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'>ফরম ডাà¦à¦¨à¦²োড বা প্রিন্ঠà¦à¦°ার à¦à¦¨্য প্রস্তুত</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: 'SolaimanLipi', 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;'>[প্রবিধান ৪ দ্রষ্à¦à¦¬্য]</p> 12006<h3 style='font-size: 15px; font-weight: bold; margin: 0;'>à¦াতীয় পরিà¦à¦¯়পত্র বা তথ্য-à¦à¦ªাত্ত সংশোধনের à¦à¦¬েদন</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 à¦্রমিঠনম্বর : ..................... (ঠফিস à¦à¦°্তৃঠপূরণীয়) 12011 </div> 12012<div style='font-weight: bold; font-size: 14px; margin-top: 10px; margin-bottom: 5px;'>à§§। à¦াতীয় পরিà¦à¦¯়পত্রধারী-</div> 12013<div style='padding-left: 20px; line-height: 1.8;'> 12014 (à¦) নাম : <span class='paper-dot-val' id='pdf-f2-holder-name' style='font-weight: bold;'>...................................................</span><br/> 12015 (à¦) à¦াতীয় পরিà¦িতি নম্বর (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;'>২। à¦à¦ ারো বà§à¦¸à¦°ের à¦à¦® বয়স্à¦/à¦à¦¦ালত à¦à¦°্তৃঠঠপ্রà¦ৃতিস্থ à¦োষিত à¦াতীয় পরিà¦à¦¯়পত্রধারীর à¦্ষেত্রে, à¦à¦à¦¨ানুঠঠà¦িà¦াবà¦ের -</div> 12018<div style='padding-left: 20px; line-height: 1.8;'> 12019 (à¦) নাম : <span class='paper-dot-val' id='pdf-f2-guard-name' style='font-weight: bold;'>...................................................</span><br/> 12020 (à¦) à¦াতীয় পরিà¦িতি নম্বর (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;'>à§©। à¦াতীয় পরিà¦à¦¯়পত্র বা সংরà¦্ষিত তথ্য-à¦à¦ªাত্তে যে তথ্য সংশোধন à¦à¦°িতে হà¦à¦¬ে (ঠপ্রয়োà¦à¦¨ীয় ঠংশ à¦াà¦িয়া দিন):</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%;'>বিষয়</th> 12028<th style='border: 1px solid #000; padding: 6px; text-align: center; width: 35%;'>বর্তমানে à¦াতীয় পরিà¦à¦¯়পত্র বা সংরà¦্ষিত তথ্য à¦à¦ªাত্তে বিদ্যমান তথ্য</th> 12029<th style='border: 1px solid #000; padding: 6px; text-align: center; width: 20%;'>à¦াহিত সংশোধিত তথ্য</th> 12030<th style='border: 1px solid #000; padding: 6px; text-align: center; width: 20%;'>সংযুà¦্ত দলিলাদি/মন্তব্য</th> 12031</tr> 12032</thead> 12033<tbody> 12034<tr><td style='border: 1px solid #000; padding: 6px;'>(à¦) নাম (বাংলা)</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;'>(à¦) নাম (à¦ংরেà¦ি)</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;'>(à¦) পিতার নাম</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;'>(à¦) মাতার নাম</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;'>(à¦) স্বামীর নাম</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;'>(à¦) à¦à¦¨্মতারিà¦</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;'>(à¦) ঠিà¦ানা</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;'>(à¦) রà¦্তের à¦্রুপ</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;'>(à¦) ঠন্যান্য</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 ৪। à¦à¦®াà¦ৃত ফি à¦à¦° পরিমাণ (à§§à§§ à¦à¦° à¦à¦ª-প্রবিধান (à§§) à¦à¦° à¦্রমিঠনং à§§ বা, প্রযোà¦্য à¦্ষেত্রে, ২ ঠà¦à¦²্লিà¦িত ফি ঠনুসারে): <span class='paper-dot-val' id='pdf-f2-fee-amount' style='font-weight: bold;'>
12046.....................</span> à¦াà¦া।<br/> 12047 à§«। প্রযোà¦্য à¦্ষেত্রে ফি à¦à¦®া দানের রশিদ: <span class='paper-dot-val' id='pdf-f2-fee-receipt' style='font-weight: bold;'>...................................................</span><br/> 12048 ৬। à¦à¦¬েদনপত্রের সহিত সংযুà¦্ত দলিলাদির বিবরণ: <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>à¦à¦à¦¨ানুঠঠà¦িà¦াবà¦ের স্বাà¦্ষর/à¦িপসহি (প্রযোà¦্য à¦্ষেত্রে)</strong><br/> 12054 नामঃ <span class='paper-dot-val' id='pdf-f2-g-sign-name'>...............</span><br/> 12055 ঠিà¦ানাঃ <span class='paper-dot-val' id='pdf-f2-g-sign-address'>...............</span><br/> 12056 মোবাà¦à¦² নম্বরঃ <span class='paper-dot-val' id='pdf-f2-g-sign-phone'>...............</span><br/> 12057 à¦-মেà¦à¦² (যদি থাà¦ে)ঃ <span class='paper-dot-val' id='pdf-f2-g-sign-email'>...............</span> 12058</div> 12059<div style='width: 48%; text-align: left;'> 12060<strong>à¦à¦¬েদনà¦ারীর স্বাà¦্ষর/à¦িপসহি</strong><br/> 12061 নামঃ <span class='paper-dot-val' id='pdf-f2-a-sign-name'>...............</span><br/> 12062 ঠিà¦ানাঃ <span class='paper-dot-val' id='pdf-f2-a-sign-address'>...............</span><br/> 12063 মোবাà¦à¦² নম্বরঃ <span class='paper-dot-val' id='pdf-f2-a-sign-phone'>...............</span><br/> 12064 à¦-মেà¦à¦² (যদি থাà¦ে)ঃ <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: 'SolaimanLipi', 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;'>à¦à¦¬েদনà¦ারীর à¦à¦¨্য নির্দেশাবলী</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 à¦à¦¬েদনà¦ারীà¦ে সনাà¦্তà¦ারীর স্বাà¦্ষরঃ ...................................................<br/> 12080<div style='padding-left: 35px; font-weight: normal; color: #334155; margin-top: 5px;'> 12081 নামঃ ...................................................<br/> 12082 à¦াতীয় পরিà¦à¦¯়পত্র নম্বরঃ ...................................................<br/> 12083 ঠিà¦ানাঃ ................................................................................ 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;'>[à¦েবলমাত্র ঠফিসে ব্যবহারের à¦à¦¨্য]</div> 12089<p style='line-height: 1.6; margin-bottom: 15px; font-size: 10px; color: #334155;'> 12090 দাà¦িলà¦ৃত দলিলাদি পরীà¦্ষান্তে ............................................. à¦à¦¨্য NID সংশোধন ঠনুমোদন à¦à¦°া à¦েল। 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;'>দায়িত্বপ্রাপ্ত à¦à¦°্মà¦à¦°্তার স্বাà¦্ষর</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;'>ঠংশ-ঠ(ফরম-২) প্রাপ্তিস্বীà¦ার রশিদ</div> 12102<p style='line-height: 1.5; font-size: 10px;'> 12103 à¦à¦¬েদনà¦ারীর নাম à¦à¦¬ং à¦াতীয় পরিà¦িতি নম্বর : ...................................................<br/> 12104 à¦à¦¬েদনের তারিঠ: ................................................... 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;'>দায়িত্বপ্রাপ্ত à¦à¦°্মà¦à¦°্তার স্বাà¦্ষর</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.