CAPA01 • evidence review packet — Separate immediate unit correction from a verified cause and corrective/preventive action; define and record later effectiveness evidence…

HTML for this example

Select the code and use your copy shortcut. Changes in this preview are temporary.

<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>CAPA01 • evidence review packet</title><style>*{box-sizing:border-box}body{margin:0;background:var(--bg,#eef3f6);color:#172a39;font:16px/1.5 system-ui,sans-serif}main{max-width:1200px;margin:auto;padding:28px}h1{font-size:clamp(27px,4vw,42px);line-height:1.12;margin:8px 0 12px;letter-spacing:-.035em}h2{font-size:23px;line-height:1.2;margin:0 0 18px}h3{font-size:17px;margin:14px 0 8px}p{margin:8px 0 16px}.eyebrow{font-size:12px;text-transform:uppercase;letter-spacing:.15em;font-weight:800;color:var(--accent,#176b71)}.lead{max-width:75ch;color:#405568}.panel{background:#fff;border:1px solid #cdd9e1;border-radius:14px;padding:24px;margin:18px 0}.grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.wide{grid-template-columns:1.6fr 1fr}.metric-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.metric{border-left:4px solid var(--accent,#176b71);background:#f4f8fa;padding:18px}.big{display:block;font-size:36px;font-weight:800;line-height:1.2}.muted,small{color:#536879;font-size:14px}.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}button{background:var(--accent,#176b71);color:white;border:2px solid transparent;border-radius:8px;padding:10px 16px;min-height:44px;cursor:pointer;font:inherit;font-weight:650}button.secondary{background:#e8eff4;color:#172a39}button:disabled{opacity:.48;cursor:default}button[aria-pressed=true]{outline:3px solid #172a39;outline-offset:2px}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #de7616;outline-offset:3px}label{display:block;font-weight:650;margin:12px 0 6px}input,select,textarea{font:inherit;color:inherit;border:1px solid #8b9eae;border-radius:6px;background:white;padding:10px;width:100%;min-height:44px}textarea{resize:vertical;min-height:110px}input[type=checkbox]{width:22px;min-height:22px;vertical-align:middle}table{border-collapse:collapse;width:100%;font-size:14px}th{text-align:left;background:#eff4f7;color:#3d5261}th,td{padding:12px;border-bottom:1px solid #dce5eb;vertical-align:top}.scroll{overflow-x:auto}caption{text-align:left;margin-bottom:12px;font-weight:700}.notice{background:#eef5f9;border-left:4px solid #628ba1;padding:14px;margin:14px 0}.error{color:#9c2924;font-weight:650}.pill{display:inline-block;border-radius:30px;padding:4px 10px;background:#e5f3ee;color:#17614f;font-size:13px;font-weight:750}.draft{white-space:pre-wrap;font:17px/1.65 Georgia,serif}.rule{display:block;width:100%;text-align:left;margin:10px 0}.rule strong{font-size:26px}details{margin:18px 0}summary{cursor:pointer;font-weight:700;padding:12px;background:#e9eff3;border-radius:6px;min-height:44px}footer{margin:30px 0;color:#536879;font-size:14px}ol,ul{padding-left:23px}.time-input{max-width:90px}.section-no{font-size:52px;color:#b5c8d5;font-weight:800;line-height:1}.tag{font-weight:700;color:var(--accent,#176b71)}[hidden]{display:none!important}@media(max-width:760px){main{padding:18px}.grid,.wide{grid-template-columns:1fr}.metric-grid{grid-template-columns:1fr}.panel{padding:18px}.big{font-size:30px}th,td{padding:9px}}:root{--accent:#965625;--bg:#f5f1ec}.trace{display:flex;gap:10px;flex-wrap:wrap;margin:22px 0}.trace button{flex:1;min-width:150px}.big{font-size:26px}.draft{max-width:85ch}</style></head><body><main>
<span class="eyebrow">Quality procedure / fictional paper-kit issue</span><h1>One corrected label is not an effective CAPA.</h1><p class="lead">Trace CAPA01 from the unit correction to the evidence still needed for closure.</p><section class="panel"><div class="row"><span class="pill">CAPA01 · Pending review</span><span class="muted">Recurring wrong-revision labels on paper kits</span></div><div class="trace"><button type="button" id="stage-u03" class="secondary">U03 · Proposed correction</button><button type="button" id="stage-h01" class="secondary">H01 · Cause hypothesis</button><button type="button" id="stage-a01" class="secondary">A01 / P01 · Action proposals</button><button type="button" id="stage-e01" class="secondary">E01 · Effectiveness plan</button></div><h2 id="stage-title"></h2><p id="stage-description" class="draft"></p><p id="next-evidence" class="notice" aria-live="polite"></p><div class="metric-grid"><div class="metric">Correction<strong class="big">Proposed</strong><span>U03 label replacement</span></div><div class="metric">Cause<strong class="big">Unverified</strong><span>H01 mixed-revision storage bins</span></div><div class="metric">Effectiveness<strong class="big">Not observed</strong><span>2 × 10 kits planned; no actual results</span></div></div></section>
<section class="panel"><h2>Investigation and action record</h2><p>Enter actual evidence references only when available. Notes do not alter the fictional issue or controlled source records.</p><div class="grid"><label for="issue-ref">Observed issue reference</label><input id="issue-ref" type="text" value=""><label for="affected-scope">Actual affected scope</label><input id="affected-scope" type="text" value=""><label for="containment">Containment decision and scope</label><input id="containment" type="text" value=""><label for="correction-authority">U03 actual authorization</label><input id="correction-authority" type="text" value=""><label for="correction-completion">U03 actual completion evidence</label><input id="correction-completion" type="text" value=""><label for="supporting">H01 supporting evidence</label><input id="supporting" type="text" value=""><label for="refuting">H01 refuting evidence / alternatives</label><input id="refuting" type="text" value=""><label for="cause-reviewer">Actual cause reviewer</label><input id="cause-reviewer" type="text" value=""><label for="cause-conclusion">Actual cause conclusion and evidence</label><input id="cause-conclusion" type="text" value=""><label for="action-scope">A01 actual scope</label><input id="action-scope" type="text" value=""><label for="action-owner">A01 actual owner</label><input id="action-owner" type="text" value=""><label for="action-authority">A01 actual authorization</label><input id="action-authority" type="text" value=""><label for="action-date">A01 actual implementation date</label><input id="action-date" type="text" value=""><label for="implementation">A01 implementation verification evidence</label><input id="implementation" type="text" value=""><label for="preventive-scope">P01 comparable-line scope / exposure evidence</label><input id="preventive-scope" type="text" value=""><label for="preventive-owner">P01 actual reviewer / date</label><input id="preventive-owner" type="text" value=""><label for="criteria">E01 agreed effectiveness criteria</label><input id="criteria" type="text" value=""><label for="effectiveness-reviewer">E01 actual responsible reviewer</label><input id="effectiveness-reviewer" type="text" value=""></div><p>Proposed A01 separates revision bins and checks the maintained approved label source. P01 asks whether a comparable line has analogous exposure; that exposure is not established.</p></section>
<section class="panel"><h2>Separate action accountability</h2><div class="grid"><label for="correction-owner">U03 actual responsible owner</label><input id="correction-owner" type="text" value=""><label for="correction-date">U03 actual correction date</label><input id="correction-date" type="text" value=""><label for="preventive-authority">P01 actual review authorization</label><input id="preventive-authority" type="text" value=""><label for="preventive-review-evidence">P01 actual review findings / evidence</label><input id="preventive-review-evidence" type="text" value=""></div><h2>E01 / two future batches of ten</h2><p><strong>20 kits planned</strong> is not 20 inspected or 20 passed. Record actual scope, findings and evidence without forcing the denominator.</p><div class="grid"><label for="batch1-id">Actual first batch ID / date</label><input id="batch1-id" type="text" value=""><label for="batch1-count">Actual first inspected denominator</label><input id="batch1-count" type="number" value=""><label for="batch1-findings">Actual first findings / evidence / result</label><input id="batch1-findings" type="text" value=""><label for="batch2-id">Actual second batch ID / date</label><input id="batch2-id" type="text" value=""><label for="batch2-count">Actual second inspected denominator</label><input id="batch2-count" type="number" value=""><label for="batch2-findings">Actual second findings / evidence / result</label><input id="batch2-findings" type="text" value=""></div><label for="scope-reason">Reason for any actual scope difference</label><textarea id="scope-reason"></textarea><label for="closure-reviewer">Actual closure reviewer / decision evidence</label><input id="closure-reviewer" type="text" value=""><label for="unresolved">Unresolved questions</label><textarea id="unresolved"></textarea><button type="button" id="review-gaps">Review unresolved evidence</button><p id="review-result" class="notice" aria-live="polite"></p><label for="packet-text">CAPA procedure and evidence packet</label><textarea id="packet-text" readonly></textarea><button type="button" id="select-packet-text" class="secondary">Select text</button><p id="packet-text-status" class="muted">Select the text, then use your device’s copy command. Nothing is saved.</p></section>
<details><summary>Procedure and closure boundary</summary><ol><li>Record the original issue/scope; assign containment and correction authority.</li><li>Investigate H01 using supporting/refuting evidence, source/revision links and alternatives.</li><li>Confirm the cause/process decision and authorized actions.</li><li>Verify implementation separately from later effectiveness.</li><li>Confirm E01 criteria and reviewer; retain actual batch results and denominators.</li><li>Use the maintained procedure for responsible closure review, including unresolved questions.</li></ol><p>Implementation is not later effectiveness. A small successful check would not prove recurrence impossible. This HTML packet is not a maintained native procedure, controlled-record editor or compliance certificate; nothing is approved, closed or saved here.</p></details></main><script>const $=id=>document.getElementById(id);const on=(id,fn)=>$(id).addEventListener('click',fn);const text=(id,value)=>$(id).textContent=value;const bind=(id,fn,event='input')=>$(id).addEventListener(event,fn);const selectText=id=>{if(!$(id).value){text(id+'-status','Complete the required fields before selecting text.');return;}$(id).focus();$(id).select();text(id+'-status','Text selected. Use your device’s copy command; nothing has been sent or saved.');};
const NL=String.fromCharCode(10);const fields=["issue-ref","affected-scope","containment","correction-authority","correction-completion","supporting","refuting","cause-reviewer","cause-conclusion","action-scope","action-owner","action-authority","action-date","implementation","preventive-scope","preventive-owner","criteria","effectiveness-reviewer","batch1-id","batch1-count","batch1-findings","batch2-id","batch2-count","batch2-findings","scope-reason","closure-reviewer","unresolved"],fieldLabels={"issue-ref":"Observed issue reference","affected-scope":"Actual affected scope","containment":"Containment decision and scope","correction-authority":"U03 actual authorization","correction-completion":"U03 actual completion evidence","supporting":"H01 supporting evidence","refuting":"H01 refuting evidence / alternatives","cause-reviewer":"Actual cause reviewer","cause-conclusion":"Actual cause conclusion and evidence","action-scope":"A01 actual scope","action-owner":"A01 actual owner","action-authority":"A01 actual authorization","action-date":"A01 actual implementation date","implementation":"A01 implementation verification evidence","preventive-scope":"P01 comparable-line scope / exposure evidence","preventive-owner":"P01 actual reviewer / date","criteria":"E01 agreed effectiveness criteria","effectiveness-reviewer":"E01 actual responsible reviewer","batch1-id":"Actual first batch ID / date","batch1-count":"Actual first inspected denominator","batch1-findings":"Actual first findings / evidence / result","batch2-id":"Actual second batch ID / date","batch2-count":"Actual second inspected denominator","batch2-findings":"Actual second findings / evidence / result","scope-reason":"Reason for any actual scope difference","closure-reviewer":"Actual closure reviewer / decision evidence","unresolved":"Unresolved questions"};fields.push(...["correction-owner","correction-date","preventive-authority","preventive-review-evidence"]);Object.assign(fieldLabels,{"correction-owner":"U03 actual responsible owner","correction-date":"U03 actual correction date","preventive-authority":"P01 actual review authorization","preventive-review-evidence":"P01 actual review findings / evidence"});let stage='u03';const stages={u03:['U03 / proposed unit correction','Replace the wrong-revision label on U03, subject to actual authorization. This is a proposed correction of the unit, not evidence that a recurring cause was removed.','Confirm issue scope, containment decision, authority and actual completion evidence.'],h01:['H01 / cause question','Mixed-revision storage bins may have contributed. Supporting and refuting evidence are missing; H01 is a hypothesis, not a verified cause or operator-blame finding.','Link the affected label to source/revision evidence; investigate support, alternatives and refutation before a conclusion.'],a01:['A01 and P01 / proposed actions','A01 proposes separate revision bins and an approved-source check. P01 proposes reviewing another line only after scope and analogous exposure are confirmed.','Confirm actual scope, owner, authority, implementation date and verification. No implementation or preventive success is established.'],e01:['E01 / later effectiveness','Plan two future batches of ten kits against the approved revision. Twenty is planned scope; actual batch IDs, denominators, findings and results remain unknown.','Confirm criteria and reviewer before checking. Keep actual scope and any reason for a difference; closure remains pending.']};function show(k){stage=k;text('stage-title',stages[k][0]);text('stage-description',stages[k][1]);text('next-evidence',stages[k][2]);Object.keys(stages).forEach(x=>$('stage-'+x).setAttribute('aria-pressed',String(x===k)));}Object.keys(stages).forEach(k=>on('stage-'+k,()=>show(k)));function invalid(){return ['batch1-count','batch2-count'].some(k=>$(k).value!==''&&!/^\d+$/.test($(k).value));}function packet(){if(invalid()){$('packet-text').value='';text('review-result','Invalid actual denominator — use a nonnegative whole number or leave unknown. No result inferred.');return;}text('review-result','Closure pending — evidence fields are notes for responsible review, not completed approvals or effectiveness findings.');$('packet-text').value=['CAPA01 — DRAFT REVIEW PACKET','Recurring wrong-revision labels on paper kits.','U03: proposed label replacement; not cause removal.','H01: mixed-revision bins hypothesis, unverified.','A01: proposed separate bins and approved label-source check.','P01: analogous-line exposure and scope unconfirmed.','E01: two future batches of10 planned; no observed passes supplied by fixture.',...fields.map(k=>fieldLabels[k]+': '+($(k).value||'[not supplied]')),'Closure: PENDING RESPONSIBLE REVIEW. No source change or closure performed.'].join(NL);}fields.forEach(k=>bind(k,packet));on('review-gaps',()=>{if(invalid()){packet();return;}const missing=fields.filter(k=>!$(k).value.trim());text('review-result',missing.length?'Closure pending. '+missing.length+' evidence fields not supplied. Next: '+fieldLabels[missing[0]]+'.':'All note fields contain text; source validity, cause, implementation, effectiveness and closure still require the responsible reviewer. CAPA01 remains pending in this companion.');});on('select-packet-text',()=>selectText('packet-text'));show('u03');packet();globalThis.app={fields,invalid,get:()=>stage};</script></body></html>