:root{--navy:#13233f;--ink:#172033;--line:#dbe1ea;--bg:#f4f6f9;--ok:#e7f6ec;--bad:#fde9e7;--na:#eef1f5}*{box-sizing:border-box}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--ink)}header{height:64px;background:var(--navy);color:white;display:flex;align-items:center;justify-content:space-between;padding:0 18px;position:sticky;top:0;z-index:10}.brand{display:flex;gap:10px;align-items:center}.brand small{display:block;opacity:.75}.mark{font-size:30px}.view{display:none}.view.active{display:block}.hero{max-width:1100px;margin:32px auto;padding:28px}.narrow{max-width:620px}.panel,.card,.area,.section,.qa-row{background:white;border:1px solid var(--line);border-radius:12px;padding:16px;margin:12px auto;max-width:1100px}.cards{padding:0 20px}.card,.area-head,.toolbar,.row{display:flex;align-items:center;gap:10px}.card{justify-content:space-between}.toolbar{padding:10px 16px;background:white;border-bottom:1px solid var(--line);position:sticky;top:64px;z-index:9}.spacer{flex:1}.tabs{display:flex;gap:5px;overflow:auto;padding:10px 14px;background:white;border-bottom:1px solid var(--line)}button{border:1px solid #cbd3df;background:white;border-radius:8px;padding:9px 12px;font-weight:600;cursor:pointer}.primary{background:var(--navy);color:white;border-color:var(--navy)}input,select,textarea{width:100%;padding:10px;border:1px solid #cbd3df;border-radius:8px;font:inherit}textarea{min-height:90px}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.field label{font-size:12px;font-weight:700;display:block;margin-bottom:5px}.muted{color:#667085}.item{padding:14px 0;border-bottom:1px solid #edf0f4}.item-head{display:flex;justify-content:space-between;gap:12px}.prompt{background:#f6f8fb;padding:9px;border-radius:8px;margin:8px 0;font-size:13px}.status{display:flex;gap:7px;flex-wrap:wrap}.sat.sel{background:var(--ok)}.unsat.sel{background:var(--bad)}.na.sel{background:var(--na)}.pill{background:#eef1f5;border-radius:999px;padding:3px 8px;font-size:12px}.walkbar{position:fixed;bottom:0;left:0;right:0;background:white;border-top:1px solid var(--line);display:flex;justify-content:space-around;padding:7px;z-index:20}.hidden{display:none!important}.photos{display:flex;gap:8px;overflow:auto;margin:10px 0}.photo{min-width:130px}.photo img{width:130px;height:95px;object-fit:cover;border-radius:8px}.finding{border-left:4px solid #b42318;background:#fff5f4;padding:10px;margin:8px 0}.paper{max-width:900px;background:white;margin:24px auto 80px;padding:55px;box-shadow:0 4px 20px #0001;line-height:1.5}.paper h1,.paper h2{color:var(--navy)}.report-cover{text-align:center;padding:100px 0 140px}.report-logo{max-width:220px;max-height:110px}.qa-score{font-size:52px;font-weight:800}.qa-pass{border-left:5px solid #15803d}.qa-review{border-left:5px solid #d97706}.qa-critical{border-left:5px solid #b42318}.certificate{border:1px solid var(--line);padding:10px;margin:8px 0;border-radius:8px}@media(max-width:650px){.paper{margin:0;padding:22px}.toolbar{top:64px;overflow:auto}.tabs{position:sticky;top:111px;z-index:8}.hero{padding:18px;margin:10px auto}body{padding-bottom:65px}}@media print{header,.toolbar,.tabs,.walkbar{display:none!important}.paper{box-shadow:none;margin:0;max-width:none;padding:0}.view{display:none!important}#report.view{display:block!important}}/* v2 report/workflow */
.cover-kicker{font-size:14px;font-weight:700;letter-spacing:.04em;margin-bottom:28px}.cover-photo{display:block;width:100%;max-height:380px;object-fit:cover;margin:28px auto;border-radius:6px}.cover-details{display:grid;grid-template-columns:1fr 1fr;gap:2px 28px;text-align:left;max-width:680px;margin:30px auto}.page-break{break-before:page;page-break-before:always}.report-cover.page-break{break-before:auto;page-break-before:auto}.toc a{color:var(--navy);text-decoration:none}.report-table{width:100%;border-collapse:collapse;margin:12px 0 24px}.report-table th,.report-table td{border:1px solid #d9dee7;padding:8px;vertical-align:top;text-align:left}.report-table th{background:#f3f6fa}.action-table{font-size:12px}.statement{border-left:4px solid var(--navy);padding:8px 16px;background:#f7f9fc;margin:18px 0}.certificate-page{break-before:page;page-break-before:always}.certificate-page img{width:100%;max-height:1000px;object-fit:contain}.walk-capture{margin-top:14px}.due-expired{background:#fee2e2}.due-due-soon{background:#fef3c7}.due-current{background:#dcfce7}@media print{.page-break{break-before:page;page-break-before:always}.report-cover.page-break{break-before:auto;page-break-before:auto}}
/* v2.1 QA / layout fixes */
#assessment{padding-bottom:86px}.setup-section{margin-top:18px}.framework-list{display:grid;gap:8px;margin:10px 0}.framework-option{display:flex;gap:9px;align-items:flex-start;padding:9px;border:1px solid var(--line);border-radius:8px;background:#fafbfd}.framework-option input{width:auto;margin-top:3px}.cover-photo-picker{display:grid;grid-template-columns:minmax(180px,320px) 1fr;gap:16px;align-items:center}.cover-photo-preview{width:100%;max-height:210px;object-fit:cover;border-radius:10px;border:1px solid var(--line)}.report-cover{min-height:0;padding:28px 10px 38px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start}.report-cover .report-logo{max-width:180px;max-height:82px;margin:8px auto 20px}.report-cover .cover-photo{width:100%;height:300px;max-height:300px;object-fit:cover;margin:10px auto 24px;border-radius:3px}.report-cover h1{font-size:34px;letter-spacing:.04em;margin:10px 0 8px}.report-cover .cover-kicker{max-width:720px;line-height:1.45;margin:0 auto 18px;color:#344054}.report-cover .cover-details{width:100%;margin:18px auto 0;padding-top:16px;border-top:2px solid var(--navy)}.report-cover .cover-details p{margin:5px 0}.report-section-title{break-after:avoid;page-break-after:avoid}.report-table tr,.finding,.statement{break-inside:avoid;page-break-inside:avoid}.photo-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:5px}.sync-error{color:#ffd6d1}@media(max-width:650px){#assessment{padding-bottom:92px}.cover-photo-picker{grid-template-columns:1fr}.report-cover .cover-photo{height:220px}.report-cover h1{font-size:27px}.cover-details{grid-template-columns:1fr}.walkbar{padding-bottom:calc(7px + env(safe-area-inset-bottom))}}
@media print{#assessment{padding-bottom:0}.report-cover{min-height:270mm;padding:18mm 8mm 12mm}.report-cover .cover-photo{height:105mm;max-height:105mm}.report-cover .report-logo{max-width:48mm;max-height:25mm}.report-cover h1{font-size:25pt}.report-cover+.page-break{break-before:page;page-break-before:always}}
.risk-matrix th,.risk-matrix td{text-align:center;vertical-align:middle}.risk-selected{outline:3px solid currentColor;font-weight:800}.report-photos{display:grid;grid-template-columns:1fr 1fr;gap:12px}.report-photos figure{margin:0;break-inside:avoid}.report-photos img{width:100%;max-height:260px;object-fit:contain}.report-photos figcaption{font-size:12px;margin-top:4px}.risk-page{break-before:page;page-break-before:always}
/* V2.5 PAS 79 risk matrix colours from supplied workbook */
.risk-cell.trivial,.risk-result.trivial,.report-table td.trivial{background:#fff!important;color:#111!important}
.risk-cell.tolerable,.risk-result.tolerable,.report-table td.tolerable{background:#92D050!important;color:#111!important}
.risk-cell.moderate,.risk-result.moderate,.report-table td.moderate{background:#FFFF00!important;color:#111!important}
.risk-cell.substantial,.risk-result.substantial,.report-table td.substantial{background:#FFC000!important;color:#111!important}
.risk-cell.intolerable,.risk-result.intolerable,.report-table td.intolerable{background:#FF0000!important;color:#111!important}
.risk-result{font-weight:700}
