// Student detail — full page. Read-only with edit affordances visible.

const ACard2 = window.ACard;
const ACardHeader2 = window.ACardHeader;
const { useState: sdUseState } = React;

function AStudentDetail({ branchId, lang, onBack }) {
  const t = lang === 'zh';
  const s = TL_STUDENT_S1_FULL;
  const [tab, setTab] = sdUseState('handbook');

  const tabs = [
    { id: 'handbook', en: 'Handbook archive', zh: '手冊紀錄', count: 18 },
    { id: 'progress', en: 'Skills & progress', zh: '進度', count: null },
    { id: 'practice', en: 'Practice log', zh: '練習紀錄', count: null },
    { id: 'exams',    en: 'Exams', zh: '考試', count: 4 },
    { id: 'comms',    en: 'Communications', zh: '通訊紀錄', count: 8 },
  ];

  return (
    <div style={{ height: '100%', overflow: 'auto', background: '#FFFFFF' }} className="tl-noscroll">
      {/* Breadcrumb */}
      <div style={{ padding: '14px 28px 0', display: 'flex', alignItems: 'center', gap: 6, fontFamily: TL_FONTS.mono, fontSize: 10, letterSpacing: '0.12em', textTransform: 'uppercase', color: '#6B6B6B' }}>
        <button onClick={onBack} style={{ background: 'none', border: 'none', cursor: 'pointer', padding: 0, color: '#6B6B6B', display: 'flex', alignItems: 'center', gap: 4 }}>
          <TLIcon name="chevL" size={12} /> {t ? '學生' : 'Students'}
        </button>
        <span style={{ color: '#A0A0A0' }}>/</span>
        <span style={{ color: '#141414' }}>{s.name}</span>
      </div>

      {/* Header */}
      <div style={{ padding: '14px 28px 20px', display: 'flex', gap: 20, alignItems: 'flex-start' }}>
        <div style={{
          width: 88, height: 88, background: s.photoColor,
          display: 'flex', alignItems: 'center', justifyContent: 'center',
          fontFamily: TL_FONTS.serif, fontSize: 32, fontWeight: 500, color: '#141414',
          flexShrink: 0,
        }}>{s.photoMono}</div>

        <div style={{ flex: 1 }}>
          <div style={{ fontFamily: TL_FONTS.mono, fontSize: 9, letterSpacing: '0.14em', textTransform: 'uppercase', color: '#A0A0A0' }}>
            {s.studentNo} · {t ? '尖沙咀分行' : s.branch} · {t ? '已入學自' : 'Since'} Dec 2024
          </div>
          <div style={{ display: 'flex', alignItems: 'baseline', gap: 14, marginTop: 4 }}>
            <h1 style={{ fontFamily: TL_FONTS.serif, fontSize: 32, fontWeight: 500, lineHeight: 1.1, margin: 0, letterSpacing: '-0.02em' }}>
              {t ? s.nameZh : s.name}
            </h1>
            <span style={{ padding: '2px 8px', background: '#141414', color: '#FFE003', fontFamily: TL_FONTS.mono, fontSize: 9, letterSpacing: '0.12em' }}>RECITAL PREP</span>
          </div>
          <div style={{ fontFamily: TL_FONTS.sans, fontSize: 13, color: '#333', marginTop: 6 }}>
            {s.instrument} · {s.level} · {t ? '9 歲' : 'Age 9'} · {t ? '老師：' : 'Teacher: '}<strong style={{ fontWeight: 500 }}>{s.teacher}</strong> · {s.studio}
          </div>
          <div style={{ fontFamily: TL_FONTS.mono, fontSize: 10, color: '#6B6B6B', marginTop: 4 }}>
            {t ? '每週時段：' : 'Weekly: '}{s.weeklySlot}
          </div>
        </div>

        <div style={{ display: 'flex', gap: 8 }}>
          <button style={btnGhost}><TLIcon name="msg" size={12} /> {t ? '訊息' : 'Message'}</button>
          <button style={btnGhost}><TLIcon name="cal" size={12} /> {t ? '排堂' : 'Reschedule'}</button>
          <button style={btnDark}>{t ? '編輯資料' : 'Edit profile'}</button>
        </div>
      </div>

      {/* Top row — KPIs + contact */}
      <div style={{ padding: '0 28px 16px', display: 'grid', gridTemplateColumns: '2fr 1.4fr', gap: 12 }}>
        <ACard2>
          <ACardHeader2 title={t ? '本學期摘要' : 'Term at a glance'} sub={t ? '截至 4 月 28 日' : 'as of Apr 28'} />
          <div style={{ padding: '14px 20px 18px', display: 'grid', gridTemplateColumns: 'repeat(5, 1fr)', gap: 14 }}>
            <DStat2 label={t ? '出席率' : 'Attendance'} val="100%" sub="12/12" />
            <DStat2 label={t ? '平均練習' : 'Practice avg'} val="32m" sub={t ? '每日' : 'per day'} />
            <DStat2 label={t ? '完成曲目' : 'Pieces'} val="6" sub={t ? '本年' : 'this year'} accent />
            <DStat2 label={t ? '技巧評分' : 'Skill score'} val="3.8" sub="↑ +0.4 / 3mo" />
            <DStat2 label={t ? '下次考試' : 'Next exam'} val="Jun 15" sub="ABRSM Gr.3" />
          </div>
        </ACard2>

        <ACard2>
          <ACardHeader2 title={t ? '聯絡資料' : 'Contacts'} sub={t ? '可逐項編輯' : 'editable inline'} action={
            <button style={{ background: 'none', border: 'none', color: '#6B6B6B', fontFamily: TL_FONTS.mono, fontSize: 10, letterSpacing: '0.1em', cursor: 'pointer' }}>EDIT</button>
          } />
          <div style={{ padding: '8px 20px 16px' }}>
            <ContactRow label={t ? '主要 (母)' : 'Primary · Mother'} name={t ? s.primary.nameZh : s.primary.name} phone={s.primary.phone} channel="WhatsApp" channelOn={true} />
            <ContactRow label={t ? '次要 (父)' : 'Secondary · Father'} name={t ? s.secondary.nameZh : s.secondary.name} phone={s.secondary.phone} channel="Email" />
            <ContactRow label={t ? '緊急聯絡' : 'Emergency'} name={t ? s.emergency.nameZh : s.emergency.name} phone={s.emergency.phone} />
            <div style={{ display: 'grid', gridTemplateColumns: '1fr 1fr', gap: 10, marginTop: 8, paddingTop: 12, borderTop: '1px solid rgba(20,20,20,0.06)' }}>
              <FieldRow label={t ? '偏好語言' : 'Preferred lang.'} value={s.primary.language} />
              <FieldRow label={t ? '偏好渠道' : 'Pref. channel'} value={s.primary.preferred} />
            </div>
          </div>
        </ACard2>
      </div>

      {/* Staff note */}
      <div style={{ padding: '0 28px 16px' }}>
        <div style={{ background: '#141414', color: '#F8F8F8', padding: '14px 20px', display: 'flex', gap: 14, alignItems: 'flex-start' }}>
          <div style={{ fontFamily: TL_FONTS.mono, fontSize: 9, letterSpacing: '0.16em', color: '#FFE003', textTransform: 'uppercase', flexShrink: 0, marginTop: 2 }}>
            {t ? '內部備註' : 'Staff note'}
          </div>
          <div style={{ flex: 1, fontFamily: TL_FONTS.sans, fontSize: 12, lineHeight: 1.55, color: '#F8F8F8' }}>
            {t ? s.staffNoteZh : s.staffNote}
            <span style={{ color: '#A0A0A0', marginLeft: 10, fontFamily: TL_FONTS.mono, fontSize: 9 }}>— Karen, front desk · Mar 18</span>
          </div>
          <button style={{ background: 'transparent', border: '1px solid rgba(255,255,255,0.2)', color: '#F8F8F8', padding: '4px 10px', fontFamily: TL_FONTS.mono, fontSize: 9, cursor: 'pointer' }}>EDIT</button>
        </div>
      </div>

      {/* Tabs */}
      <div style={{ padding: '0 28px', borderBottom: '1px solid rgba(20,20,20,0.08)', display: 'flex', gap: 0 }}>
        {tabs.map(tab2 => {
          const active = tab === tab2.id;
          return (
            <button key={tab2.id} onClick={() => setTab(tab2.id)} style={{
              padding: '12px 18px', background: 'transparent', border: 'none', cursor: 'pointer',
              fontFamily: TL_FONTS.sans, fontSize: 12,
              color: active ? '#141414' : '#6B6B6B',
              borderBottom: active ? '2px solid #141414' : '2px solid transparent',
              marginBottom: -1, fontWeight: active ? 500 : 400,
            }}>
              {t ? tab2.zh : tab2.en}
              {tab2.count !== null && <span style={{ marginLeft: 8, fontFamily: TL_FONTS.mono, fontSize: 9, color: '#A0A0A0' }}>{tab2.count}</span>}
            </button>
          );
        })}
      </div>

      {/* Tab content */}
      <div style={{ padding: 28 }}>
        {tab === 'handbook' && <SDHandbookTab t={t} />}
        {tab === 'progress' && <SDProgressTab t={t} />}
        {tab === 'practice' && <SDPracticeTab t={t} />}
        {tab === 'exams'    && <SDExamsTab    t={t} />}
        {tab === 'comms'    && <SDCommsTab    t={t} />}
      </div>
    </div>
  );
}

