Seafarer CV Builder — Capt Cibeesh :root{ –navy:#0A1628;–ocean:#1B4F8A;–steel:#2E7DB5;–teal:#3AAFA9; –gold:#C9A84C;–foam:#E8F4FD;–light:#F5F9FC;–white:#FFFFFF; –muted:#6B7C93;–text:#1A2535;–coral:#E8856A; –sidebar:#0F2240;–accent:#4EC9C3; } *{box-sizing:border-box;margin:0;padding:0} body{font-family:’DM Sans’,sans-serif;background:var(–navy);min-height:100vh;color:var(–text);} /* ── HEADER ── */ .app-header{background:linear-gradient(135deg,var(–navy) 60%,#162B4A);padding:18px 32px;display:flex;align-items:center;justify-content:space-between;border-bottom:2px solid var(–gold);} .logo{display:flex;align-items:center;gap:12px;} .logo-icon{width:40px;height:40px;background:var(–gold);border-radius:8px;display:flex;align-items:center;justify-content:center;font-family:’Playfair Display’,serif;font-weight:900;color:var(–navy);font-size:18px;} .logo-text{color:var(–white);font-family:’Playfair Display’,serif;font-size:20px;font-weight:700;line-height:1.1;} .logo-sub{font-family:’DM Sans’,sans-serif;font-size:11px;color:var(–gold);letter-spacing:2px;text-transform:uppercase;} .header-price{background:var(–gold);color:var(–navy);font-weight:700;padding:6px 18px;border-radius:20px;font-size:14px;} /* ── STEPS BAR ── */ .steps-bar{background:#0D1E35;padding:16px 32px;display:flex;align-items:center;gap:0;border-bottom:1px solid rgba(255,255,255,.08);} .step{display:flex;align-items:center;gap:8px;flex:1;} .step-num{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;border:2px solid rgba(255,255,255,.2);color:rgba(255,255,255,.4);transition:all .3s;} .step-label{font-size:11px;color:rgba(255,255,255,.4);font-weight:500;letter-spacing:.5px;text-transform:uppercase;transition:all .3s;} .step.active .step-num{background:var(–gold);border-color:var(–gold);color:var(–navy);} .step.active .step-label{color:var(–white);} .step.done .step-num{background:var(–teal);border-color:var(–teal);color:var(–white);} .step.done .step-label{color:var(–teal);} .step-line{flex:1;height:2px;background:rgba(255,255,255,.1);max-width:40px;} .step-line.done{background:var(–teal);} /* ── MAIN LAYOUT ── */ .main{display:flex;min-height:calc(100vh – 110px);} /* ── FORM PANEL ── */ .form-panel{flex:1;padding:32px;overflow-y:auto;max-width:680px;} .section-card{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:28px;margin-bottom:24px;transition:border-color .3s;} .section-card:hover{border-color:rgba(196,168,76,.3);} .section-title{display:flex;align-items:center;gap:10px;margin-bottom:20px;} .section-icon{width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0;} .section-icon.blue{background:rgba(43,125,181,.2);} .section-icon.teal{background:rgba(58,175,169,.2);} .section-icon.gold{background:rgba(201,168,76,.2);} .section-icon.coral{background:rgba(232,133,106,.2);} .section-name{font-family:’Playfair Display’,serif;font-size:18px;color:var(–white);font-weight:700;} .form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px;} .form-row.single{grid-template-columns:1fr;} .form-row.triple{grid-template-columns:1fr 1fr 1fr;} .field{display:flex;flex-direction:column;gap:6px;} .field label{font-size:11px;font-weight:600;color:var(–gold);letter-spacing:1px;text-transform:uppercase;} .field input,.field select,.field textarea{ background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12); border-radius:8px;padding:10px 14px;color:var(–white);font-family:’DM Sans’,sans-serif; font-size:14px;outline:none;transition:all .2s; } .field input::placeholder,.field textarea::placeholder{color:rgba(255,255,255,.3);} .field input:focus,.field select:focus,.field textarea:focus{border-color:var(–teal);background:rgba(58,175,169,.08);} .field select{cursor:pointer;} .field select option{background:var(–navy);color:var(–white);} .field textarea{resize:vertical;min-height:80px;line-height:1.6;} /* repeatable blocks */ .repeat-block{background:rgba(255,255,255,.03);border:1px dashed rgba(255,255,255,.1);border-radius:10px;padding:16px;margin-bottom:12px;position:relative;} .remove-btn{position:absolute;top:10px;right:10px;background:rgba(232,85,85,.2);border:none;color:#ff6b6b;width:24px;height:24px;border-radius:50%;cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center;} .add-btn{background:none;border:1px dashed rgba(58,175,169,.5);color:var(–teal);padding:8px 16px;border-radius:8px;cursor:pointer;font-size:13px;font-family:’DM Sans’,sans-serif;transition:all .2s;display:flex;align-items:center;gap:6px;margin-top:8px;} .add-btn:hover{background:rgba(58,175,169,.1);border-color:var(–teal);} /* photo upload */ .photo-upload{width:90px;height:90px;border-radius:50%;border:2px dashed rgba(201,168,76,.5);display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;color:var(–gold);font-size:22px;transition:all .2s;position:relative;overflow:hidden;background:rgba(201,168,76,.05);} .photo-upload:hover{border-color:var(–gold);background:rgba(201,168,76,.1);} .photo-upload img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:50%;} .photo-upload input{position:absolute;inset:0;opacity:0;cursor:pointer;} .photo-row{display:flex;align-items:center;gap:20px;} .photo-hint{font-size:12px;color:var(–muted);line-height:1.6;} /* nav buttons */ .nav-row{display:flex;justify-content:space-between;align-items:center;padding:24px 32px;background:rgba(0,0,0,.2);border-top:1px solid rgba(255,255,255,.06);} .btn-back{background:none;border:1px solid rgba(255,255,255,.2);color:rgba(255,255,255,.7);padding:10px 24px;border-radius:8px;cursor:pointer;font-family:’DM Sans’,sans-serif;font-size:14px;transition:all .2s;} .btn-back:hover{border-color:var(–white);color:var(–white);} .btn-next{background:linear-gradient(135deg,var(–teal),var(–steel));color:var(–white);border:none;padding:12px 32px;border-radius:8px;cursor:pointer;font-family:’DM Sans’,sans-serif;font-size:14px;font-weight:600;transition:all .2s;display:flex;align-items:center;gap:8px;} .btn-next:hover{transform:translateY(-1px);box-shadow:0 6px 20px rgba(58,175,169,.4);} .btn-pay{background:linear-gradient(135deg,var(–gold),#E0A830);color:var(–navy);border:none;padding:14px 36px;border-radius:10px;cursor:pointer;font-family:’DM Sans’,sans-serif;font-size:16px;font-weight:700;transition:all .2s;display:flex;align-items:center;gap:10px;} .btn-pay:hover{transform:translateY(-2px);box-shadow:0 8px 28px rgba(201,168,76,.5);} /* ── PREVIEW PANEL ── */ .preview-panel{width:400px;background:#f0f0f0;position:sticky;top:0;height:calc(100vh – 110px);overflow-y:auto;flex-shrink:0;} .preview-label{background:var(–teal);color:var(–white);text-align:center;font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;padding:8px;} /* ── CV TEMPLATE (matches uploaded design) ── */ .cv-wrap{width:100%;font-family:’DM Sans’,sans-serif;font-size:10px;background:#fff;} .cv-header{background:#2E7DB5;padding:16px 14px 12px;display:flex;align-items:center;gap:14px;} .cv-photo{width:60px;height:60px;border-radius:50%;object-fit:cover;border:2px solid rgba(255,255,255,.4);flex-shrink:0;background:#ddd;display:flex;align-items:center;justify-content:center;color:#999;font-size:20px;} .cv-name-block{} .cv-name{font-family:’Playfair Display’,serif;font-size:20px;font-weight:900;color:#fff;line-height:1.1;text-transform:uppercase;} .cv-rank{color:rgba(255,255,255,.8);font-size:10px;margin-top:2px;letter-spacing:.5px;} .cv-body{display:flex;min-height:400px;} .cv-sidebar{width:140px;background:#0F2240;padding:14px 12px;flex-shrink:0;} .cv-main{flex:1;padding:14px;} .cv-sidebar-section{margin-bottom:14px;} .cv-sidebar-title{font-size:8px;font-weight:700;color:var(–teal);letter-spacing:1.5px;text-transform:uppercase;margin-bottom:6px;border-bottom:1px solid rgba(58,175,169,.3);padding-bottom:3px;} .cv-sidebar-text{font-size:8.5px;color:rgba(255,255,255,.8);line-height:1.5;} .cv-sidebar-text a{color:var(–teal);} .cv-contact-item{display:flex;align-items:flex-start;gap:5px;margin-bottom:4px;} .cv-contact-icon{color:var(–teal);font-size:9px;margin-top:1px;flex-shrink:0;} .cv-skill-bar{margin-bottom:5px;} .cv-skill-name{font-size:8px;color:rgba(255,255,255,.7);margin-bottom:2px;} .cv-skill-track{height:3px;background:rgba(255,255,255,.1);border-radius:2px;} .cv-skill-fill{height:3px;background:var(–teal);border-radius:2px;} .cv-section{margin-bottom:12px;} .cv-section-title{display:flex;align-items:center;gap:6px;margin-bottom:6px;} .cv-section-arrow{width:0;height:0;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:8px solid var(–teal);flex-shrink:0;} .cv-section-name{font-size:11px;font-weight:700;color:#0F2240;letter-spacing:.5px;text-transform:uppercase;border-bottom:1.5px solid var(–teal);padding-bottom:2px;flex:1;} .cv-edu-item{margin-bottom:6px;} .cv-edu-school{font-weight:700;font-size:9px;color:#0F2240;} .cv-edu-year{font-size:8px;color:var(–teal);font-weight:600;} .cv-edu-detail{font-size:8px;color:#555;line-height:1.4;} .cv-ref-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;} .cv-ref-name{font-weight:700;font-size:9px;color:#0F2240;} .cv-ref-detail{font-size:8px;color:#555;} /* ── PAYMENT SCREEN ── */ .payment-screen{padding:40px 32px;max-width:500px;margin:0 auto;} .pay-card{background:rgba(255,255,255,.04);border:1px solid rgba(201,168,76,.3);border-radius:20px;padding:32px;text-align:center;} .pay-card h2{font-family:’Playfair Display’,serif;color:var(–white);font-size:28px;margin-bottom:8px;} .pay-card p{color:var(–muted);font-size:14px;margin-bottom:24px;} .price-badge{background:var(–gold);color:var(–navy);font-size:36px;font-weight:900;padding:12px 32px;border-radius:12px;display:inline-block;margin-bottom:24px;font-family:’Playfair Display’,serif;} .pay-features{text-align:left;margin-bottom:28px;} .pay-features li{color:rgba(255,255,255,.8);font-size:13px;padding:6px 0;border-bottom:1px solid rgba(255,255,255,.06);list-style:none;display:flex;align-items:center;gap:10px;} .pay-features li::before{content:”✓”;color:var(–teal);font-weight:700;} .pay-methods{display:flex;gap:10px;justify-content:center;margin-bottom:20px;flex-wrap:wrap;} .pay-method{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.15);border-radius:8px;padding:8px 16px;color:var(–white);font-size:12px;cursor:pointer;transition:all .2s;} .pay-method.selected,.pay-method:hover{border-color:var(–gold);background:rgba(201,168,76,.1);color:var(–gold);} /* ── OUTPUT SCREEN ── */ .output-screen{padding:32px;display:flex;gap:32px;flex-wrap:wrap;} .output-cv-wrap{flex:1;min-width:320px;background:#f0f0f0;border-radius:12px;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.5);} .output-actions{min-width:220px;} .output-actions h3{font-family:’Playfair Display’,serif;color:var(–white);font-size:20px;margin-bottom:16px;} .action-btn{display:flex;align-items:center;gap:10px;padding:14px 20px;border-radius:10px;margin-bottom:10px;cursor:pointer;font-family:’DM Sans’,sans-serif;font-size:14px;font-weight:600;border:none;width:100%;transition:all .2s;} .action-btn.primary{background:linear-gradient(135deg,var(–teal),var(–steel));color:var(–white);} .action-btn.primary:hover{transform:translateY(-1px);box-shadow:0 6px 20px rgba(58,175,169,.4);} .action-btn.secondary{background:rgba(255,255,255,.06);color:rgba(255,255,255,.8);border:1px solid rgba(255,255,255,.1);} .action-btn.secondary:hover{background:rgba(255,255,255,.1);} .success-badge{background:rgba(58,175,169,.1);border:1px solid rgba(58,175,169,.3);border-radius:10px;padding:16px;margin-bottom:16px;color:var(–teal);font-size:13px;line-height:1.6;} /* ── PAGE VISIBILITY ── */ .page{display:none;}.page.active{display:block;} .step-page{display:none;}.step-page.active{display:flex;flex-direction:column;flex:1;} /* print */ @media print{ body{background:#fff;} .app-header,.steps-bar,.form-panel,.preview-label,.nav-row,.output-actions{display:none!important;} .output-screen{padding:0;} .output-cv-wrap{box-shadow:none;border-radius:0;} } ⚓ Seafarer CV Builder by Capt Cibeesh Professional CV — ₹99 only 1Personal 2Education 3Experience 4Skills & Certs 5References 6Payment ✓Download 👤Personal Information 📷 Upload a professional photo(passport size recommended)Optional but recommended First Name * Last Name * Current Rank * — Select Rank — Master / CaptainChief Officer (C/O) Second Officer (2/O)Third Officer (3/O) Deck CadetBosunAB SeamanOS Seaman Chief Engineer (C/E)Second Engineer (2/E) Third Engineer (3/E)Fourth Engineer (4/E) Engine Cadet / TMEElectricianMotormanWiper Chief CookCook / StewardRadio Officer / GMDSS CDC / Book No. Phone * Email * Passport No. Passport Expiry Address US Visa — Select — Yes — ValidYes — ExpiredNo LinkedIn (optional) 📝Profile Summary Profile Statement 📄 Live CV Preview Step 1 of 6 Next: Education → 🎓Academic Achievements X Std % XII Std % IMU CET Rank DNS / B.Sc % Other Score / Grade 🏛️Education History + Add Education 📋STCW & Advanced Courses STCW Courses Completed Advanced / Support Level Courses 🌐Languages Languages Known 📄 Live CV Preview ← Back Next: Experience → ⚓Sea Service Experience Add each vessel you’ve sailed on. Most recent first. + Add Vessel / Sea Service 🏢Shore / Training Experience + Add Shore Experience 📄 Live CV Preview ← Back Next: Skills → 🛠️Technical Skills Technical Skills (comma separated) 🏆Additional Achievements 🗂️Documents & Certificates + Add Certificate / Document e.g. CDC, Passport, INDOS, Medical (ENG1), COC, STCW certificates… 📄 Live CV Preview ← Back Next: References → 📞Professional References Add 2 professional references — senior officers, college faculty, or HR contacts. + Add Reference ✅Review Your CV Your CV is ready to preview on the right. Check all details carefully before proceeding to payment. Once paid, you’ll receive a high-quality downloadable CV in the professional maritime format. 📄 Live CV Preview ← Back Proceed to Payment → ⚓ Get Your Professional CV One-time payment. Instant download. Print-ready format. ₹99 Professional maritime CV — print-ready PDF format Matching the industry-standard seafarer layout Download instantly after payment Branded with your name & Capt Cibeesh quality seal Works for all ranks — Cadet to Captain Choose payment method: UPI / GPay Net Banking Debit / Credit Card Razorpay 🔒 Pay ₹99 & Download CV Secure payment via Razorpay / Instamojo ← Back ✅ YOUR PROFESSIONAL CV IS READY 🎉 Payment successful!Your professional seafarer CV is ready to download. Download Options 🖨️ Print / Save as PDF ✏️ Edit & Regenerate 💡 Pro Tip Use Chrome → Print → Save as PDF for best quality. Set margins to “None” and enable “Background graphics”. More maritime career help Follow @captcibeesh Instagram • YouTube • Twitter // ── DATA STORE ───────────────────────────────────────────────────────────── let photoDataURL = ”; let currentStep = 1; // ── PHOTO ────────────────────────────────────────────────────────────────── function handlePhoto(input){ const file = input.files[0]; if(!file) return; const reader = new FileReader(); reader.onload = e => { photoDataURL = e.target.result; const prev = document.getElementById(‘photoPreview’); prev.src = photoDataURL; prev.style.display = ‘block’; document.getElementById(‘photoIcon’).style.display = ‘none’; liveUpdate(); }; reader.readAsDataURL(file); } // ── NAVIGATION ───────────────────────────────────────────────────────────── function goStep(n){ document.querySelectorAll(‘.step-page’).forEach((p,i)=>{ p.classList.toggle(‘active’, i+1 === n); }); for(let i=1;i<=7;i++){ const s = document.getElementById('s'+i); const l = document.getElementById('l'+i); if(!s) continue; s.className = 'step' + (i===n?' active':i<n?' done':''); if(l) l.className = 'step-line' + (ie.classList.remove(‘selected’)); el.classList.add(‘selected’); } function simulatePay(){ // In production: integrate Razorpay/Instamojo JS SDK here // For demo, show success immediately goStep(7); } // ── DYNAMIC LISTS ────────────────────────────────────────────────────────── function addEdu(){ const list = document.getElementById(‘eduList’); const idx = list.children.length; const div = document.createElement(‘div’); div.className = ‘repeat-block’; div.innerHTML = ` × Institution Name Degree / Course Year From–To Result / % `; list.appendChild(div); } function addSea(){ const list = document.getElementById(‘seaList’); const div = document.createElement(‘div’); div.className = ‘repeat-block’; div.innerHTML = ` × Vessel Name Type of Ship — Select Type — Bulk CarrierOil TankerChemical Tanker Container ShipGeneral CargoLPG Carrier LNG CarrierROROPassenger / Cruise Offshore / OSVDredgerTug GRT / DWT Rank on Board — Rank — MasterChief Officer2nd Officer 3rd OfficerDeck CadetChief Engineer 2nd Engineer3rd Engineer4th Engineer Engine Cadet/TME Duration Manning / Shipping Company Flag State `; list.appendChild(div); } function addShore(){ const list = document.getElementById(‘shoreList’); const div = document.createElement(‘div’); div.className = ‘repeat-block’; div.innerHTML = ` × Company / Institute Role / Position Duration Location `; list.appendChild(div); } function addCert(){ const list = document.getElementById(‘certList’); const div = document.createElement(‘div’); div.className = ‘repeat-block’; div.innerHTML = ` × Document / Certificate Number Valid Until `; list.appendChild(div); } function addRef(){ const list = document.getElementById(‘refList’); const div = document.createElement(‘div’); div.className = ‘repeat-block’; div.innerHTML = ` × Name Designation Company Phone / Email `; list.appendChild(div); } // ── DATA COLLECTOR ───────────────────────────────────────────────────────── function collectData(){ const g = id => (document.getElementById(id)||{}).value || ”; // Education blocks const eduItems = []; document.querySelectorAll(‘#eduList .repeat-block’).forEach(b=>{ const ins = b.querySelectorAll(‘input’); eduItems.push({name:ins[0]?.value||”,degree:ins[1]?.value||”,years:ins[2]?.value||”,result:ins[3]?.value||”}); }); // Sea blocks const seaItems = []; document.querySelectorAll(‘#seaList .repeat-block’).forEach(b=>{ const ins = b.querySelectorAll(‘input’); const sels = b.querySelectorAll(‘select’); seaItems.push({vessel:ins[0]?.value||”,type:sels[0]?.value||”,grt:ins[1]?.value||”,rank:sels[1]?.value||”,duration:ins[2]?.value||”,company:ins[3]?.value||”,flag:ins[4]?.value||”}); }); // Shore blocks const shoreItems = []; document.querySelectorAll(‘#shoreList .repeat-block’).forEach(b=>{ const ins = b.querySelectorAll(‘input’); shoreItems.push({company:ins[0]?.value||”,role:ins[1]?.value||”,duration:ins[2]?.value||”,location:ins[3]?.value||”}); }); // Cert blocks const certItems = []; document.querySelectorAll(‘#certList .repeat-block’).forEach(b=>{ const ins = b.querySelectorAll(‘input’); certItems.push({name:ins[0]?.value||”,num:ins[1]?.value||”,valid:ins[2]?.value||”}); }); // Reference blocks const refItems = []; document.querySelectorAll(‘#refList .repeat-block’).forEach(b=>{ const ins = b.querySelectorAll(‘input’); refItems.push({name:ins[0]?.value||”,desg:ins[1]?.value||”,company:ins[2]?.value||”,contact:ins[3]?.value||”}); }); return { fname:g(‘fname’), lname:g(‘lname’), rank:g(‘rank’), cdcno:g(‘cdcno’), phone:g(‘phone’), email:g(’email’), passport:g(‘passport’), passportexp:g(‘passportexp’), address:g(‘address’), usvisa:g(‘usvisa’), linkedin:g(‘linkedin’), profile:g(‘profile’), xstd:g(‘xstd’), xiistd:g(‘xiistd’), imucet:g(‘imucet’), dnspct:g(‘dnspct’), otherscore:g(‘otherscore’), stcw:g(‘stcw’), advancedCourses:g(‘advancedCourses’), languages:g(‘languages’), techskills:g(‘techskills’), achievements:g(‘achievements’), eduItems, seaItems, shoreItems, certItems, refItems, photo: photoDataURL }; } // ── CV RENDERER ──────────────────────────────────────────────────────────── function renderCV(d){ const name = (d.fname || ‘FIRST’) + ‘ ‘ + (d.lname || ‘LAST’); const rank = d.rank || ‘Rank / Department’; const photoHTML = d.photo ? “ : `👤`; // academic bar const bar = (val,color=’#3AAFA9′) => val ? “ : ”; // education rows let eduHTML = ”; if(d.eduItems && d.eduItems.length){ d.eduItems.forEach(e=>{ if(!e.name && !e.degree) return; eduHTML += ` ${e.name} ${e.years} ${e.degree}${e.result?’ — ‘+e.result:”} `; }); } // sea service rows let seaHTML = ”; if(d.seaItems && d.seaItems.length){ seaHTML = ` Sea Service`; d.seaItems.forEach(s=>{ if(!s.vessel && !s.company) return; seaHTML += ` ${s.vessel||”}${s.type?’ — ‘+s.type:”} ${s.duration}${s.rank?’ | ‘+s.rank:”} ${s.company||”}${s.grt?’ | ‘+s.grt:”}${s.flag?’ | Flag: ‘+s.flag:”} `; }); seaHTML += “; } // shore experience let shoreHTML = ”; if(d.shoreItems && d.shoreItems.length){ const items = d.shoreItems.filter(s=>s.company||s.role); if(items.length){ shoreHTML = ` Training / Shore Experience`; items.forEach(s=>{ shoreHTML += ` ${s.company} ${s.duration}${s.location?’ | ‘+s.location:”} ${s.role} `; }); shoreHTML += “; } } // certificates let certRows = ”; if(d.certItems && d.certItems.length){ d.certItems.filter(c=>c.name).forEach(c=>{ certRows += `• ${c.name}${c.num?’ — ‘+c.num:”}${c.valid?’ (Valid: ‘+c.valid+’)’:”}`; }); } // references let refHTML = ”; if(d.refItems && d.refItems.length){ const refs = d.refItems.filter(r=>r.name); if(refs.length){ refHTML = ` My Reference `; refs.slice(0,2).forEach(r=>{ refHTML += ` ${r.name} ${r.desg||”} ${r.company||”} ${r.contact||”} `; }); refHTML += “; } } // achievements list const achList = (d.achievements||”).split(‘\n’).filter(a=>a.trim()); // STCW text const stcwText = d.stcw || ‘STCW 2010 Basic Safety Training (BST)’; return ` ${photoHTML} ${name} ${rank}${d.cdcno?’ | CDC: ‘+d.cdcno:”} ${d.profile?` Profile ${d.profile} `:”} Contact ${d.phone?`📞${d.phone}`:”} ${d.email?`✉${d.email}`:”} ${d.address?`📍${d.address}`:”} ${d.linkedin?`🔗${d.linkedin}`:”} ${(d.xstd||d.xiistd||d.imucet||d.dnspct)?` Academic Achievements ${d.xstd?`X Std — ${d.xstd}%${bar(d.xstd)}`:”} ${d.xiistd?`XII Std — ${d.xiistd}%${bar(d.xiistd)}`:”} ${d.imucet?`IMU CET — Rank ${d.imucet}`:”} ${d.dnspct?`DNS/BSC — ${d.dnspct}%${bar(d.dnspct,’#C9A84C’)}`:”} ${d.otherscore?`${d.otherscore}`:”} `:”} ${d.languages?` Language ${d.languages} `:”} ${d.usvisa?` US Visa ${d.usvisa} `:”} ${d.passport?` Passport ${d.passport}${d.passportexp?’Exp: ‘+d.passportexp:”} `:”} ${eduHTML||seaHTML?` Education ${eduHTML} `:”} ${stcwText?` Advanced Courses / Support Level DCE ${stcwText} ${d.advancedCourses?`${d.advancedCourses}`:”} `:”} ${seaHTML} ${shoreHTML} ${achList.length?` Additional Achievements ${achList.map(a=>`• ${a}`).join(”)} `:”} ${certRows?` Documents & Certificates ${certRows} `:”} ${refHTML} `; } // ── LIVE PREVIEW ─────────────────────────────────────────────────────────── function liveUpdate(){ const d = collectData(); const html = renderCV(d); // Update all preview panels [‘cvPreviewWrap’,’cvPreviewWrap2′,’cvPreviewWrap3′,’cvPreviewWrap4′,’cvPreviewWrap5′].forEach(id=>{ const el = document.getElementById(id); if(el) el.innerHTML = html; }); // Final output const fin = document.getElementById(‘cvFinalOutput’); if(fin) fin.innerHTML = html; } // ── INIT ─────────────────────────────────────────────────────────────────── // Pre-seed one entry in each repeatable list addEdu(); addSea(); addRef(); liveUpdate();
1–2 minutes