`; const w = window.open('','_blank','width=900,height=700'); if(!w) return; w.document.open(); w.document.write(html); w.document.close(); } if(!logged){ return React.createElement('div', {className:'container', style:{display:'flex',minHeight:'100vh',alignItems:'center',justifyContent:'center'}}, React.createElement('div',{className:'card p-lg', style:{maxWidth:'420px', width:'100%'}}, React.createElement('div', {style:{textAlign:'center', marginBottom:'12px'}}, React.createElement('div',{className:'muted', style:{fontSize:'12px'}}, 'Platforma E-learning') ), React.createElement('div', {className:'grid'}, React.createElement('label', null, 'Nume complet'), React.createElement('input',{value:name, onChange:e=>setName(e.target.value)}), React.createElement('label', {style:{marginTop:'8px'}}, 'PIN de acces'), React.createElement('input',{value:pin, onChange:e=>setPin(e.target.value), placeholder:'orice valoare (demo)'}), React.createElement('button',{className:'btn primary', style:{marginTop:'12px'}, onClick:()=>setLogged(true)}, 'Intră în curs'), React.createElement('div',{className:'sub muted', style:{marginTop:'6px'}}, '* Demo – PIN acceptat orice valoare') ) ) ); } return React.createElement(React.Fragment, null, React.createElement('div',{className:'header'}, React.createElement('div',{className:'header-inner'}, React.createElement('div',null, React.createElement('div',{className:'muted sub'}, 'Curs activ'), React.createElement('div',{style:{fontWeight:600}}, 'Pregătire intermediere în asigurări – Demo') ), React.createElement('div',{className:'flex'}, React.createElement('span',{className:'muted sub'}, 'Total: '+fmtMin(timeSpent)+' / '+fmtMin(TOTAL_REQUIRED_MIN)), React.createElement('span',{className:'badge'}, name), React.createElement('button',{className:'btn', onClick:()=>setLogged(false)}, 'Ieșire') ) ) ), React.createElement('div',{className:'container'}, React.createElement('div',{className:'row'}, React.createElement('div', {className:'grid'}, React.createElement('div',{className:'card p-lg'}, React.createElement('div',{className:'flex', style:{justifyContent:'space-between', marginBottom:'8px'}}, React.createElement('div', null, React.createElement('div',{className:'muted sub'}, 'Progres general'), React.createElement('div',{className:'title'}, overall+'%') ), React.createElement('span',{className:'badge'}, 'Media teste: '+quizAvg+'%') ), React.createElement('div',{className:'progress'}, React.createElement('span',{style:{width:overall+'%'}})) ), React.createElement('div',{className:'card p-lg'}, React.createElement('div',{className:'tabs'}, ['manual','sinteza','teste'].map(t=>React.createElement('button',{ key:t,className:'tab'+(tab===t?' active':''),onClick:()=>setTab(t)}, t[0].toUpperCase()+t.slice(1))) ), tab==='manual' && React.createElement('div',{style:{marginTop:'12px'}}, React.createElement('div',{className:'title'}, 'Manual cursant'), React.createElement('p', null, 'Conținut demonstrativ. Marchează lecția ca parcursă.'), React.createElement('button',{className:'btn primary', onClick:()=>setDoneManual(true)}, 'Marchează ca parcurs'), React.createElement('div',{className:'muted sub', style:{marginTop:'8px'}}, 'Folosește +15 min / +1 h pentru a simula timpul.') ), tab==='sinteza' && React.createElement('div',{style:{marginTop:'12px'}}, React.createElement('div',{className:'title'}, 'Sinteză'), React.createElement('p', null, 'Rezumatul capitolelor cheie.'), React.createElement('button',{className:'btn primary', onClick:()=>setDoneSinteza(true)}, 'Marchează ca parcurs') ), tab==='teste' && React.createElement('div',{style:{marginTop:'12px'}}, QUIZZES.map(q => React.createElement('div',{className:'card p', key:q.id}, React.createElement('div',{className:'title', style:{fontSize:'16px'}}, q.title), React.createElement(Quiz,{quiz:q, onSubmit:(score)=>{ const v = Object.assign({}, quizScores); v[q.id]=score; setQuizScores(v); }}), typeof quizScores[q.id]==='number' && React.createElement('div',{className:'sub muted', style:{marginTop:'6px'}}, 'Ultimul scor: '+quizScores[q.id]+'%') )) ) ) ), React.createElement('div',{className:'grid'}, React.createElement('div',{className:'card p-lg'}, React.createElement('div',{className:'title', style:{fontSize:'16px'}}, 'Status curs'), React.createElement('div',{className:'flex', style:{justifyContent:'space-between',marginTop:'8px'}}, React.createElement('span', null, 'Manual'), React.createElement('span',{className:'badge'}, doneManual? 'Parcurs':'Nepăcurs') ), React.createElement('div',{className:'flex', style:{justifyContent:'space-between',marginTop:'8px'}}, React.createElement('span', null, 'Sinteză'), React.createElement('span',{className:'badge'}, doneSinteza? 'Parcurs':'Nepăcurs') ), React.createElement('div',{className:'muted sub', style:{marginTop:'8px'}}, 'Teste finalizate: '+Object.keys(quizScores).length+' / '+QUIZZES.length), React.createElement('div',{className:'flex', style:{justifyContent:'space-between',marginTop:'8px'}}, React.createElement('span', null, 'Media teste'), React.createElement('span', {style:{fontWeight:600}}, quizAvg+'%') ) ), React.createElement('div',{className:'card p-lg'}, React.createElement('div',{className:'title', style:{fontSize:'16px'}}, 'Timp & instrumente'), React.createElement('div',{className:'flex', style:{justifyContent:'space-between',marginTop:'8px'}}, React.createElement('span', {className:'muted'}, 'Timp acumulat'), React.createElement('span', {style:{fontWeight:600}}, fmtMin(timeSpent)+' / '+fmtMin(TOTAL_REQUIRED_MIN)) ), React.createElement('div',{className:'flex', style:{gap:'8px', marginTop:'8px'}}, React.createElement('button',{className:'btn', onClick:()=>setTimeSpent(t=>t+15)}, '+15 min'), React.createElement('button',{className:'btn', onClick:()=>setTimeSpent(t=>t+60)}, '+1 h'), React.createElement('button',{className:'btn', onClick:()=>{ setTimeSpent(0); setDoneManual(false); setDoneSinteza(false); setQuizScores({}); }}, 'Reset') ) ), React.createElement('div',{className:'card p-lg'}, React.createElement('div',{className:'title', style:{fontSize:'16px'}}, 'Adeverință'), canCert ? React.createElement('button',{className:'btn primary block', onClick:openCert}, 'Descarcă / tipărește adeverința') : React.createElement('div',{className:'muted sub'}, 'Condiții: Progres general ≥ 90%, Timp ≥ '+fmtMin(TOTAL_REQUIRED_MIN)+', Media testelor ≥ 60%') ) ) ) ) ); } const root = ReactDOM.createRoot(document.getElementById('app')); root.render(React.createElement(App));