const btnGhost = { background: 'transparent', border: '1px solid rgba(20,20,20,0.15)', padding: '7px 12px', fontFamily: TL_FONTS.sans, fontSize: 11, cursor: 'pointer', display: 'flex', alignItems: 'center', gap: 6 };
const btnDark = { background: '#141414', color: '#F8F8F8', border: 'none', padding: '7px 14px', fontFamily: TL_FONTS.sans, fontSize: 11, cursor: 'pointer' };

function DStat2({ label, val, sub, accent }) {
  return (
    <div>
      <div style={{ fontFamily: TL_FONTS.mono, fontSize: 9, letterSpacing: '0.14em', textTransform: 'uppercase', color: '#6B6B6B' }}>{label}</div>
      <div style={{ fontFamily: TL_FONTS.serif, fontSize: 28, fontWeight: 500, lineHeight: 1.1, marginTop: 4, letterSpacing: '-0.01em', color: accent ? '#141414' : '#141414' }}>
        {val}
      </div>
      <div style={{ fontFamily: TL_FONTS.mono, fontSize: 10, color: '#6B6B6B', marginTop: 2 }}>{sub}</div>
    </div>
  );
}

function ContactRow({ label, name, phone, channel, channelOn }) {
  return (
    <div style={{ padding: '10px 0', borderTop: '1px solid rgba(20,20,20,0.06)', display: 'flex', alignItems: 'center', gap: 12 }}>
      <div style={{ flex: 1 }}>
        <div style={{ fontFamily: TL_FONTS.mono, fontSize: 9, letterSpacing: '0.12em', textTransform: 'uppercase', color: '#A0A0A0' }}>{label}</div>
        <div style={{ fontFamily: TL_FONTS.sans, fontSize: 12, fontWeight: 500, marginTop: 2 }}>{name}</div>
        <div style={{ fontFamily: TL_FONTS.mono, fontSize: 11, color: '#333', marginTop: 1, letterSpacing: '0.02em' }}>{phone}</div>
      </div>
      {channel && (
        <div style={{
          padding: '2px 8px', background: channelOn ? '#FFE003' : 'transparent',
          border: channelOn ? 'none' : '1px solid rgba(20,20,20,0.15)',
          fontFamily: TL_FONTS.mono, fontSize: 9, color: '#141414', letterSpacing: '0.08em',
        }}>{channel}</div>
      )}
      <button style={{ background: 'none', border: 'none', padding: 4, cursor: 'pointer' }}>
        <TLIcon name="note" size={14} color="#A0A0A0" />
      </button>
    </div>
  );
}
function FieldRow({ label, value }) {
  return (
    <div>
      <div style={{ fontFamily: TL_FONTS.mono, fontSize: 9, letterSpacing: '0.12em', textTransform: 'uppercase', color: '#A0A0A0' }}>{label}</div>
      <div style={{ fontFamily: TL_FONTS.sans, fontSize: 12, marginTop: 2 }}>{value}</div>
    </div>
  );
}

// — TABS —

function SDHandbookTab({ t }) {
  return (
    <ACard2>
      <ACardHeader2 title={t ? '所有手冊' : 'All handbook entries'} sub="18 lessons · Dec 2024 → today" action={
        <button style={btnGhost}>{t ? '匯出 PDF' : 'Export PDF'}</button>
      } />
      <div>
        {TL_HANDBOOK_S1.map((h, i) => (
          <div key={h.id} style={{
            display: 'grid', gridTemplateColumns: '110px 1fr 200px 110px',
            padding: '14px 20px', alignItems: 'flex-start', gap: 16,
            borderBottom: '1px solid rgba(20,20,20,0.05)',
            opacity: h.attended ? 1 : 0.6,
          }}>
            <div>
              <div style={{ fontFamily: TL_FONTS.mono, fontSize: 10, color: '#141414' }}>{h.dateLabel}</div>
              {!h.attended && <div style={{ fontFamily: TL_FONTS.mono, fontSize: 9, color: '#B14B4B', marginTop: 2 }}>ABSENT</div>}
            </div>
            <div>
              <div style={{ fontFamily: TL_FONTS.sans, fontSize: 12, color: '#333', lineHeight: 1.45 }}>
                {h.remark || (h.attended ? '' : '—')}
              </div>
              {h.homework && <div style={{ fontFamily: TL_FONTS.mono, fontSize: 10, color: '#6B6B6B', marginTop: 6 }}>HW · {h.homework}</div>}
            </div>
            <div style={{ display: 'flex', flexWrap: 'wrap', gap: 4 }}>
              {h.pieces.map((p, j) => (
                <span key={j} style={{ padding: '2px 7px', background: '#F8F8F8', fontFamily: TL_FONTS.mono, fontSize: 9, letterSpacing: '0.04em', color: '#333' }}>
                  {p.progress}
                </span>
              ))}
            </div>
            <div style={{ textAlign: 'right' }}>
              <button style={{ background: 'none', border: 'none', cursor: 'pointer', fontFamily: TL_FONTS.mono, fontSize: 10, color: '#141414', letterSpacing: '0.08em', display: 'inline-flex', alignItems: 'center', gap: 4 }}>
                {t ? '查看' : 'OPEN'} <TLIcon name="chevR" size={11} />
              </button>
            </div>
          </div>
        ))}
        <div style={{ padding: '14px 20px', textAlign: 'center', fontFamily: TL_FONTS.mono, fontSize: 10, color: '#A0A0A0' }}>
          + 13 {t ? '較早紀錄' : 'older entries'}
        </div>
      </div>
    </ACard2>
  );
}

function SDProgressTab({ t }) {
  // Skills line chart
  const skills = TL_SKILLS_S1; // {date, technique, musicality, sight, theory}
  const W = 600, H = 200, P = 30;
  const allVals = skills.flatMap(s => [s.technique, s.musicality, s.sight, s.theory]);
  const max = 5, min = 1;
  const xFor = (i) => P + (i / (skills.length - 1)) * (W - 2*P);
  const yFor = (v) => H - P - ((v - min) / (max - min)) * (H - 2*P);
  const pathFor = (key, color) => {
    const d = skills.map((s, i) => `${i === 0 ? 'M' : 'L'} ${xFor(i)} ${yFor(s[key])}`).join(' ');
    return <path d={d} stroke={color} strokeWidth="2" fill="none" strokeLinecap="round" strokeLinejoin="round" />;
  };

  return (
    <div style={{ display: 'grid', gridTemplateColumns: '2fr 1fr', gap: 12 }}>
      <ACard2>
        <ACardHeader2 title={t ? '技巧進度 · 過去四個月' : 'Skill progression · last 4 months'} sub={t ? '每月平均評分 (1–5)' : 'monthly avg (1\u20135)'} />
        <div style={{ padding: '14px 20px 18px' }}>
          <svg width="100%" height={H} viewBox={`0 0 ${W} ${H}`}>
            {/* gridlines */}
            {[1,2,3,4,5].map(v => (
              <g key={v}>
                <line x1={P} y1={yFor(v)} x2={W-P} y2={yFor(v)} stroke="rgba(20,20,20,0.06)" />
                <text x={P-6} y={yFor(v)+3} textAnchor="end" fontSize="9" fontFamily="JetBrains Mono" fill="#A0A0A0">{v}</text>
              </g>
            ))}
            {skills.map((s, i) => (
              <text key={i} x={xFor(i)} y={H-8} textAnchor="middle" fontSize="10" fontFamily="JetBrains Mono" fill="#6B6B6B">{s.date}</text>
            ))}
            {pathFor('technique',  '#141414')}
            {pathFor('musicality', '#FFE003')}
            {pathFor('sight',      '#A0A0A0')}
            {pathFor('theory',     '#1F7A37')}
            {/* end-dots */}
            {['technique','musicality','sight','theory'].map((k, i) => {
              const c = ['#141414','#FFE003','#A0A0A0','#1F7A37'][i];
              const last = skills[skills.length-1];
              return <circle key={k} cx={xFor(skills.length-1)} cy={yFor(last[k])} r="3.5" fill={c} stroke="#FFF" strokeWidth="1.5" />;
            })}
          </svg>
          <div style={{ display: 'flex', gap: 18, fontFamily: TL_FONTS.mono, fontSize: 10, color: '#333', marginTop: 10 }}>
            {[
              { k: t ? '技巧' : 'Technique', c: '#141414', v: 3.6 },
              { k: t ? '音樂感' : 'Musicality', c: '#FFE003', v: 3.8 },
              { k: t ? '視奏' : 'Sight-read', c: '#A0A0A0', v: 3.0 },
              { k: t ? '樂理' : 'Theory', c: '#1F7A37', v: 3.5 },
            ].map((x, i) => (
              <span key={i} style={{ display: 'flex', alignItems: 'center', gap: 6 }}>
                <span style={{ width: 10, height: 2, background: x.c }} />
                {x.k} <strong style={{ color: '#141414', fontWeight: 500, marginLeft: 2 }}>{x.v}</strong>
              </span>
            ))}
          </div>
        </div>
      </ACard2>

      <ACard2>
        <ACardHeader2 title={t ? '曲目' : 'Repertoire'} sub={t ? '6 完成 · 2 進行中' : '6 done · 2 in progress'} />
        <div>
          {TL_REPERTOIRE_S1.map((r, i) => (
            <div key={i} style={{ padding: '10px 20px', borderTop: i === 0 ? 'none' : '1px solid rgba(20,20,20,0.05)' }}>
              <div style={{ fontFamily: TL_FONTS.sans, fontSize: 12, color: '#141414', lineHeight: 1.3 }}>{r.piece}</div>
              <div style={{ display: 'flex', justifyContent: 'space-between', marginTop: 4 }}>
                <span style={{ fontFamily: TL_FONTS.mono, fontSize: 9, color: r.status === 'Completed' ? '#1F7A37' : '#6B6B6B', letterSpacing: '0.08em', textTransform: 'uppercase' }}>{r.status}</span>
                <span style={{ fontFamily: TL_FONTS.mono, fontSize: 9, color: '#A0A0A0' }}>{r.started}</span>
              </div>
            </div>
          ))}
        </div>
      </ACard2>
    </div>
  );
}

function SDPracticeTab({ t }) {
  const data = TL_PRACTICE_28;
  const max = Math.max(...data);
  const total = data.reduce((a,b) => a+b, 0);
  const avg = Math.round(total / data.length);
  const days = data.filter(d => d > 0).length;

  return (
    <ACard2>
      <ACardHeader2 title={t ? '練習紀錄 · 過去 28 日' : 'Practice log · last 28 days'} sub={t ? '由家長 app 自動記錄' : 'auto-logged from parent app'} />
      <div style={{ padding: '14px 20px 20px' }}>
        <div style={{ display: 'flex', gap: 28, marginBottom: 16 }}>
          <DStat2 label={t ? '總時數' : 'Total'} val={`${Math.floor(total/60)}h ${total%60}m`} sub="28 days" />
          <DStat2 label={t ? '每日平均' : 'Daily avg'} val={`${avg}m`} sub={`${days}/28 days`} accent />
          <DStat2 label={t ? '最佳日' : 'Best day'} val={`${max}m`} sub="Apr 26" />
          <DStat2 label={t ? '練習目標' : 'Target'} val="30m" sub={t ? '達標 86%' : '86% hit rate'} />
        </div>

        {/* heatmap */}
        <div style={{ display: 'grid', gridTemplateColumns: 'repeat(28, 1fr)', gap: 4, marginBottom: 8 }}>
          {data.map((m, i) => {
            const op = m === 0 ? 0.08 : 0.2 + (m / max) * 0.8;
            return <div key={i} style={{ aspectRatio: '1', background: m === 0 ? '#EFEFEF' : `rgba(20,20,20,${op})`, position: 'relative' }} title={`Day ${i+1}: ${m} min`} />;
          })}
        </div>
        <div style={{ display: 'flex', justifyContent: 'space-between', fontFamily: TL_FONTS.mono, fontSize: 9, color: '#A0A0A0', letterSpacing: '0.06em' }}>
          <span>4 WEEKS AGO</span>
          <span>YESTERDAY</span>
        </div>
      </div>
    </ACard2>
  );
}

function SDExamsTab({ t }) {
  const passed = TL_EXAMS_S1.filter(e => e.score && e.score >= 100);
  return (
    <ACard2>
      <ACardHeader2 title={t ? '考試紀錄與計劃' : 'Exam history & schedule'} sub={`${passed.length} ${t ? '次合格' : 'passed'} · 1 ${t ? '即將舉行' : 'upcoming'}`} />
      <div>
        {TL_EXAMS_S1.map((e, i) => (
          <div key={i} style={{
            display: 'grid', gridTemplateColumns: '1.4fr 110px 110px 1fr',
            padding: '14px 20px', alignItems: 'center', gap: 14,
            borderTop: i === 0 ? 'none' : '1px solid rgba(20,20,20,0.05)',
            background: e.prep ? 'rgba(255,224,3,0.12)' : 'transparent',
          }}>
            <div>
              <div style={{ fontFamily: TL_FONTS.serif, fontSize: 14, fontWeight: 500 }}>{e.exam}</div>
              {e.prep && <div style={{ fontFamily: TL_FONTS.mono, fontSize: 9, letterSpacing: '0.14em', color: '#141414', marginTop: 4 }}>RECITAL PREP IN PROGRESS</div>}
            </div>
            <div style={{ fontFamily: TL_FONTS.mono, fontSize: 11 }}>{e.date}</div>
            <div style={{ fontFamily: TL_FONTS.mono, fontSize: 11, color: e.score ? '#141414' : '#A0A0A0' }}>
              {e.score ? `${e.score}/150` : '—'}
            </div>
            <div>
              <span style={{
                padding: '3px 10px',
                background: e.result === 'Distinction' ? '#141414' : e.result === 'Upcoming' ? '#FFE003' : '#F8F8F8',
                color: e.result === 'Distinction' ? '#FFE003' : '#141414',
                fontFamily: TL_FONTS.mono, fontSize: 10, letterSpacing: '0.08em',
              }}>{e.result}</span>
            </div>
          </div>
        ))}
      </div>
    </ACard2>
  );
}

function SDCommsTab({ t }) {
  return (
    <ACard2>
      <ACardHeader2 title={t ? '通訊紀錄' : 'Communications log'} sub={t ? '所有發送至林家的訊息' : 'every message to/from the Lam family'} action={
        <button style={btnDark}>{t ? '開啟對話' : 'Open thread'} →</button>
      } />
      <div>
        {TL_COMMS_S1.map((c, i) => (
          <div key={c.id} style={{
            display: 'grid', gridTemplateColumns: '160px 90px 60px 1fr 110px',
            padding: '12px 20px', alignItems: 'center', gap: 14,
            borderTop: i === 0 ? 'none' : '1px solid rgba(20,20,20,0.05)',
          }}>
            <div style={{ fontFamily: TL_FONTS.mono, fontSize: 10, color: '#333' }}>{c.when}</div>
            <div style={{ fontFamily: TL_FONTS.mono, fontSize: 9, letterSpacing: '0.12em', textTransform: 'uppercase', color: c.kind === 'WhatsApp' ? '#1F7A37' : '#141414' }}>{c.kind}</div>
            <div style={{ fontFamily: TL_FONTS.mono, fontSize: 10, color: '#A0A0A0', letterSpacing: '0.08em' }}>{c.dir === 'out' ? 'OUT →' : '← IN'}</div>
            <div style={{ fontFamily: TL_FONTS.sans, fontSize: 12, color: '#141414' }}>{c.subject}</div>
            <div style={{ fontFamily: TL_FONTS.mono, fontSize: 10, color: '#6B6B6B', textAlign: 'right' }}>{c.sent}</div>
          </div>
        ))}
      </div>
    </ACard2>
  );
}

window.AStudentDetail = AStudentDetail;
