1import{a as e}from"./logger-CqL7pGja.js";import{t}from"./errorLogging-y9Tkqa1s.js";import{t as n}from"./preload-helper-zJ_50EbN.js";import{o as r}from"./alertService-C_W5ua9Z.js";import{K as i,_t as a}from"./index-2EFrgcSo.js";import{_ as o,s,t as c}from"./useExpressUtils-CW9nBM4L.js";import{E as l,S as u,b as d,v as f,x as p,y as m}from"./scrollHelpers-DCIU6Wus.js";import{a as h,c as g,d as _,f as v,h as y,i as b,l as x,m as S,n as ee,o as te,p as C,r as ne,s as w,t as re,u as T}from"./markdownExport-D0K44bnC.js";var E=`/assets/logo-glass-reflection-master-CusuURAu.png`,D={logoUrl:E,qrUrl:`https://api.qrserver.com/v1/create-qr-code/?data=https%3A%2F%2Fviewsapp.ai&size=240x240&format=png`,startupsLogoUrl:E,brandWordmark:`Views app.ai`,productUrl:`https://viewsapp.ai`,studioUrl:`https://www.umbertogiacobbi.biz`,email:`[email protected]`,emailUrl:`mailto:[email protected]`,linkedinUrl:`https://www.linkedin.com/in/umbertogiacobbi/`,footerKicker:`Start now. No sign-up. No credit card.`,footerDescription:`Review by Views lets you check a memo, brief, proposal, or other important document in a few steps. No setup, no hidden commitmentâyour work stays private and under your control.`,footerMeta:[{label:`Try`,value:`Review by Views`},{label:`Bring`,value:`Memo, brief, or proposal`},{label:`Open`,value:`viewsapp.ai`,href:`https://viewsapp.ai`}]},O=6e4,k=1600,ie=2200,ae=2,oe=32,A=null;function se(){return A||=n(()=>import(`./es-C_Ha8SM2.js`),[]).catch(e=>{throw A=null,e}),A}function j(){return typeof document<`u`&&document.baseURI?document.baseURI:typeof window<`u`&&window.location?.href?window.location.href:null}function ce(e){if(!e)return``;try{let t=j();return t?new URL(e,t).href:String(e)}catch{return String(e)}}function le(e){return new Promise((t,n)=>{let r=new FileReader;r.onloadend=()=>t(typeof r.result==`string`?r.result:``),r.onerror=()=>n(r.error||Error(`Failed to read blob as data URL`)),r.readAsDataURL(e)})}async function M(e,{logError:t,toErrorLogMeta:n}={}){let r=ce(e);if(!r||typeof fetch>`u`)return r;try{let e=await fetch(r);if(!e.ok)throw Error(`Failed to fetch asset: ${e.status}`);return await le(await e.blob())}catch(e){return t&&t(`Failed to inline print asset`,{context:`chat-export.print-preview.fetch-asset-as-data-url`,assetUrl:r,...typeof n==`function`?n(e):{}}),r}}async function ue({logError:e,toErrorLogMeta:t}={}){let[n,r,i]=await Promise.all([M(D.logoUrl,{logError:e,toErrorLogMeta:t}),M(D.qrUrl,{logError:e,toErrorLogMeta:t}),M(D.startupsLogoUrl,{logError:e,toErrorLogMeta:t})]);return{...D,logoUrl:n,qrUrl:r,startupsLogoUrl:i}}function de(e){return new Promise((t,n)=>{let r=window.setTimeout(()=>n(Error(`Timed out while preparing print preview.`)),8e3);e.addEventListener(`load`,()=>{window.clearTimeout(r),t()},{once:!0})})}function N(e){return new Promise(t=>{e.requestAnimationFrame(()=>{e.requestAnimationFrame(t)})})}async function fe(e){let t=e.contentDocument,n=e.contentWindow;if(!t||!n)throw Error(`Unable to prepare print preview frame.`);if(t.fonts?.ready)try{await t.fonts.ready}catch{}await N(n)}function P(){let e=document.createElement(`iframe`);return e.setAttribute(`aria-hidden`,`true`),e.tabIndex=-1,Object.assign(e.style,{position:`fixed`,left:`0`,top:`0`,width:`${k}px`,height:`${ie}px`,border:`0`,opacity:`0`,pointerEvents:`none`,zIndex:`-1`}),document.body.appendChild(e),e}function F(e){return Array.from(e.querySelectorAll(`.quality-snapshot:not(.is-report-hidden)`)).filter(e=>{let t=e.getBoundingClientRect();return t.width>0&&t.height>0})}async function I(e){let t=e.style.paddingBottom,n=Number.parseFloat(getComputedStyle(e).paddingBottom)||0;e.style.paddingBottom=`${n+oe}px`;try{await N(e.ownerDocument.defaultView);let{toPng:t}=await se();return await t(e,{backgroundColor:`#fff`,cacheBust:!0,height:Math.ceil(e.scrollHeight),pixelRatio:ae})}finally{e.style.paddingBottom=t}}async function L(e){if(typeof window>`u`||typeof document>`u`)return e;let t=P();try{let n=de(t);t.srcdoc=e,await n,await fe(t);let r=t.contentDocument,i=F(r);for(let e of i){e.querySelector(`.quality-snapshot__print-image`)?.remove();let t=await I(e),n=r.createElement(`img`);n.className=`quality-snapshot__print-image`,n.alt=`Quality snapshot`,n.src=t,e.appendChild(n),e.classList.add(`has-print-snapsh
1ot`)}return`<!doctype html>\n${r.documentElement.outerHTML}`}finally{t.remove()}}function R({html:e,title:t=`Views print preview`,logError:n}={}){if(typeof window>`u`||typeof document>`u`)return!1;let r=new Blob([e],{type:`text/html;charset=utf-8`}),i=URL.createObjectURL(r);return window.open(i,`_blank`,`noopener,noreferrer`)?(setTimeout(()=>{URL.revokeObjectURL(i)},O),!0):(URL.revokeObjectURL(i),n&&n(`Failed to open print preview window`,{context:`chat-export.print-preview.open-print-preview-document`,title:t}),!1)}function z(e,t){return`${e||`Conversation`} - ${t}`}async function B({body:e,title:t,productName:n=`Views`,buildPrintDocumentHtml:r,logError:i,toErrorLogMeta:a}={}){return R({html:await L(r({title:t,body:e,productName:n,branding:await ue({logError:i,toErrorLogMeta:a})})),title:t,logError:i})}var V=`/assets/space-grotesk-latin-400-normal-C_H9aji2.woff2`,pe=`/assets/space-grotesk-latin-600-normal-0SbvWzVy.woff2`,me=`/assets/spectral-latin-400-normal-CTVgUekv.woff2`;function he({title:e,productName:t,turnCount:n,exportedAt:r,branding:i=D,escapeHtml:a,renderMetaList:o}={}){let s=[n?`<div class="print-report-intro__meta-item"><span class="print-report-intro__meta-icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" width="18" height="18" aria-hidden="true"><polyline points="23 4 23 10 17 10"/><path d="M20.49 15a9 9 0 1 1-2.12-9.36L23 10"/></svg></span><div><span class="print-report-intro__meta-label">Turns</span><span class="print-report-intro__meta-value">${a(String(n))}</span></div></div>`:null,r?`<div class="print-report-intro__meta-item"><span class="print-report-intro__meta-icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" width="18" height="18" aria-hidden="true"><rect x="3" y="4" width="18" height="18" rx="2" ry="2"/><line x1="16" y1="2" x2="16" y2="6"/><line x1="8" y1="2" x2="8" y2="6"/><line x1="3" y1="10" x2="21" y2="10"/></svg></span><div><span class="print-report-intro__meta-label">Exported</span><span class="print-report-intro__meta-value">${a(r)}</span></div></div>`:null,`<div class="print-report-intro__meta-item"><span class="print-report-intro__meta-icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" width="18" height="18" aria-hidden="true"><path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"/><polyline points="3.27 6.96 12 12.01 20.73 6.96"/><line x1="12" y1="22.08" x2="12" y2="12"/></svg></span><div><span class="print-report-intro__meta-label">Product</span><span class="print-report-intro__meta-value">${a(t||`Views`)}</span></div></div>`].filter(Boolean).join(`<div class="print-report-intro__meta-sep" aria-hidden="true"></div>`);return` 2 <div class="modern-report__body"> 3 <div class="modern-report__content"> 4 <section class="print-report-intro" aria-label="Report information"> 5 <div class="print-report-intro__masthead"> 6 <div class="print-report-intro__brand"> 7 <img class="modern-report__corner-logo" src="${a(i.logoUrl)}" alt="${a(i.brandWordmark)}"> 8 <div class="print-report-intro__header"> 9 <div class="print-report-intro__icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" width="20" height="20" aria-hidden="true"><polyline points="6 9 6 2 18 2 18 9"/><path d="M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2"/><rect x="6" y="14" width="12" height="8"/></svg></div> 10 <p class="print-report-intro__eyebrow">Print report</p> 11 </div> 12 </div> 13 <div class="print-report-intro__copy"> 14 <h1 class="print-report-intro__title">${a(e||`Conversation`)}</h1> 15 <p class="print-report-intro__description">${a(`A clear, shareable record created with ${t||`Views`}.`)}</p> 16 <p class="print-report-intro__description print-report-intro__description--secondary">
16A focused view of the prompt, answer, quality signals, insights, and supporting model responses.</p> 17 </div> 18 <div class="print-report-intro__meta">${s}</div> 19 </div> 20 </section> 21 <section class="print-report-advisory" aria-label="Report disclaimer"> 22 <div class="print-report-advisory__label-area"> 23 <div class="print-report-advisory__icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" width="20" height="20" aria-hidden="true"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"/><line x1="12" y1="8" x2="12" y2="12"/><line x1="12" y1="16" x2="12.01" y2="16"/></svg></div> 24 <span class="print-report-advisory__label">Advisory Note</span> 25 </div> 26 <div class="print-report-advisory__divider" aria-hidden="true"></div> 27 <p class="print-report-advisory__text">Use this report as a guide, not as the only source for important decisions. AI-generated content can be incomplete or wrong. Check important claims, dates, figures, and source-based statements before relying on them.</p> 28 </section> 29 </div> 30 </div> 31 `}function ge({branding:e=D,escapeHtml:t}={}){let n=t(e.footerKicker||`Start now. No sign-up. No credit card.`),r=t(e.footerDescription||`Review by Views lets you check a memo, brief, proposal, or other important document in a few steps. No setup, no hidden commitmentâyour work stays private and under your control.`),i=Array.isArray(e.footerMeta)?e.footerMeta.filter(e=>e?.label&&e?.value):[],a=t(e.logoUrl||``),o=t(e.brandWordmark||`Views`),s=t(e.qrUrl||``),c=[`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" width="18" height="18" aria-hidden="true"><rect x="3" y="3" width="7" height="7"/><rect x="14" y="3" width="7" height="7"/><rect x="14" y="14" width="7" height="7"/><rect x="3" y="14" width="7" height="7"/></svg>`,`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" width="18" height="18" aria-hidden="true"><circle cx="12" cy="12" r="10"/><circle cx="12" cy="12" r="6"/><circle cx="12" cy="12" r="2"/></svg>`,`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" width="18" height="18" aria-hidden="true"><circle cx="12" cy="12" r="10"/><line x1="2" y1="12" x2="22" y2="12"/><path d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"/></svg>`],l=i.map((e,n)=>{let r=c[n]||``,i=e.href?`<a class="rpt-footer__meta-value" href="${t(e.href)}">${t(e.value)}</a>`:`<span class="rpt-footer__meta-value">${t(e.value)}</span>`;return`${n>0?`<div class="rpt-footer__meta-sep" aria-hidden="true"></div>`:``}<div class="rpt-footer__meta-item"><span class="rpt-footer__meta-icon">${r}</span><div><span class="rpt-footer__meta-label">${t(e.label.toUpperCase())}</span>${i}</div></div>`}).join(``);return` 32 <footer class="modern-report__document-footer rpt-footer" data-report-section="brand-footer"> 33 <div class="rpt-footer__inner"> 34 <div class="rpt-footer__copy"> 35 ${a?`<img class="rpt-footer__brand-logo" src="${a}" alt="${o}">`:``} 36 <h2 class="rpt-footer__headline">${n}</h2> 37 <p class="rpt-footer__tagline">${r}</p> 38 ${i.length?`<div class="rpt-footer__meta">${l}</div>`:``} 39 </div> 40 <div class="rpt-footer__divider" aria-hidden="true"></div> 41 <div class="rpt-footer__qr-zone"> 42 <div class="rpt-footer__scan-label" aria-hidden="true">START REVIEW</div> 43 <div class="rpt-footer__qr-stack"> 44 ${s?`<img class="rpt-footer__qr-img" src="${s}" alt="QR code linking to viewsapp.ai" width="130" height="130">`:``} 45 <div class="rpt-footer__qr-url">viewsapp.ai</div> 46 </div> 47 </div> 48 </div> 49 </footer> 50 `}function _e({title:e,body:t,productName:n,branding:r=D,baseHref:i=``,exportedAt:a=``,turnCount:o=0,escapeHtml:s,renderMetaList:c}={}){let l=s(e||`Views export`),u=s(n||`Views`),d=s(i||``),f=he({title:e,productName:n,turnCount:o,exportedAt:a,branding:r,escapeHtml:s,renderMetaList:c}),p=ge({branding:r,escapeHtml:s});return` 51 <!doctype html> 52 <html lang="en"> 53 <head> 54 <meta charset="utf-8" /> 55 <meta name="viewport" content="width=device-width, initial-scale=1" /> 56 ${d?`<base href="${d}" />`:``} 57 <title>${l}</title> 58 <style> 59 @font-face { 60 font-family: "Spectral Report"; 61 src: url("${me}") format("woff2"); 62 font-style: normal; 63 font-weight: 400; 64 font-display: swap; 65 } 66 @font-face { 67 font-family: "Space Grotesk Report"; 68 src: url("${V}") format("woff2"); 69 font-style: normal; 70 font-weight: 400; 71 font-display: swap; 72 } 73 @font-face { 74 font-family: "Space Grotesk Report"; 75 src: url("${pe}") format("woff2"); 76 font-style: normal; 77 font-weight: 600; 78 font-display: swap; 79 } 80 .modern-report { 81 --modern-report-page-bg: #fffdf9; 82 --modern-report-ink: #2b312d; 83 --modern-report-ink-soft: #4e5952; 84 --modern-report-border: #ddd6cb; 85 --modern-report-divider: #e9e1d7; 86 --modern-report-subtle: #81786e; 87 --modern-report-link: #3f6f4d; 88 --modern-report-surface: #f8f3eb; 89 --modern-report-surface-soft: #fbf8f2; 90 --modern-report-prompt: #eef3f6; 91 --modern-report-prompt-border: #cdd8df; 92 --modern-report-heading: #201f1c; 93 --modern-report-chip-bg: #f2ece3; 94 --modern-report-chip-border: #d8cfbf; 95 width: 100%; 96 min-height: 100vh; 97 display: flex; 98 flex-direction: column; 99 background: var(--modern-report-page-bg); 100 color: var(--modern-report-ink); 101 font-family: "Space Grotesk Report", "Segoe UI", Arial, sans-serif; 102 font-synthesis: none; 103 } 104 .modern-report, .modern-report * { box-sizing: border-box; } 105 html, body { margin: 0; padding: 0; background: var(--modern-report-page-bg); color: var(--modern-report-ink); } 106 body { padding: 0; } 107 .modern-report__toolbar { 108 position: sticky; 109 top: 12px; 110 z-index: 20; 111 display: flex; 112 flex-direction: column; 113 margin: 0 16px 16px; 114 border: 1px solid rgba(140, 120, 210, 0.18); 115 border-radius: 20px; 116 background: linear-gradient(135deg, rgba(255, 255, 255, 0.82), rgba(247, 244, 255, 0.7)); 117 -webkit-backdrop-filter: blur(22px) saturate(145%); 118 backdrop-filter: blur(22px) saturate(145%); 119 box-shadow: 0 10px 34px rgba(70, 50, 135, 0.12), inset 0 1px 0 rgba(255, 255, 255, 0.72); 120 overflow: hidden; 121 } 122 .modern-report__toolbar-inner { 123 display: flex; 124 justify-content: space-between; 125 align-items: center; 126 gap: 16px; 127 padding: 14px 18px; 128 flex-wrap: wrap; 129 } 130 .modern-report__toolbar-identity { 131 display: flex; 132 align-items: center; 133 gap: 14px; 134 min-width: 0; 135 flex: 1 1 0; 136 overflow: hidden; 137 } 138 .modern-report__toolbar-icon-tile { 139 flex: 0 0 auto; 140 width: 42px; 141 height: 42px; 142 display: inline-flex; 143 align-items: center; 144 justify-content: center; 145 border-radius: 10px; 146 background: linear-gradient(135deg, #edeaff 0%, #e0d5fc 100%); 147 border: 1px solid rgba(120, 90, 210, 0.16); 148 color: #5c40c0; 149 } 150 .modern-report__toolbar-text { min-width: 0; } 151 .modern-report__toolbar-title { 152 font-size: 0.94rem; 153 font-weight: 700; 154 color: #1a1730; 155 white-space: nowrap; 156 overflow: hidden; 157 text-overflow: ellipsis; 158 } 159 .modern-report__toolbar-subtitle { 160 font-size: 0.76rem; 161 color: #7870a0; 162 margin-top: 2px; 163 } 164 .modern-report__toolbar-actions { 165 display: flex; 166 gap: 10px; 167 flex: 0 0 auto; 168 align-items: center; 169 } 170 .modern-report__toolbar button { 171 display: inline-flex; 172 align-items: center; 173 gap: 7px; 174 border-radius: 999px; 175 padding: 9px 18px; 176 font: inherit; 177 font-size: 0.87rem; 178 font-weight: 600; 179 cursor: pointer; 180 line-height: 1.3; 181 white-space: nowrap; 182 } 183 .modern-report__toolbar-button--primary { 184 background: linear-gradient(90deg, #4e6cf5 0%, #8b4fdd 50%, #d44fa0 100%); 185 color: #fff; 186 border: none; 187 box-shadow: 0 3px 14px rgba(110, 60, 200, 0.28); 188 } 189 .modern-report__toolbar-button--secondary { 190 background: transparent; 191 color: #4a4570; 192 border: 1.5px solid rgba(120, 100, 200, 0.3); 193 } 194 .modern-report__toolbar-button--customize { 195 background: #f7f5ff; 196 color: #51458f; 197 border: 1.5px solid rgba(120, 100, 200, 0.22); 198 } 199 .modern-report__toolbar-button--customize[aria-expanded="true"] { 200 background: #ede9ff; 201 border-color: rgba(108, 82, 199, 0.38); 202 } 203 .report-customizer__button-status { 204 min-width: 30px; 205 padding: 2px 7px; 206 border-radius: 999px; 207 background: rgba(108, 82, 199, 0.1); 208 color: #6d52c7; 209 font-size: 0.68rem; 210 font-weight: 800; 211 letter-spacing: 0.04em; 212 text-transform: uppercase; 213 } 214 .report-customizer { 215 display: grid; 216 grid-template-columns: minmax(210px, 0.6fr) minmax(0, 2.4fr) auto; 217 align-items: start; 218 gap: 18px; 219 padding: 14px 18px 16px; 220 border-top: 1px solid rgba(120, 100, 200, 0.1); 221 background: linear-gradient(90deg, #fbfaff 0%, #fff 70%); 222 } 223 .report-customizer[hidden] { display: none; } 224 .report-customizer__title { margin: 0; color: #211d42; font-size: 0.84rem; font-weight: 800; } 225 .report-customizer__description { margin: 3px 0 0; color: #7870a0; font-size: 0.74rem; line-height: 1.4; } 226 .report-customizer__presets { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 9px; } 227 .modern-report__toolbar .report-customizer__preset { 228 padding: 6px 10px; 229 border: 1px solid rgba(120, 100, 200, 0.18); 230 border-radius: 9px; 231 background: #fff; 232 color: #625a83; 233 font-size: 0.7rem; 234 } 235 .modern-report__toolbar .report-customizer__preset.is-active { 236 border-color: rgba(109, 82, 199, 0.5); 237 background: #ede9ff; 238 color: #4d3da0; 239 box-shadow: 0 0 0 2px rgba(109, 82, 199, 0.08); 240 }
241 .report-customizer__controls { 242 display: grid; 243 grid-template-columns: repeat(3, minmax(210px, 1fr)); 244 gap: 18px; 245 } 246 .report-customizer__group { 247 min-width: 0; 248 min-inline-size: 0; 249 margin: 0; 250 padding: 0; 251 border: 0; 252 } 253 .report-customizer__group-title { 254 margin: 0 0 7px; 255 padding: 0; 256 color: #7568a8; 257 font-size: 0.66rem; 258 font-weight: 600; 259 letter-spacing: 0.12em; 260 text-transform: uppercase; 261 } 262 .report-customizer__group-options { 263 display: grid; 264 grid-template-columns: repeat(2, minmax(0, 1fr)); 265 gap: 7px; 266 } 267 .report-customizer__group--evidence .report-customizer__group-options, 268 .report-customizer__group--layout .report-customizer__group-options { 269 grid-template-columns: 1fr; 270 } 271 .report-customizer__option { 272 display: flex; 273 align-items: center; 274 justify-content: space-between; 275 gap: 10px; 276 min-width: 0; 277 padding: 8px 10px; 278 border: 1px solid rgba(120, 100, 200, 0.11); 279 border-radius: 12px; 280 background: rgba(255, 255, 255, 0.82); 281 color: #373154; 282 font-size: 0.76rem; 283 font-weight: 650; 284 cursor: pointer; 285 } 286 .report-customizer__option.is-unavailable { opacity: 0.42; cursor: default; } 287 .report-customizer__switch { 288 position: relative; 289 flex: 0 0 auto; 290 width: 36px; 291 height: 20px; 292 margin: 0; 293 appearance: none; 294 border: 1px solid rgba(95, 88, 125, 0.22); 295 border-radius: 999px; 296 background: #ddd9e8; 297 cursor: pointer; 298 transition: background 140ms ease, border-color 140ms ease; 299 } 300 .report-customizer__switch::before { 301 content: ""; 302 position: absolute; 303 top: 2px; 304 left: 2px; 305 width: 14px; 306 height: 14px; 307 border-radius: 50%; 308 background: #fff; 309 box-shadow: 0 1px 4px rgba(50, 40, 80, 0.2); 310 transition: transform 140ms ease; 311 } 312 .report-customizer__switch:checked { background: #6d52c7; border-color: #6d52c7; } 313 .report-customizer__switch:checked::before { transform: translateX(16px); } 314 .report-customizer__switch:focus-visible { outline: 3px solid rgba(109, 82, 199, 0.2); outline-offset: 2px; } 315 .report-customizer__switch:disabled { cursor: default; } 316 .modern-report__toolbar .report-customizer__reset { 317 justify-content: center; 318 padding: 8px 13px; 319 background: transparent; 320 border: 1px solid rgba(120, 100, 200, 0.2); 321 color: #625a83; 322 font-size: 0.76rem; 323 } 324 .is-report-hidden { display: none !important; } 325 .quality-snapshot__print-image { display: none; } 326 .modern-report.is-executive-report [data-report-evidence="full-only"] { display: none !important; } 327 .modern-report.is-full-evidence-report [data-report-evidence="executive-only"] { display: none !important; } 328 .modern-report__toolbar-accent { 329 height: 3px; 330 background: linear-gradient(90deg, #4e6cf5 0%, #8b4fdd 50%, #d44fa0 100%); 331 -webkit-print-color-adjust: exact; 332 print-color-adjust: exact; 333 } 334 .modern-report__body { width: 100%; flex: 1; position: relative; } 335 .modern-report__content { width: 100%; max-width: 1320px; margin: 0 auto; padding: 18px 24px 24px; } 336 .modern-report__corner-banner { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: 14px; padding: 0 2px; } 337 .modern-report__corner-logo { width: 148px; max-width: 100%; height: auto; object-fit: contain; } 338 .modern-report__corner-qr { 339 display: flex; 340 flex-direction: column; 341 align-items: center; 342 gap: 6px; 343 padding: 10px 12px; 344 border: 1px solid rgb(63, 111, 77, 0.14); 345 border-radius: 18px; 346 background: linear-gradient(180deg, rgb(255, 255, 255, 0.96) 0%, rgb(249, 244, 236, 0.96) 100%); 347 box-shadow: 0 12px 30px rgb(39, 43, 40, 0.06); 348 } 349 .modern-report__corner-qr-image { width: 92px; height: 92px; object-fit: contain; } 350 .modern-report__corner-qr-label { margin: 0; color: var(--modern-report-subtle); font-size: 0.72rem; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; } 351 .print-report-intro { 352 position: relative; 353 overflow: hidden; 354 padding: 28px 32px 28px; 355 margin-bottom: 20px; 356 border: 1px solid rgba(110, 90, 200, 0.14); 357 border-radius: 24px; 358 background: linear-gradient(135deg, #ffffff 55%, rgba(110, 90, 220, 0.04) 100%); 359 box-shadow: 0 12px 36px rgba(80, 60, 160, 0.07); 360 break-inside: avoid; 361 page-break-inside: avoid; 362 } 363 .print-report-intro__header { display: flex; align-items: center; gap: 12px; margin-bottom: 18px; } 364 .print-report-intro__icon { 365 flex: 0 0 auto; 366 width: 40px; 367 height: 40px; 368 display: inline-flex; 369 align-items: center; 370 justify-content: center; 371 border-radius: 10px; 372 background: linear-gradient(135deg, #edeaff 0%, #e0d5fc 100%); 373 border: 1px solid rgba(120, 90, 210, 0.16); 374 color: #5c40c0; 375 } 376 .print-report-intro__eyebrow { margin: 0; color: #7870a0; font-size: 0.72rem; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; } 377 .print-report-intro__title { margin: 0 0 12px; max-width: 900px; color: #14123a; font-size: clamp(1.7rem, 3vw, 2.6rem); font-weight: 800; line-height: 1.1; letter-spacing: -0.025em; } 378 .print-report-intro__description { max-width: 820px; margin: 8px 0 0; color: #4a4870; font-size: 0.96rem; line-height: 1.65; } 379 .print-report-intro__description--secondary { color: #7870a0; font-size: 0.9rem; } 380 .print-report-intro__sep { margin: 22px 0 0; height: 1px; background: linear-gradient(90deg, rgba(110, 90, 200, 0), rgba(110, 90, 200, 0.14) 20%, rgba(110, 90, 200, 0.14) 80%, rgba(110, 90, 200, 0)); } 381 .print-report-intro__meta { display: flex; align-items: stretch; flex-wrap: wrap; margin-top: 18px; } 382 .print-report-intro__meta-item { 383 display: flex; 384 align-items: center; 385 gap: 12px; 386 flex: 1 1 0; 387 min-width: 0; 388 padding: 14px 18px; 389 } 390 .print-report-intro__meta-icon { 391 flex: 0 0 auto; 392 width: 36px; 393 height: 36px; 394 display: inline-flex; 395 align-items: center; 396 justify-content: center; 397 border-radius: 8px; 398 background: linear-gradient(135deg, #edeaff 0%, #e0d5fc 100%); 399 border: 1px solid rgba(120, 90, 210, 0.14); 400 color: #5c40c0; 401 } 402 .print-report-intro__meta-label { display: block; font-size: 0.64rem; font-weight: 700; letter-spacing: 0.14em; color: #9088b8; text-transform: uppercase; margin-bottom: 3px; } 403 .print-report-intro__meta-value { display: block; font-size: 0.96rem; font-weight: 700; color: #14123a; line-height: 1.3; } 404 .print-report-intro__meta-sep { width: 1px; height: 44px; background: rgba(110, 90, 200, 0.12); flex: 0 0 auto; align-self: center; } 405 .print-report-advisory { 406 display: flex; 407 align-items: flex-start; 408 gap: 0; 409 margin: 0 0 26px; 410 padding: 16px 20px; 411 border: 1px solid rgba(180, 130, 60, 0.2); 412 border-radius: 18px; 413 background: linear-gradient(135deg, #fdf8f0 0%, #fffcf6 100%); 414 break-inside: avoid; 415 page-break-inside: avoid; 416 } 417 .print-report-advisory__label-area { 418 display: flex; 419 flex-direction: column; 420 align-items: center; 421 gap: 8px; 422 flex: 0 0 auto; 423 padding-right: 20px; 424 min-width: 84px; 425 align-self: center; 426 } 427 .print-report-advisory__icon { 428 width: 40px; 429 height: 40px; 430 display: inline-flex; 431 align-items: center; 432 justify-content: center; 433 border-radius: 10px; 434 background: rgba(180, 130, 60, 0.1); 435 border: 1px solid rgba(180, 130, 60, 0.2); 436 color: #b07830; 437 } 438 .print-report-advisory__label { font-size: 0.64rem; font-weight: 800; letter-spacing: 0.14em; color: #b07830; text-transform: uppercase; text-align: center; } 439 .print-report-advisory__divider { width: 1px; align-self: stretch; background: rgba(180, 130, 60, 0.18); flex: 0 0 auto; margin-right: 20px; } 440 .print-report-advisory__text { margin: 0; color: #5a5040; font-size: 0.9rem; line-height: 1.65; flex: 1 1 0; min-width: 0; align-self: center; } 441 .modern-report__chat-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; max-width: none; margin: 18px 0 0; text-align: left; } 442 .modern-report__chat-fact { padding: 14px 16px; background: rgb(255, 253, 249, 0.76); border: 1px solid rgb(63, 111, 77, 0.12); border-radius: 18px; box-shadow: inset 0 1px 0 rgb(255, 255, 255, 0.65); } 443 .modern-report__chat-fact dt { margin: 0 0 4px; color: var(--modern-report-subtle); font-size: 0.72rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; } 444 .modern-report__chat-fact dd { margin: 0; color: var(--modern-report-ink); font-size: 0.94rem; line-height: 1.45; } 445 .modern-report__timeline { display: flex; flex-direction: column; gap: 30px; } 446 .modern-report__turn { break-inside: auto; } 447 .modern-report__turn + .modern-report__turn { padding-top: 30px; border-top: 1px solid rgb(120, 100, 200, 0.12); } 448 .modern-report__turn-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 14px; padding-bottom: 10px; border-bottom: 1px solid rgba(120, 100, 200, 0.12); color: var(--modern-report-subtle); font-size: 0.76rem; font-weight: 800; letter-spacing: 0.14em; text-transform: uppercase; break-after: avoid; } 449 .modern-report__turn-label { color: var(--modern-report-heading); } 450 /* Conversation report refinements */ 451 .conversation-report__heading { align-items: baseline; } 452 .conversation-report__label { color: #6f6b86; letter-spacing: 0.18em; } 453 .conversation-report__turn { color: #14123a; font-weight: 900; letter-spacing: 0.08em; } 454 455 .conversation-report__prompt-card { 456 position: relative; 457 display: grid; 458 grid-template-columns: 56px minmax(0, 1fr); 459 gap: 16px; 460 padding: 18px 20px; 461 margin-bottom: 18px; 462 background: linear-gradient(135deg, #ffffff 0%, #fbfbff 100%); 463 border: 1px solid rgba(120,90,210,0.14); 464 border-radius: 18px; 465 box-shadow: 0 10px 24px rgba(80, 60, 150, 0.045); 466 break-inside: avoid; 467 page-break-inside: avoid; 468 overflow: visible; 469 } 470 .conversation-report__prompt-icon { 471 width: 48px; 472 height: 48px; 473 display: inline-flex; 474 align-items: center; 475 justify-content: center; 476 border-radius: 12px; 477 background: linear-gradient(135deg, #f0ebff 0%, #e9e1ff 100%); 478 border: 1px solid rgba(120,90,210,0.12); 479 color: #5c40c0; 480 flex: 0 0 auto; 481 } 482 .conversation-report__prompt-content { min-width: 0; } 483 .conversation-report__prompt-label { font-size: 0.64rem; font-weight: 800; letter-spacing: 0.14em; text-transform: uppercase; color: #6d5fa3; margin-bottom: 6px; } 484 .conversation-report__prompt-text { 485 position: relative; 486 z-index: 1; 487 max-width: 1040px; 488 color: #232445; 489 font-family: "Spectral Report", Spectral, Georgia, "Times New Roman", serif; 490 font-size: 1.16rem; 491 font-weight: 400; 492 line-height: 1.62; 493 letter-spacing: -0.008em; 494 text-wrap: pretty; 495 } 496 .report-security-notice { 497 position: fixed; 498 left: 18px; 499 bottom: 18px; 500 z-index: 18; 501 display: grid; 502 grid-template-columns: 40px minmax(0, 1fr) 28px; 503 align-items: start; 504 gap: 12px; 505 width: min(390px, calc(100vw - 36px)); 506 padding: 15px 14px; 507 overflow: hidden; 508 border: 1px solid rgba(120, 90, 210, 0.18); 509 border-radius: 16px; 510 background: linear-gradient(135deg, rgba(255, 255, 255, 0.84), rgba(244, 240, 255, 0.72)); 511 box-shadow: 0 12px 38px rgba(60, 45, 120, 0.16), inset 0 1px 0 rgba(255, 255, 255, 0.76); 512 -webkit-backdrop-filter: blur(24px) saturate(150%); 513 backdrop-filter: blur(24px) saturate(150%); 514 } 515 .report-security-notice::before { 516 content: ''; 517 position: absolute; 518 inset: 0 0 auto; 519 height: 3px; 520 background: linear-gradient(90deg, #4e6cf5 0%, #8b4fdd 55%, #d44fa0 100%); 521 } 522 .report-security-notice__icon { 523 display: inline-flex; 524 align-items: center; 525 justify-content: center; 526 width: 40px; 527 height: 40px; 528 border: 1px solid rgba(120, 90, 210, 0.14); 529 border-radius: 10px; 530 background: linear-gradient(135deg, #edeaff 0%, #e0d5fc 100%); 531 color: #5c40c0; 532 } 533 .report-security-notice__eyebrow { 534 margin: 0 0 2px; 535 color: #7667a6; 536 font-size: 0.62rem; 537 font-weight: 600; 538 letter-spacing: 0.12em; 539 text-transform: uppercase; 540 } 541 .report-security-notice__title { 542 margin: 0; 543 color: #211d42; 544 font-size: 0.92rem; 545 font-weight: 600; 546 line-height: 1.3; 547 } 548 .report-security-notice__text { 549 margin: 4px 0 0; 550 color: #686181; 551 font-size: 0.76rem; 552 line-height: 1.45; 553 } 554 .report-security-notice__close { 555 display: inline-flex; 556 align-items: center; 557 justify-content: center; 558 width: 28px; 559 height: 28px; 560 padding: 0; 561 border: 0; 562 border-radius: 999px; 563 background: transparent; 564 color: #756d91; 565 cursor: pointer; 566 } 567 .report-security-notice__close:hover { background: #f2effb; color: #3f356c; } 568 .report-security-notice__close:focus-visible { outline: 3px solid rgba(109, 82, 199, 0.2); outline-offset: 2px; } 569 .conversation-report__prompt-text p { margin: 0; } 570 .conversation-report__prompt-date { margin-top: 10px; color: var(--modern-report-subtle); font-size: 0.85rem; display: flex; align-items: center; gap: 8px; } 571 .conversation-report__prompt-wash { position: absolute; right: 0; top: 0; bottom: 0; width: 120px; background: linear-gradient(90deg, rgba(142,110,255,0.06), rgba(212,79,160,0.04)); border-bottom-right-radius: 16px; border-top-right-radius: 16px; pointer-events: none; mix-blend-mode: multiply; } 572 573 .conversation-report__answer-card { padding: 20px 22px 22px; background: linear-gradient(180deg, #fff 0%, #fffdf9 100%); border: 1px solid rgba(221, 214, 203, 0.9); border-radius: 20px; box-shadow: 0 12px 28px rgba(44, 38, 30, 0.045); break-inside: auto; page-break-inside: auto; } 574
574 .conversation-report__answer-header { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; break-after: avoid; } 575 .conversation-report__answer-icon { width: 42px; height: 42px; display: inline-flex; align-items: center; justify-content: center; border-radius: 12px; background: linear-gradient(135deg,#f8f0e7 0%,#efe4d4 100%); border: 1px solid #eadfce; color: #8b6b3b; font-weight: 900; } 576 .conversation-report__answer-title { margin: 0; color: #14123a; font-size: 0.96rem; font-weight: 900; letter-spacing: 0.12em; text-transform: uppercase; } 577 .conversation-report__answer-subtitle { margin: 2px 0 0; color: var(--modern-report-subtle); font-size: 0.86rem; } 578 .conversation-report__answer-sep { height: 1px; background: linear-gradient(90deg, rgba(120, 100, 200, 0.14), rgba(221, 214, 203, 0.6)); margin: 14px 0; } 579 .conversation-report__answer-body { max-width: 1040px; font-size: 1rem; line-height: 1.68; color: #2f312f; } 580 581 .conversation-report__metrics { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 10px; margin-top: 18px; } 582 .conversation-report__metric { display: flex; gap: 10px; align-items: center; padding: 10px 12px; background: rgba(255,255,255,0.72); border: 1px solid rgba(120,100,200,0.11); border-radius: 12px; min-height: 56px; box-shadow: inset 0 1px 0 rgba(255,255,255,0.72); } 583 .conversation-report__metric--insight { grid-column: span 1; } 584 .conversation-report__metric-icon { width: 36px; height: 36px; display: inline-flex; align-items: center; justify-content: center; border-radius: 8px; background: linear-gradient(135deg,#f7f6ff 0%,#f1eefc 100%); border: 1px solid rgba(120,90,210,0.06); color: #6d52c7; flex: 0 0 auto; } 585 .conversation-report__metric-label { font-size: 0.64rem; font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase; color: #7a6f9a; } 586 .conversation-report__metric-value { font-size: 0.96rem; font-weight: 800; color: var(--modern-report-heading); } 587 588 @media (max-width: 760px) { 589 .conversation-report__prompt-card { grid-template-columns: 48px 1fr; padding: 12px; } 590 .conversation-report__prompt-wash { display: none; } 591 .conversation-report__metrics { grid-template-columns: 1fr 1fr; } 592 } 593 594 @media print { 595 .conversation-report__prompt-wash { display: none; } 596 .conversation-report__prompt-card, .conversation-report__answer-card { box-shadow: none; background: #fff; } 597 .conversation-report__metric { background: #fff; border-color: var(--modern-report-divider); } 598 .conversation-report__metrics { page-break-inside: avoid; break-inside: avoid; } 599 } 600 .modern-report__prompt { 601 display: grid; 602 grid-template-columns: 72px minmax(0, 1fr); 603 gap: 18px; 604 padding: 18px 20px; 605 background: linear-gradient(180deg, rgb(237, 243, 246, 0.88) 0%, rgb(255, 252, 247, 0.92) 100%); 606 border: 1px solid rgb(205, 216, 223, 0.92); 607 border-radius: 24px; 608 box-shadow: 0 16px 32px rgb(43, 49, 45, 0.06); 609 break-inside: avoid; 610 } 611 .modern-report__prompt-avatar-wrap { display: flex; align-items: flex-start; justify-content: center; } 612 .modern-report__prompt-avatar { width: 54px; height: 54px; border-radius: 50%; border: 1px solid rgb(0, 0, 0, 0.08); background: linear-gradient(180deg, #eef3f6, #fbf8f2); } 613 .modern-report__prompt-body { min-width: 0; } 614 .modern-report__prompt .modern-report__divider { margin-bottom: 12px; } 615 .modern-report__prompt-copy, .modern-report__response-body, .modern-report__synthesis-copy { color: var(--modern-report-ink); line-height: 1.65; } 616 .modern-report__prompt-copy p, .modern-report__response-body p, .modern-report__synthesis-copy p { margin-top: 0; margin-bottom: 0.8em; } 617 .modern-report__prompt-copy p:last-child, .modern-report__response-body p:last-child, .modern-report__synthesis-copy p:last-child { margin-bottom: 0; } 618 .modern-report__prompt-copy ul, .modern-report__response-body ul, .modern-report__synthesis-copy ul, .modern-report__prompt-copy ol, .modern-report__response-body ol, .modern-report__synthesis-copy ol { padding-left: 1.25rem; } 619 .modern-report__prompt-copy code, .modern-report__response-body code, .modern-report__synthesis-copy code { padding: 0.1rem 0.3rem; border-radius: 4px;
619 background: rgb(76, 88, 79, 0.08); font-family: Consolas, "Courier New", monospace; font-size: 0.9em; } 620 .modern-report__prompt-copy pre, .modern-report__response-body pre, .modern-report__synthesis-copy pre { overflow-x: auto; padding: 10px 12px; background: rgb(76, 88, 79, 0.06); } 621 .modern-report__prompt-copy blockquote, .modern-report__response-body blockquote, .modern-report__synthesis-copy blockquote { padding-left: 12px; border-left: 3px solid #c8bbab; color: var(--modern-report-ink-soft); } 622 .modern-report__response-body > :first-child { margin-top: 0; } 623 .modern-report__response-body > :last-child { margin-bottom: 0; } 624 .modern-report__response-body h1, 625 .modern-report__response-body h2, 626 .modern-report__response-body h3, 627 .modern-report__response-body h4, 628 .modern-report__response-body h5, 629 .modern-report__response-body h6 { 630 margin: 1.15em 0 0.45em; 631 color: #191735; 632 line-height: 1.3; 633 } 634 .modern-report__response-body h1 { font-size: 1.35rem; } 635 .modern-report__response-body h2 { font-size: 1.2rem; } 636 .modern-report__response-body h3 { font-size: 1.08rem; } 637 .modern-report__response-body ul, .modern-report__response-body ol { margin: 0 0 0.85em; } 638 .modern-report__response-body li + li { margin-top: 0.24em; } 639 .modern-report__response-body a { color: #4f45a5; text-decoration-thickness: 1px; text-underline-offset: 2px; } 640 .modern-report__response-body pre { white-space: pre-wrap; overflow-wrap: anywhere; border-radius: 9px; } 641 .modern-report__response-body table { width: 100%; margin: 0.9em 0; border-collapse: collapse; font-size: 0.88rem; } 642 .modern-report__response-body th, .modern-report__response-body td { padding: 7px 9px; border: 1px solid #e1d9cf; text-align: left; vertical-align: top; } 643 .modern-report__response-body th { background: #f6f3fb; color: #292441; font-weight: 800; } 644 .modern-report__prompt-meta { display: inline-flex; align-items: center; gap: 8px; margin-top: 14px; color: var(--modern-report-subtle); font-size: 0.88rem; font-weight: 600; } 645 .modern-report__section { 646 margin-top: 18px; 647 padding: 20px 22px 22px; 648 background: linear-gradient(180deg, #fff 0%, #fffdf9 100%); 649 border: 1px solid rgba(221,214,203,0.86); 650 border-radius: 20px; 651 box-shadow: 0 10px 26px rgba(44,38,30,0.04); 652 } 653 /* Quality snapshot print styling */ 654 .quality-snapshot { padding: 28px 30px; border: 1px solid #e7e2da; border-radius: 24px; background: linear-gradient(180deg, #fff 0%, #fffdf9 100%); box-shadow: 0 14px 32px rgba(44, 38, 30, 0.045); } 655 .quality-snapshot .modern-report__section-header { align-items: center; border-bottom: 0; margin-bottom: 24px; padding-bottom: 0; } 656 .quality-snapshot .modern-report__section-title { color: #111827; font-size: 1.12rem; letter-spacing: 0.08em; } 657 .quality-snapshot .modern-report__section-subtitle { color: #5f6470; font-size: 0.86rem; } 658 .quality-snapshot .modern-report__section-icon { width: 48px; height: 48px; color: #7b5f3b; background: linear-gradient(135deg, #f8f0e6 0%, #efe3d2 100%); border-color: #eadfce; box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.7); } 659 .quality-snapshot__index-summary { display: grid; grid-template-columns: auto auto; align-items: center; justify-content: end; column-gap: 16px; row-gap: 3px; text-align: left; margin-left: auto; min-width: 270px; } 660 .quality-snapshot__index-label { grid-column: 1 / -1; font-size: 0.72rem; font-weight: 800; color: #536a8f; letter-spacing: 0.12em; text-transform: uppercase; } 661 .quality-snapshot__index-score { font-size: 1.9rem; line-height: 1; font-weight: 900; color: #1a73e8; } 662 .quality-snapshot__index-denom { font-size: 0.86rem; margin-left: 6px; color: #5f6470; font-weight: 600; } 663 .quality-snapshot__status-chip { display: inline-flex; align-items: center; justify-content: center; min-width: 62px; min-height: 28px; font-size: 0.72rem; font-weight: 900; color: #ef2e2e; background: #ffeded; padding: 6px 10px; border-radius: 6px; } 664 .quality-snapshot__overall { display: flex; align-items: center; gap: 28px; margin-top: 0;
664 padding: 22px 26px; border: 1px solid #e9e2da; border-radius: 18px; background: rgba(255, 255, 255, 0.78); } 665 .quality-snapshot__overall-copy { flex: 1 1 320px; } 666 .quality-snapshot__overall-label { font-size: 0.72rem; font-weight: 900; color: #7a7480; text-transform: uppercase; letter-spacing: 0.14em; } 667 .quality-snapshot__overall-line { margin-top: 8px; color: #111827; font-size: 0.88rem; font-weight: 800; letter-spacing: 0.03em; text-transform: uppercase; } 668 .quality-snapshot__overall-line span { color: #1a73e8; } 669 .quality-snapshot__scale { flex: 1 1 560px; } 670 .quality-snapshot__scale-rail { position: relative; height: 42px; padding-top: 24px; } 671 .quality-snapshot__scale-segments { height: 5px; border-radius: 999px; background: repeating-linear-gradient(90deg, transparent 0 8px, rgba(255,255,255,0.92) 8px 11px), linear-gradient(90deg, #f52f35 0%, #ff7a1a 24%, #ffc928 46%, #7cc861 70%, #5bb884 100%); } 672 .quality-snapshot__scale-marker { position: absolute; top: 18px; width: 18px; height: 18px; background: #ff2f35; border: 3px solid #fff; border-radius: 999px; transform: translate(-50%, -50%); box-shadow: 0 0 0 3px #ff2f35, 0 8px 14px rgba(255, 47, 53, 0.2); } 673 .quality-snapshot__scale-labels { position: absolute; left: 0; right: 0; top: 0; display: flex; justify-content: space-between; font-size: 0.72rem; color: #6b7280; } 674 675 .quality-snapshot__metrics-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 14px; margin-top: 18px; } 676 .quality-snapshot__metric-card { --quality-accent: #6d52c7; --quality-accent-soft: #f3f0ff; --quality-border: #e7e2da; --quality-track: linear-gradient(90deg, #f52f35 0%, #ff7a1a 28%, #ffd528 48%, #6cc46d 100%); display: grid; grid-template-columns: 56px minmax(0, 1fr) 96px; gap: 14px; align-items: center; min-height: 96px; padding: 18px 20px; border-radius: 18px; border: 1px solid var(--quality-border); background: linear-gradient(180deg, #fff 0%, color-mix(in srgb, var(--quality-accent-soft) 40%, #fff) 100%); } 677 .quality-snapshot__metric-icon { width: 48px; height: 48px; display: inline-flex; align-items: center; justify-content: center; border-radius: 999px; background: var(--quality-accent-soft); color: var(--quality-accent); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--quality-accent) 12%, #fff); } 678 .quality-snapshot__metric-copy { flex: 1 1 auto; min-width: 0; } 679 .quality-snapshot__metric-title { font-weight: 900; color: var(--quality-accent); font-size: 0.82rem; letter-spacing: 0.06em; text-transform: uppercase; } 680 .quality-snapshot__metric-description { margin-top: 8px; color: #4b5563; font-size: 0.82rem; line-height: 1.35; } 681 .quality-snapshot__metric-bar { margin-top: 14px; position: relative; height: 14px; overflow: visible; } 682 .quality-snapshot__metric-bar-fill { position: absolute; left: 0; right: 0; top: 4px; height: 6px; border-radius: 999px; background: repeating-linear-gradient(90deg, transparent 0 8px, rgba(255,255,255,0.92) 8px 11px), var(--quality-track); } 683 .quality-snapshot__metric-marker { position: absolute; top: 7px; width: 16px; height: 16px; background: var(--quality-accent); border: 3px solid #fff; border-radius: 999px; transform: translate(-50%, -50%); box-shadow: 0 0 0 2px var(--quality-accent), 0 8px 14px color-mix(in srgb, var(--quality-accent) 18%, transparent); } 684 .quality-snapshot__metric-score { width: auto; text-align: right; } 685 .quality-snapshot__metric-value { font-weight: 900; font-size: 1.55rem; line-height: 1; color: var(--quality-accent); } 686 .quality-snapshot__metric-denom { font-size: 0.76rem; margin-left: 4px; color: #4b5563; font-weight: 600; } 687 .quality-snapshot__metric-status { margin-top: 10px; font-weight: 900; font-size: 0.68rem; letter-spacing: 0.04em; color: var(--quality-accent); text-transform: uppercase; } 688 .quality-snapshot__metric-bar--count .quality-snapshot__metric-bar-fill { background: repeating-linear-gradient(90deg, transparent 0 8px, rgba(255,255,255,0.92) 8px 11px
688), linear-gradient(90deg, var(--quality-accent) 0%, color-mix(in srgb, var(--quality-accent) 14%, #cbd5e1) 12%, #cbd5e1 100%); } 689 690 /* Per-metric color mapping to match mockup */ 691 .metric--hallucinationRisk { --quality-accent: #ef2e2e; --quality-accent-soft: #ffe6e6; --quality-border: #ffd4d4; --quality-track: linear-gradient(90deg, #4cc36b 0%, #d4d92b 28%, #ff950f 50%, #ef4444 100%); } 692 .metric--fabricationRisk { --quality-accent: #35a853; --quality-accent-soft: #e7f6eb; --quality-border: #e9ddd5; --quality-track: linear-gradient(90deg, #35a853 0%, #cbd5e1 12%, #cbd5e1 100%); } 693 .metric--consensusScore { --quality-accent: #35a853; --quality-accent-soft: #e7f6eb; --quality-border: #dcebdd; } 694 .metric--confidenceScore { --quality-accent: #f27a00; --quality-accent-soft: #fff1df; --quality-border: #eadfd4; } 695 .metric--panelIntegrityScore { --quality-accent: #6d52c7; --quality-accent-soft: #efe9ff; --quality-border: #dfd9ee; --quality-track: linear-gradient(90deg, #4cc36b 0%, #4cc36b 100%); } 696 .metric--verificationRequiredCount { --quality-accent: #1a73e8; --quality-accent-soft: #e7f1ff; --quality-border: #d7e4f2; } 697 .metric--unsupportedSpecificClaimCount { --quality-accent: #2b6fa8; --quality-accent-soft: #e8f2f9; --quality-border: #d7e4ee; } 698 .metric--dominantRiskScore { --quality-accent: #6d52c7; --quality-accent-soft: #eee9ff; --quality-border: #ded7ef; --quality-track: linear-gradient(90deg, #4cc36b 0%, #d4d92b 28%, #ff950f 50%, #ef4444 100%); } 699 700 .quality-snapshot__note { display: flex; align-items: center; gap: 12px; margin-top: 22px; color: #735d43; font-size: 0.82rem; padding: 14px 18px; border: 0; border-radius: 16px; background: linear-gradient(90deg, #f5eee6 0%, rgba(245, 238, 230, 0.45) 100%); } 701 .quality-snapshot__note::before { content: "i"; flex: 0 0 auto; width: 20px; height: 20px; display: inline-flex; align-items: center; justify-content: center; border-radius: 999px; background: #98764d; color: #fff; font-size: 0.78rem; font-weight: 800; font-family: Georgia, serif; } 702 .modern-report__section-header { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 16px; padding-bottom: 12px; border-bottom: 1px solid rgba(120,100,200,0.12); break-after: avoid; } 703 .modern-report__section-heading { display: flex; align-items: center; gap: 12px; } 704 .modern-report__section-icon { 705 width: 38px; 706 height: 38px; 707 display: inline-flex; 708 align-items: center; 709 justify-content: center; 710 border-radius: 12px; 711 background: linear-gradient(135deg, #f3f0ff 0%, #fff7fb 100%); 712 border: 1px solid rgba(120, 90, 210, 0.15); 713 color: #6d52c7; 714 font-size: 0.95rem; 715 font-weight: 800; 716 box-shadow: inset 0 1px 0 rgb(255, 255, 255, 0.55); 717 } 718 .modern-report__section-title, .modern-report__subsection-title { margin: 0; color: #14123a; font-size: 1rem; font-weight: 900; letter-spacing: 0.1em; text-transform: uppercase; } 719 .modern-report__section-subtitle { margin: 4px 0 0; color: #746d80; font-size: 0.86rem; line-height: 1.45; } 720 .modern-report__section-body { display: flex; flex-direction: column; gap: 0; } 721 .modern-report__section-body--responses, .modern-report__section-body--insights { gap: 0; } 722 .modern-report__response { 723 padding: 16px 0 18px 14px; 724 background: transparent; 725 border: 0; 726 border-left: 3px solid color-mix(in srgb, var(--tone-accent, #8b8a85) 42%, #e8dece); 727 border-radius: 0; 728 box-shadow: none; 729 break-inside: auto; 730 } 731 .modern-report__response + .modern-report__response { margin-top: 0; border-top: 1px solid rgba(221,214,203,0.72); } 732 .modern-report__response-header { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; margin-bottom: 10px; break-after: avoid; } 733 .modern-report__response-title-wrap { display: flex; align-items: flex-start; gap: 12px; min-width: 0; } 734 .modern-report__response-icon-wrap { 735 width: 38px; 736 height: 38px; 737 display: inline-flex; 738 align-items: center; 739 justify-content: center; 740 border-radius: 10px; 741 background: var(--tone-accent-soft, rgb(0,0,0,0.06)); 742 color: var(--tone-accent, #6c6a65); 743 border: 1px solid color-mix(in srgb, var(--tone-accent, #8b8a85) 18%, #fff); 744 } 745 .modern-report__response-icon { font-size: 1rem; } 746 .modern-report__response-title { margin: 0; color: #14123a; font-size: 1rem; font-weight: 900; } 747 .modern-report__response-key, .modern-report__response-meta { margin: 4px 0 0; color: var(--modern-report-subtle); font-size: 0.82rem; line-height: 1.45; overflow-wrap: break-word; } 748 .modern-report__response-technical-meta { 749 display: flex; 750 flex-wrap: wrap; 751 gap: 6px 14px; 752 margin: -2px 0 10px 50px; 753 color: #7a7480; 754 font-size: 0.72rem; 755 line-height: 1.4; 756 } 757 .modern-report__response-technical-meta strong { 758 margin-right: 4px; 759 color: #544d64; 760 font-weight: 800; 761 letter-spacing: 0.06em; 762 text-transform: uppercase; 763 } 764 .modern-report__response .modern-report__chat-facts { margin-top: 0; margin-bottom: 12px; gap: 8px; grid-template-columns: repeat(3, minmax(0, 1fr)); } 765 .modern-report__response .modern-report__chat-fact { padding: 8px 10px; background: rgba(255,255,255,0.72); border-color: color-mix(in srgb, var(--tone-accent, #8b8a85) 14%, #efe6da); border-radius: 10px; box-shadow: none; } 766 .modern-report__chips { display: flex; flex-wrap: wrap; gap: 6px; } 767 .modern-report__chips--compact { justify-content: flex-end; } 768 .modern-report__chip { 769 display: inline-flex; 770 align-items: center; 771 gap: 6px; 772 min-height: 24px; 773 padding: 4px 9px; 774 background: var(--modern-report-chip-bg); 775 border: 1px solid var(--modern-report-chip-border); 776 border-radius: 999px; 777 color: var(--modern-report-ink-soft); 778 font-size: 0.72rem; 779 font-weight: 700; 780 letter-spacing: 0.04em; 781 text-transform: uppercase; 782 line-height: 1.2; 783 white-space: nowrap; 784 } 785 .modern-report__synthesis-copy { padding: 0; font-size: 1.02rem; max-width: 1040px; } 786 .modern-report__confidence { 787 display: flex; 788 align-items: flex-start; 789 gap: 10px; 790 margin-top: 14px; 791 padding: 12px 14px; 792 background: linear-gradient(180deg, var(--tone-soft, rgb(248, 249, 247)) 0%, rgb(255, 255, 255, 0.95) 100%); 793 border: 1px solid color-mix(in srgb, var(--tone-accent, #8b8a85) 14%, #efe6da); 794 border-radius: 16px; 795 break-inside: avoid; 796 } 797 .modern-report__finding-group { 798 --finding-group-accent: #8b6f98; 799 --finding-group-surface: #faf7ff; 800 margin-top: 16px; 801 border: 1px solid color-mix(in srgb, var(--finding-group-accent) 24%, #fff); 802 border-radius: 18px; 803 background: linear-gradient(180deg, color-mix(in srgb, var(--finding-group-surface) 88%, #fff) 0%, #fff 100%); 804 box-shadow: 0 10px 24px rgba(80, 60, 140, 0.05); 805 overflow: hidden; 806 break-inside: avoid; 807 } 808 .modern-report__finding-group:first-child { margin-top: 0; } 809 .modern-report__finding-group-header { 810 display: flex; 811 align-items: center; 812 justify-content: space-between; 813 gap: 16px; 814 padding: 16px 18px; 815 border-bottom: 1px solid color-mix(in srgb, var(--finding-group-accent) 16%, #fff); 816 background: linear-gradient(90deg, color-mix(in srgb, var(--finding-group-surface) 96%, #fff) 0%, #fff 100%); 817 } 818 .modern-report__finding-group-header-copy { 819 display: flex; 820 align-items: center; 821 gap: 14px; 822 min-width: 0; 823 } 824 .modern-report__finding-group-icon { 825 width: 42px; 826 height: 42px; 827 display: inline-flex; 828 align-items: center; 829 justify-content: center; 830 flex: 0 0 auto; 831 color: var(--finding-group-accent); 832 background: color-mix(in srgb, var(--finding-group-accent) 12%, #fff); 833 border: 1px solid color-mix(in srgb, var(--finding-group-accent) 22%, #fff); 834 border-radius: 14px; 835 } 836 .modern-report__finding-group-titles { min-width: 0; } 837 .modern-report__finding-group-label { 838 color: var(--finding-group-accent); 839 font-size: 0.98rem; 840 font-weight: 800; 841 letter-spacing: 0.04em; 842 text-transform: uppercase; 843 } 844 .modern-report__finding-group-subtitle { 845 margin: 4px 0 0; 846 color: #615a54; 847 font-size: 0.88rem; 848 line-height: 1.45; 849 } 850 .modern-report__finding-group-count { 851 min-width: 34px; 852 height: 34px; 853 padding: 0 10px; 854 display: inline-flex; 855 align-items: center; 856 justify-content: center; 857 flex: 0 0 auto; 858 border-radius: 999px; 859 background: color-mix(in srgb, var(--finding-group-accent) 12%, #fff); 860 border: 1px solid color-mix(in srgb, var(--finding-group-accent) 18%, #fff); 861 color: var(--finding-group-accent); 862 font-size: 0.88rem; 863 font-weight: 800; 864 } 865 .modern-report__finding-group-items { 866 display: grid; 867 gap: 0; 868 padding: 8px 18px 16px; 869 } 870 .modern-report__finding-group--critical { --finding-group-accent: #d84b36; --finding-group-surface: #fff1ed; } 871 .modern-report__finding-group--very_high { --finding-group-accent: #ef5b3f; --finding-group-surface: #fff3ee; } 872 .modern-report__finding-group--high { --finding-group-accent: #ef8a1d; --finding-group-surface: #fff6ea; } 873 .modern-report__finding-group--elevated { --finding-group-accent: #c88a2f; --finding-group-surface: #fff7e9; } 874 .modern-report__finding-group--moderate { --finding-group-accent: #4c79c7; --finding-group-surface: #eef4ff; } 875 .modern-report__finding-group--guarded { --finding-group-accent: #2a9b8f; --finding-group-surface: #edf9f6; } 876 .modern-report__finding-group--low { --finding-group-accent: #4aa35f; --finding-group-surface: #eff9f1; } 877 .modern-report__finding-group--very_low { --finding-group-accent: #4aa35f; --finding-group-surface: #eff9f1; } 878 .modern-report__finding-group--unknown { --finding-group-accent: #7a7e86; --finding-group-surface: #f5f6f8; } 879 .modern-report__finding, .modern-report__insight-item { 880 padding: 14px 0 14px 16px; 881 background: transparent; 882 border: 0; 883 border-left: 3px solid color-mix(in srgb, var(--tone-accent, #8b8a85) 36%, #e8dece); 884 border-radius: 0; 885 box-shadow: none; 886 break-inside: avoid; 887 } 888 .modern-report__finding + .modern-report__finding, .modern-report__insight-item + .modern-report__insight-item { margin-top: 0; border-top: 1px solid rgba(221,214,203,0.72); } 889 .modern-report__finding-summary { display: flex; align-items: flex-start; flex-wrap: nowrap; gap: 12px; } 890 .modern-report__finding-label { 891 display: inline-flex; 892 align-items: center; 893 gap: 6px; 894 flex: 0 0 auto; 895 margin: 0; 896 color: var(--tone-accent, #8a6b4a); 897 font-size: 0.76rem; 898 font-weight: 700; 899 letter-spacing: 0.12em; 900 text-transform: uppercase; 901 padding: 5px 8px; 902 border-radius: 8px; 903 background: color-mix(in srgb, var(--tone-accent-soft, #f6eadb) 76%, #fff); 904 border: 1px solid color-mix(in srgb, var(--tone-accent, #8a6b4a) 18%, #fff); 905 } 906 .modern-report__finding-label.is-fabrication { color: #9a5a66; } 907 .modern-report__finding-label.is-hallucination { color: #66757c; } 908 .modern-report__finding-text, .modern-report__insight-text, .modern-report__insight-note, .modern-report__finding-detail { margin: 0; line-height: 1.62; } 909 .modern-report__insight-text { color: #2b312d; font-size: 0.94rem; } 910 .modern-report__finding-text { color: #2b312d; font-size: 0.94rem; } 911 .modern-report__finding-index { 912 display: inline-flex; 913 align-items: center; 914 justify-content: center; 915 flex: 0 0 auto; 916 width: 30px; 917 height: 30px; 918 border-radius: 9px; 919 background: color-mix(in srgb, var(--tone-accent-soft, #f6eadb) 78%, #fff); 920 border: 1px solid color-mix(in srgb, var(--tone-accent, #8a6b4a) 18%, #fff); 921 color: var(--tone-accent, #8a6b4a); 922 font-size: 0.7rem; 923 font-weight: 900; 924 letter-spacing: 0.04em; 925 } 926 .modern-report__finding-meta { 927 display: flex; 928 align-items: center; 929 flex-wrap: wrap; 930 gap: 7px; 931 margin: 10px 0 0 42px; 932 } 933 .modern-report__finding-meta-item { 934 display: inline-flex; 935 align-items: baseline; 936 gap: 5px; 937 max-width: 100%; 938 padding: 4px 8px; 939 border: 1px solid rgba(120, 100, 200, 0.1); 940 border-radius: 999px; 941 background: rgba(255, 255, 255, 0.72); 942 color: #645d6c; 943 font-size: 0.72rem; 944 line-height: 1.35; 945 } 946 .modern-report__finding-meta-item strong { 947 color: #81768d; 948 font-size: 0.64rem; 949 font-weight: 850; 950 letter-spacing: 0.07em; 951 text-transform: uppercase; 952 } 953 .modern-report__finding-meta-item--models { border-radius: 10px;
953 overflow-wrap: anywhere; } 954 .modern-report__finding-details { margin-top: 12px; display: grid; gap: 8px; } 955 .modern-report__finding-comparison { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; } 956 .modern-report__finding-detail { 957 padding: 9px 10px; 958 background: rgba(255, 255, 255, 0.72); 959 border: 1px solid rgba(221,214,203,0.72); 960 border-radius: 10px; 961 } 962 .modern-report__finding-detail-label { display: inline-flex; align-items: center; gap: 6px; margin: 0 0 4px; color: #8a5f62; font-size: 0.7rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; } 963 .modern-report__finding-detail-label--claim, 964 .modern-report__finding-detail-label--reasoning { color: var(--finding-group-accent, #8a5f62); } 965 .modern-report__finding-detail-label--claim::before, 966 .modern-report__finding-detail-label--reasoning::before { 967 content: ""; 968 width: 0.5rem; 969 height: 0.5rem; 970 border-radius: 999px; 971 background: currentColor; 972 box-shadow: 0 0 0 2px color-mix(in srgb, currentColor 14%, transparent); 973 flex: 0 0 auto; 974 } 975 .modern-report__divider { display: flex; align-items: center; gap: 12px; margin-bottom: 10px; color: #335846; font-size: 0.78rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; } 976 .modern-report__divider::before, .modern-report__divider::after { content: ""; flex: 1 1 auto; height: 1px; background: var(--modern-report-divider); } 977 .modern-report__insight-label-row { margin-bottom: 6px; } 978 .modern-report__insight-label { display: inline-flex; align-items: center; gap: 6px; color: #6d52c7; font-size: 0.68rem; font-weight: 900; letter-spacing: 0.1em; text-transform: uppercase; } 979 .modern-report__insight-label::before { content: ""; width: 7px; height: 7px; border-radius: 999px; background: currentColor; opacity: 0.78; } 980 .modern-report__insight-note { margin-top: 8px; color: #746d80; font-size: 0.85rem; } 981 .modern-report__insight-item .modern-report__chips--compact { justify-content: flex-start; margin-top: 9px; } 982 .modern-report__insight-item--takeaway { --tone-accent: #4f8f68; --tone-accent-soft: #edf7f0; } 983 .modern-report__insight-item--takeaway .modern-report__insight-label { color: #3f7f5a; } 984 .modern-report__insight-item--action { --tone-accent: #4f73c8; --tone-accent-soft: #edf3ff; } 985 .modern-report__insight-item--action .modern-report__insight-label { color: #365fb7; } 986 .modern-report__insight-item--unique { --tone-accent: #7b61c8; --tone-accent-soft: #f1edff; } 987 .modern-report__insight-item--unique .modern-report__insight-label { color: #6d52c7; } 988 .modern-report__insight-item--outlier { --tone-accent: #a36f35; --tone-accent-soft: #fbf0e3; } 989 .modern-report__insight-item--outlier .modern-report__insight-label { color: #9a651f; } 990 .modern-report__section--insights { 991 --insight-accent: #6d52c7; 992 --insight-surface: #f4f0ff; 993 padding: 0; 994 overflow: hidden; 995 border-color: color-mix(in srgb, var(--insight-accent) 20%, #e4ded7); 996 } 997 .modern-report__section--insights-takeaways { --insight-accent: #3f7f5a; --insight-surface: #edf7f0; } 998 .modern-report__section--insights-actions { --insight-accent: #365fb7; --insight-surface: #edf3ff; } 999 .modern-report__section--insights-unique { --insight-accent: #6d52c7; --insight-surface: #f1edff; } 1000 .modern-report__section--insights-outliers { --insight-accent: #9a651f; --insight-surface: #fbf0e3; } 1001 .modern-report__section--insights .modern-report__section-header { 1002 margin: 0; 1003 padding: 14px 18px; 1004 border-bottom: 1px solid color-mix(in srgb, var(--insight-accent) 18%, #fff); 1005 border-left: 5px solid var(--insight-accent); 1006 background: linear-gradient(90deg, var(--insight-surface) 0%, color-mix(in srgb, var(--insight-surface) 32%, #fff) 72%, #fff 100%); 1007 } 1008 .modern-report__section--insights .modern-report__section-icon { 1009 color: var(--insight-accent); 1010 background: color-mix(in srgb, var(--insight-accent) 10%, #fff); 1011 border-color: color-mix(in srgb, var(--insight-accent) 20%, #fff); 1012 } 1013 .modern-report__section--insights .modern-report__section-title { color: color-mix(in srgb, var(--insight-accent) 76%, #14123a); } 1014 .modern-report__section-count { 1015 display: inline-flex; 1016 align-items: center; 1017 justify-content: center; 1018 min-width: 32px; 1019 height: 32px; 1020 padding: 0 9px; 1021 border-radius: 999px; 1022 background: color-mix(in srgb, var(--insight-accent) 10%, #fff); 1023 border: 1px solid color-mix(in srgb, var(--insight-accent) 18%, #fff); 1024 color: var(--insight-accent); 1025 font-size: 0.78rem; 1026 font-weight: 900; 1027 } 1028 .modern-report__section--insights .modern-report__section-body { gap: 10px; padding: 14px 18px 18px; } 1029 .modern-report__section--insights .modern-report__insight-item { 1030 padding: 13px 15px; 1031 background: linear-gradient(90deg, color-mix(in srgb, var(--tone-accent-soft, #f7f4ff) 48%, #fff) 0%, #fff 72%); 1032 border: 1px solid color-mix(in srgb, var(--tone-accent, #8b8a85) 14%, #e8dece); 1033 border-left: 3px solid var(--tone-accent, var(--insight-accent)); 1034 border-radius: 12px; 1035 } 1036 .modern-report__section--insights .modern-report__insight-item + .modern-report__insight-item { margin-top: 0; } 1037 .modern-report__insight-label-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; } 1038 .modern-report__insight-index { color: var(--tone-accent, var(--insight-accent)); font-size: 0.68rem; font-weight: 900; letter-spacing: 0.08em; } 1039 .modern-report__document-footer { width: 100%; max-width: 1320px; margin: 0 auto; padding: 6px 24px 32px; } 1040 .rpt-footer__inner { 1041 display: flex; 1042 align-items: flex-end; 1043 gap: 0; 1044 padding: 32px 0 20px; 1045 border-top: 1px solid rgba(120, 100, 200, 0.14); 1046 }
1047 .rpt-footer__copy { flex: 1 1 0; min-width: 0; padding-right: 32px; } 1048 .rpt-footer__brand-logo { 1049 display: block; 1050 width: auto; 1051 max-width: 156px; 1052 max-height: 52px; 1053 margin: 0 0 18px; 1054 object-fit: contain; 1055 } 1056 .rpt-footer__headline { 1057 margin: 0 0 12px; 1058 font-family: "Spectral Report", Spectral, Georgia, "Times New Roman", serif; 1059 font-size: clamp(1.32rem, 2.4vw, 1.8rem); 1060 font-weight: 400; 1061 font-synthesis: none; 1062 color: #1a1730; 1063 line-height: 1.2; 1064 letter-spacing: -0.01em; 1065 max-width: 760px; 1066 } 1067 .rpt-footer__tagline { 1068 margin: 0 0 24px; 1069 color: #7870a0; 1070 font-size: 0.9rem; 1071 line-height: 1.65; 1072 max-width: 720px; 1073 } 1074 .rpt-footer__meta { display: flex; align-items: center; flex-wrap: wrap; gap: 0; } 1075 .rpt-footer__meta-item { 1076 display: flex; 1077 align-items: center; 1078 gap: 10px; 1079 padding: 6px 24px 6px 0; 1080 } 1081 .rpt-footer__meta-icon { color: #8b6fcc; flex: 0 0 auto; display: flex; align-items: center; } 1082 .rpt-footer__meta-label { 1083 display: block; 1084 font-size: 0.64rem; 1085 font-weight: 700; 1086 letter-spacing: 0.12em; 1087 color: #a090c0; 1088 text-transform: uppercase; 1089 margin-bottom: 2px; 1090 } 1091 .rpt-footer__meta-value { 1092 display: block; 1093 font-size: 0.88rem; 1094 font-weight: 600; 1095 color: #2a2040; 1096 text-decoration: none; 1097 } 1098 .rpt-footer__meta-sep { 1099 width: 1px; 1100 height: 32px; 1101 background: rgba(120, 100, 200, 0.18); 1102 margin-right: 24px; 1103 flex: 0 0 auto; 1104 align-self: center; 1105 } 1106 .rpt-footer__divider { 1107 width: 1px; 1108 align-self: stretch; 1109 background: rgba(120, 100, 200, 0.16); 1110 flex: 0 0 auto; 1111 min-height: 100px; 1112 } 1113 .rpt-footer__qr-zone { 1114 display: flex; 1115 align-items: center; 1116 gap: 12px; 1117 flex: 0 0 auto; 1118 padding-left: 32px; 1119 } 1120 .rpt-footer__scan-label { 1121 writing-mode: vertical-lr; 1122 transform: rotate(180deg); 1123 font-size: 0.6rem; 1124 font-weight: 800; 1125 letter-spacing: 0.22em; 1126 text-transform: uppercase; 1127 color: #8b6fcc; 1128 user-select: none; 1129 } 1130 .rpt-footer__qr-stack { display: flex; flex-direction: column; align-items: center; gap: 8px; } 1131 .rpt-footer__qr-img { 1132 display: block; 1133 width: 130px; 1134 height: 130px; 1135 border-radius: 10px; 1136 border: 1px solid rgba(120, 100, 200, 0.18); 1137 object-fit: contain; 1138 background: #fff; 1139 -webkit-print-color-adjust: exact; 1140 print-color-adjust: exact; 1141 } 1142 .rpt-footer__qr-url { 1143 font-size: 0.8rem; 1144 font-weight: 700; 1145 color: #8b4fdd; 1146 letter-spacing: 0.04em; 1147 text-align: center; 1148 } 1149 .modern-report__page-footer, .modern-report__page-number { display: none; } 1150 .modern-report__response.is-sage, .modern-report__response-icon-wrap.is-sage, .modern-report__chip.is-sage, .modern-report__confidence.is-success { --tone-accent: #648a63; --tone-accent-soft: #e8f1e6; --tone-soft: #f1f7ef; } 1151 .modern-report__response.is-amber, .modern-report__response-icon-wrap.is-amber, .modern-report__chip.is-amber, .modern-report__chip.is-warning, .modern-report__confidence.is-warning, .modern-report__chip.is-finding.is-disagreement, .modern-report__finding.is-disagreement { --tone-accent: #b37c42; --tone-accent-soft: #f6eadb; --tone-soft: #fcf5ec; } 1152 .modern-report__response.is-sky, .modern-report__response-icon-wrap.is-sky, .modern-report__chip.is-sky, .modern-report__chip.is-info, .modern-report__confidence.is-info { --tone-accent: #5f85a6; --tone-accent-soft: #e7eff6; --tone-soft: #f2f7fb; } 1153 .modern-report__response.is-plum, .modern-report__response-icon-wrap.is-plum, .modern-report__chip.is-plum, .modern-report__chip.is-secondary { --tone-accent: #8b6f98; --tone-accent-soft: #f0e8f3; --tone-soft: #f8f2fa; } 1154 .modern-report__response.is-teal, .modern-report__response-icon-wrap.is-teal, .modern-report__chip.is-teal { --tone-accent: #4d8c88; --tone-accent-soft: #e5f1ef; --tone-soft: #eff8f7; } 1155 .modern-report__response.is-rose, .modern-report__response-icon-wrap.is-rose, .modern-report__chip.is-rose, .modern-report__chip.is-danger, .modern-report__chip.is-finding.is-fabrication, .modern-report__finding.is-fabrication { --tone-accent: #aa6671; --tone-accent-soft: #f6e7ea; --tone-soft: #fbf1f2; } 1156 .modern-report__response.is-leaf, .modern-report__response-icon-wrap.is-leaf, .modern-report__chip.is-leaf { --tone-accent: #7f8f51; --tone-accent-soft: #eef1df; --tone-soft: #f7f8ed; } 1157 .modern-report__response.is-sand, .modern-report__response-icon-wrap.is-sand, .modern-report__chip.is-sand { --tone-accent: #99765c; --tone-accent-soft: #f2e7df; --tone-soft: #faf4f0; } 1158 .modern-report__response.is-slate, .modern-report__response-icon-wrap.is-slate, .modern-report__chip.is-slate, .modern-report__chip.is-neutral, .modern-report__chip.is-finding.is-
1158hallucination, .modern-report__finding.is-hallucination { --tone-accent: #6b777c; --tone-accent-soft: #e8edef; --tone-soft: #f4f7f8; } 1159 .modern-report__chip.is-success, .modern-report__chip.is-warning, .modern-report__chip.is-info, .modern-report__chip.is-secondary, .modern-report__chip.is-danger, .modern-report__chip.is-neutral, .modern-report__chip.is-sage, .modern-report__chip.is-amber, .modern-report__chip.is-sky, .modern-report__chip.is-plum, .modern-report__chip.is-teal, .modern-report__chip.is-rose, .modern-report__chip.is-leaf, .modern-report__chip.is-sand, .modern-report__chip.is-slate, .modern-report__chip.is-disagreement, .modern-report__chip.is-hallucination, .modern-report__chip.is-fabrication { background: var(--tone-accent-soft, var(--modern-report-chip-bg)); border-color: color-mix(in srgb, var(--tone-accent, #8b8a85) 28%, #fff); color: color-mix(in srgb, var(--tone-accent, #5b5a55) 90%, #1d1d1b); } 1160 1161 /* Editorial, print-first surface reduction */ 1162 .modern-report { --modern-report-page-bg: #fff; background: #fff; } 1163 .print-report-intro { 1164 padding: 22px 0 26px; 1165 border: 0; 1166 border-bottom: 1px solid #ded8e8; 1167 border-radius: 0; 1168 background: transparent; 1169 box-shadow: none; 1170 } 1171 .print-report-intro__icon, 1172 .print-report-intro__meta-icon, 1173 .print-report-advisory__icon { 1174 width: 30px; 1175 height: 30px; 1176 border: 0; 1177 border-radius: 0; 1178 background: transparent; 1179 } 1180 .print-report-intro__sep { margin-top: 18px; } 1181 .print-report-intro__meta-item { padding: 12px 18px 6px 0; } 1182 .print-report-advisory { 1183 margin-bottom: 28px; 1184 padding: 14px 0; 1185 border: 0; 1186 border-bottom: 1px solid #e6ded1; 1187 border-radius: 0; 1188 background: transparent; 1189 } 1190 .print-report-advisory__label-area { min-width: 72px; padding-right: 16px; } 1191 .print-report-advisory__divider { margin-right: 18px; } 1192 1193 .conversation-report__prompt-card { 1194 grid-template-columns: 42px minmax(0, 1fr); 1195 gap: 14px; 1196 margin-bottom: 22px; 1197 padding: 20px 0 22px; 1198 border: 0; 1199 border-top: 1px solid #d9d3e7; 1200 border-bottom: 1px solid #d9d3e7; 1201 border-radius: 0; 1202 background: transparent; 1203 box-shadow: none; 1204 } 1205 .conversation-report__prompt-icon { 1206 width: 34px; 1207 height: 34px; 1208 border: 0; 1209 border-radius: 0; 1210 background: transparent; 1211 } 1212 .conversation-report__prompt-label { margin-bottom: 8px; } 1213 .conversation-report__prompt-wash { display: none; } 1214 .conversation-report__answer-card { 1215 padding: 22px 0 24px; 1216 border: 0; 1217 border-bottom: 1px solid #ded8d0; 1218 border-radius: 0; 1219 background: transparent; 1220 box-shadow: none; 1221 } 1222 .conversation-report__answer-icon { 1223 width: 30px; 1224 height: 30px; 1225 border: 0; 1226 border-radius: 0; 1227 background: transparent; 1228 } 1229 .conversation-report__answer-body { 1230 font-family: "Spectral Report", Spectral, Georgia, "Times New Roman", serif; 1231 font-size: 1.08rem; 1232 line-height: 1.7; 1233 } 1234 .conversation-report__metrics { 1235 gap: 0; 1236 margin-top: 20px; 1237 border-top: 1px solid #e4ded7; 1238 border-bottom: 1px solid #e4ded7; 1239 } 1240 .conversation-report__metric { 1241 min-height: 52px; 1242 padding: 11px 14px; 1243 border: 0; 1244 border-right: 1px solid #e4ded7; 1245 border-radius: 0; 1246 background: transparent; 1247 box-shadow: none; 1248 } 1249 .conversation-report__metric:last-child { border-right: 0; } 1250 .conversation-report__metric-icon { 1251 width: 28px; 1252 height: 28px; 1253 border: 0; 1254 border-radius: 0; 1255 background: transparent; 1256 } 1257 1258 .modern-report__section, 1259 .quality-snapshot { 1260 margin-top: 32px; 1261 padding: 18px 0 0; 1262 border: 0; 1263 border-top: 1.5px solid #cec7bd; 1264 border-radius: 0; 1265 background: transparent; 1266 box-shadow: none; 1267 } 1268 .modern-report__section-header, 1269 .quality-snapshot .modern-report__section-header { 1270 margin-bottom: 15px; 1271 padding: 0 0 11px; 1272 border-bottom: 1px solid #e5dfd7; 1273 } 1274 .modern-report__section-icon, 1275 .quality-snapshot .modern-report__section-icon { 1276 width: 28px; 1277 height: 28px; 1278 border: 0; 1279 border-radius: 0; 1280 background: transparent; 1281 box-shadow: none; 1282 } 1283 .modern-report__section-title, 1284 .modern-report__subsection-title { 1285 font-size: 0.9rem; 1286 letter-spacing: 0.14em; 1287 } 1288 1289 .quality-snapshot { padding: 18px 0 0; } 1290 .quality-snapshot__index-summary { min-width: 220px; } 1291 .quality-snapshot__status-chip { 1292 min-width: 0; 1293 min-height: 0; 1294 padding: 0 0 0 10px; 1295 border-left: 1px solid #d8d2ca; 1296 border-radius: 0; 1297 background: transparent; 1298 } 1299 .quality-snapshot__overall { 1300 padding: 16px 0; 1301 border: 0; 1302 border-top: 1px solid #e4ded7; 1303 border-bottom: 1px solid #e4ded7; 1304 border-radius: 0; 1305 background: transparent; 1306 } 1307 .quality-snapshot__metrics-grid { gap: 0 28px; margin-top: 8px; } 1308 .quality-snapshot__metric-card { 1309 min-height: 88px; 1310 padding: 15px 0; 1311 border: 0; 1312 border-bottom: 1px solid #e7e1d9; 1313 border-radius: 0; 1314 background: transparent; 1315 } 1316 .quality-snapshot__metric-icon { 1317 width: 40px; 1318 height: 40px; 1319 border: 0; 1320 border-radius: 0; 1321 background: transparent; 1322 box-shadow: none; 1323 } 1324 .quality-snapshot__note { 1325 margin-top: 16px; 1326 padding: 12px 0; 1327 border-top: 1px solid #e5dfd7; 1328 border-radius: 0; 1329 background: transparent; 1330 } 1331 1332 .modern-report__finding-group { 1333 margin-top: 24px; 1334 border: 0; 1335 border-radius: 0; 1336 background: transparent; 1337 box-shadow: none; 1338 overflow: visible; 1339 } 1340 .modern-report__finding-group-header { 1341 padding: 12px 0; 1342 border-top: 2px solid var(--finding-group-accent); 1343 border-bottom: 1px solid #ddd6cd; 1344 background: transparent; 1345 } 1346 .modern-report__finding-group-icon { 1347 width: 28px; 1348 height: 28px; 1349 border: 0; 1350 border-radius: 0; 1351 background: transparent; 1352 } 1353 .modern-report__finding-group-count { 1354 min-width: 0; 1355 height: auto; 1356 padding: 0; 1357 border: 0; 1358 border-radius: 0; 1359 background: transparent; 1360 font-family: "Spectral Report", Spectral, Georgia, serif; 1361 font-size: 1.2rem; 1362 } 1363 .modern-report__finding-group-items { padding: 0; } 1364 .modern-report__finding { 1365 padding: 16px 0; 1366 border: 0; 1367 border-bottom: 1px solid #e7e1d9; 1368 border-radius: 0; 1369 background: transparent; 1370 box-shadow: none; 1371 } 1372 .modern-report__finding + .modern-report__finding { border-top: 0; } 1373 .modern-report__finding-index { 1374 width: 28px; 1375 height: auto; 1376 border: 0; 1377 border-radius: 0; 1378 background: transparent; 1379 } 1380 .modern-report__finding-meta { margin-left: 40px; gap: 6px 0; } 1381 .modern-report__finding-meta-item { 1382 padding: 0 10px; 1383 border: 0; 1384 border-right: 1px solid #ddd6cd; 1385 border-radius: 0; 1386 background: transparent; 1387 } 1388 .modern-report__finding-meta-item:first-child { padding-left: 0; } 1389 .modern-report__finding-meta-item:last-child { border-right: 0; } 1390 .modern-report__finding-details { margin: 14px 0 0 40px; gap: 13px; } 1391 .modern-report__finding-detail { 1392 padding: 0; 1393 border: 0; 1394 border-radius: 0; 1395 background: transparent; 1396 } 1397 .modern-report__finding-comparison .modern-report__finding-detail + .modern-report__finding-detail { 1398 padding-left: 16px; 1399 border-left: 1px solid #ddd6cd; 1400 } 1401 .modern-report__finding-executive-note { 1402 display: flex; 1403 align-items: baseline; 1404 justify-content: space-between; 1405 gap: 18px; 1406 margin: 0 0 18px; 1407 padding: 0 0 12px; 1408 border-bottom: 1px solid #ddd6cd; 1409 color: #716a62; 1410 font-size: 0.8rem; 1411 } 1412 .modern-report__finding-executive-note p { margin: 0; color: #37322d; font-size: 0.92rem; } 1413 .modern-report__finding-digest { 1414 margin-top: 26px; 1415 padding: 16px 0 4px; 1416 border-top: 2px solid #6c63c8; 1417 border-bottom: 1px solid #ddd6cd; 1418 } 1419 .modern-report__finding-digest-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; } 1420 .modern-report__finding-digest-heading h4 { 1421 margin: 0; 1422 color: #25213f; 1423 font-size: 0.95rem; 1424 letter-spacing: 0.08em; 1425 text-transform: uppercase; 1426 } 1427 .modern-report__finding-digest-heading span { color: #756e80; font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.05em; } 1428 .modern-report__finding-digest ul { display: grid; gap: 0; margin: 10px 0 0; padding: 0; list-style: none; } 1429 .modern-report__finding-digest li { 1430 display: grid; 1431 grid-template-columns: 38px minmax(0, 1fr); 1432 gap: 10px; 1433 padding: 9px 0; 1434 border-top: 1px solid #ebe5de; 1435 color: #514b45; 1436 line-height: 1.45; 1437 } 1438 .modern-report__finding-digest li strong { color: #5c4fc2; font-family: "Spectral Report", Spectral, Georgia, serif; font-size: 1.05rem; } 1439 1440 .modern-report__section--insights { 1441 padding: 0; 1442 border: 0; 1443 border-radius: 0; 1444 background: transparent; 1445 box-shadow: none; 1446 overflow: visible; 1447 } 1448 .modern-report__section--insights .modern-report__section-header { 1449 margin: 0; 1450 padding: 11px 0; 1451 border-top: 2px solid var(--insight-accent); 1452 border-right: 0; 1453 border-bottom: 1px solid #ddd6cd; 1454 border-left: 0; 1455 background: transparent; 1456 } 1457 .modern-report__section--insights .modern-report__section-icon { background: transparent; } 1458 .modern-report__section-count { 1459 min-width: 0; 1460 height: auto; 1461 padding: 0; 1462 border: 0; 1463 border-radius: 0; 1464 background: transparent; 1465 font-family: "Spectral Report", Spectral, Georgia, serif; 1466 font-size: 1rem; 1467 } 1468 .modern-report__section--insights .modern-report__section-body { gap: 0; padding: 0; } 1469 .modern-report__section--insights .modern-report__insight-item { 1470 padding: 15px 0; 1471 border: 0; 1472 border-bottom: 1px solid #e7e1d9; 1473 border-radius: 0; 1474 background: transparent; 1475 } 1476 .modern-report__insight-text { 1477 font-family: "Spectral Report", Spectral, Georgia, "Times New Roman", serif; 1478 font-size: 1.04rem; 1479 line-height: 1.58; 1480 } 1481 1482 .modern-report__section--appendix { 1483 margin-top: 44px; 1484 padding-top: 24px; 1485 border-top: 3px double #302b55; 1486 } 1487 .modern-report__appendix-kicker { 1488 margin: 0 0 4px; 1489 color: #7568b9; 1490 font-size: 0.7rem; 1491 font-weight: 800; 1492 letter-spacing: 0.14em; 1493 text-transform: uppercase; 1494 } 1495 .modern-report__response { 1496 padding: 18px 0; 1497 border: 0; 1498 border-bottom: 1px solid #ddd6cd; 1499 border-radius: 0; 1500 background: transparent; 1501 box-shadow: none; 1502 } 1503 .modern-report__response + .modern-report__response { border-top: 0; } 1504 .modern-report__response-icon-wrap { 1505 width: 30px; 1506 height: 30px; 1507 border: 0; 1508 border-radius: 0; 1509 background: transparent; 1510 } 1511 .modern-report__response-technical-meta { margin-left: 42px; } 1512 .modern-report__response-body p, 1513 .modern-report__response-body ul, 1514 .modern-report__response-body ol, 1515 .modern-report__response-body blockquote { 1516 font-family: "Spectral Report", Spectral, Georgia, "Times New Roman", serif; 1517 font-size: 1.01rem; 1518 } 1519 .modern-report__response-body code { 1520 padding: 0; 1521 border-bottom: 1px solid #d8d1c8; 1522 border-radius: 0; 1523 background: transparent; 1524 } 1525 .modern-report__response-body pre { 1526 padding: 10px 0; 1527 border-top: 1px solid #ddd6cd; 1528 border-bottom: 1px solid #ddd6cd; 1529 background: transparent; 1530 } 1531 .modern-report__response-body th { background: transparent; } 1532 1533 .modern-report__chips { gap: 4px 0; } 1534 .modern-report__chip, 1535 .modern-report__chip.is-success, 1536 .modern-report__chip.is-warning, 1537 .modern-report__chip.is-info, 1538 .modern-report__chip.is-secondary, 1539 .modern-report__chip.is-danger, 1540 .modern-report__chip.is-neutral, 1541 .modern-report__chip.is-sage, 1542 .modern-report__chip.is-amber, 1543 .modern-report__chip.is-sky, 1544 .modern-report__chip.is-plum, 1545 .modern-report__chip.is-teal, 1546 .modern-report__chip.is-rose, 1547 .modern-report__chip.is-leaf, 1548 .modern-report__chip.is-sand, 1549 .modern-report__chip.is-slate { 1550 min-height: 0; 1551 padding: 0; 1552 border: 0; 1553 border-radius: 0; 1554 background: transparent; 1555 color: var(--tone-accent, #6f6876); 1556 } 1557 .modern-report__chip + .modern-report__chip::before { 1558 content: "·"; 1559 margin: 0 7px; 1560 color: #aaa1ad; 1561 } 1562 1563 /* Editorial hierarchy: larger serif headings, fewer rules, stronger reading anchors. */ 1564 .print-report-intro { 1565 padding: 18px 0 20px; 1566 border: 0; 1567 } 1568 .print-report-intro__masthead { 1569 display: grid; 1570 grid-template-columns: 132px minmax(0, 1fr) minmax(210px, 0.42fr); 1571 gap: 28px; 1572 align-items: center; 1573 } 1574 .print-report-intro__brand { 1575 align-self: stretch; 1576 display: flex; 1577 flex-direction: column; 1578 justify-content: space-between; 1579 gap: 16px; 1580 } 1581 .modern-report__corner-logo { width: 108px; } 1582 .print-report-intro__header { gap: 8px; margin: 0; } 1583 .print-report-intro__icon { width: 24px; height: 24px; } 1584 .print-report-intro__copy { min-width: 0; } 1585 .print-report-intro__title { 1586 max-width: none; 1587 margin: 0; 1588 color: #211b47; 1589 font-family: "Spectral Report", Spectral, Georgia, "Times New Roman", serif; 1590 font-size: clamp(2rem, 3vw,
15902.75rem); 1591 font-weight: 400; 1592 font-synthesis: none; 1593 line-height: 1.08; 1594 letter-spacing: -0.025em; 1595 } 1596 .print-report-intro__description { 1597 max-width: none; 1598 margin: 8px 0 0; 1599 font-size: 0.88rem; 1600 line-height: 1.45; 1601 } 1602 .print-report-intro__description--secondary { margin-top: 3px; font-size: 0.8rem; } 1603 .print-report-intro__sep { display: none; } 1604 .print-report-intro__meta { 1605 display: flex; 1606 flex-direction: column; 1607 align-items: stretch; 1608 gap: 8px; 1609 margin: 0; 1610 padding-left: 22px; 1611 border-left: 2px solid #7568b9; 1612 } 1613 .print-report-intro__meta-item { flex: none; padding: 3px 0; } 1614 .print-report-intro__meta-sep { display: none; } 1615 .print-report-intro__meta-icon { width: 26px; height: 26px; } 1616 .print-report-intro__meta-value { font-weight: 600; } 1617 .print-report-advisory { margin-bottom: 20px; } 1618 1619 .modern-report__turn-header { 1620 margin-bottom: 8px; 1621 padding-bottom: 0; 1622 border-bottom: 0; 1623 } 1624 .conversation-report__prompt-card { 1625 display: block; 1626 margin: 0 0 24px; 1627 padding: 12px 0 20px; 1628 border: 0; 1629 background: transparent; 1630 box-shadow: none; 1631 } 1632 .conversation-report__prompt-content { position: relative; } 1633 .conversation-report__prompt-label { margin: 0 0 4px 58px; } 1634 .conversation-report__prompt-text { 1635 position: relative; 1636 max-width: none; 1637 margin: 0; 1638 padding: 8px 58px 4px; 1639 font-size: 1.3rem; 1640 font-weight: 400; 1641 line-height: 1.55; 1642 } 1643 .conversation-report__prompt-text::before, 1644 .conversation-report__prompt-text::after { 1645 position: absolute; 1646 color: #7257cf; 1647 font-family: "Spectral Report", Spectral, Georgia, serif; 1648 font-size: 5.2rem; 1649 font-weight: 400; 1650 line-height: 1; 1651 opacity: 0.82; 1652 pointer-events: none; 1653 } 1654 .conversation-report__prompt-text::before { content: "â"; top: -10px; left: 0; } 1655 .conversation-report__prompt-text::after { content: "â"; right: 0; bottom: -28px; } 1656 .conversation-report__prompt-text p + p { margin-top: 0.65em; } 1657 .conversation-report__prompt-date { margin: 10px 0 0 58px; } 1658 1659 .conversation-report__answer-card { 1660 padding: 14px 0 20px; 1661 border: 0; 1662 background: transparent; 1663 box-shadow: none; 1664 } 1665 .conversation-report__answer-icon { width: 30px; height: 30px; border: 0; background: transparent; } 1666 .conversation-report__answer-title { 1667 color: #2a244c; 1668 font-family: "Spectral Report", Spectral, Georgia, "Times New Roman", serif; 1669 font-size: 1.9rem; 1670 font-weight: 400; 1671 font-synthesis: none; 1672 letter-spacing: -0.015em; 1673 text-transform: none; 1674 } 1675 .conversation-report__answer-subtitle { font-size: 0.94rem; } 1676 .conversation-report__answer-sep { display: none; } 1677 .conversation-report__answer-body { margin-top: 13px; font-size: 1.08rem; } 1678 .conversation-report__metrics { border-top: 0; border-bottom: 0; } 1679 1680 .modern-report__section { --section-accent: #5143a5; } 1681 .quality-snapshot { --section-accent: #7b5f3b; } 1682 .modern-report__section--findings { --section-accent: #5949ad; } 1683 .modern-report__section--panel { --section-accent: #426c82; } 1684 .modern-report__section--insights { --section-accent: var(--insight-accent); } 1685 .modern-report__section--responses { --section-accent: #7568b9; } 1686 .modern-report__section--synthesis { --section-accent: #8b6b3b; } 1687 .modern-report__section, 1688 .quality-snapshot { 1689 margin-top: 38px; 1690 padding: 0; 1691 border: 0; 1692 } 1693 .modern-report__section-header, 1694 .quality-snapshot .modern-report__section-header { 1695 margin-bottom: 16px; 1696 padding: 0; 1697 border: 0; 1698 } 1699 .modern-report__section-heading { align-items: flex-start; gap: 14px; } 1700 .modern-report__section-icon, 1701 .quality-snapshot .modern-report__section-icon { 1702 width: 34px; 1703 height: 34px; 1704 color: var(--section-accent); 1705 } 1706 .modern-report__section-title, 1707 .modern-report__subsection-title, 1708 .quality-snapshot .modern-report__section-title { 1709 margin: 0; 1710 color: var(--section-accent); 1711 font-family: "Spectral Report", Spectral, Georgia, "Times New Roman", serif; 1712 font-size: 2rem; 1713 font-weight: 400; 1714 font-synthesis: none; 1715 line-height: 1.1; 1716 letter-spacing: -0.018em; 1717 text-transform: none; 1718 } 1719 .modern-report__section-subtitle, 1720 .quality-snapshot .modern-report__section-subtitle { 1721 margin-top: 5px; 1722 font-size: 0.98rem; 1723 line-height: 1.4; 1724 } 1725 .modern-report__section > .modern-report__section-body, 1726 .modern-report__section > .modern-report__section-children { 1727 margin-left: 14px; 1728 padding-left: 26px; 1729 border-left: 1px dashed color-mix(in srgb, var(--section-accent) 58%, transparent); 1730 } 1731 1732 .modern-report__panel-intro { 1733 display: flex; 1734 align-items: flex-start; 1735 justify-content: space-between; 1736 gap: 24px; 1737 padding: 0 0 16px; 1738 } 1739 .modern-report__panel-name { 1740 margin: 0; 1741 color: #263b47; 1742 font-family: "Spectral Report", Spectral, Georgia, serif; 1743 font-size: 1.55rem; 1744 font-weight: 400; 1745 line-height: 1.15; 1746 } 1747 .modern-report__panel-description { 1748 max-width: 780px; 1749 margin: 5px 0 0; 1750 color: #53646d; 1751 font-size: 0.92rem; 1752 line-height: 1.48; 1753 } 1754 .modern-report__panel-composition { 1755 flex: 0 0 auto; 1756 margin: 4px 0 0; 1757 color: var(--section-accent); 1758 font-size: 0.78rem; 1759 font-weight: 600; 1760 } 1761 .modern-report__panel-models { 1762 display: grid; 1763 grid-template-columns: repeat(2, minmax(0, 1fr)); 1764 gap: 4px 30px; 1765 } 1766 .modern-report__panel-model { 1767 display: grid; 1768 grid-template-columns: 48px minmax(0, 1fr); 1769 gap: 13px; 1770 align-items: start; 1771 padding: 12px 0; 1772 } 1773 .modern-report__panel-model-logo { 1774 width: 44px; 1775 height: 32px; 1776 display: flex; 1777 align-items: center; 1778 justify-content: flex-start; 1779 color: var(--section-accent); 1780 } 1781 .modern-report__panel-model-logo img { display: block; max-width: 42px; max-height: 28px; object-fit: contain; } 1782 .modern-report__panel-model-logo span { font-family: "Spectral Report", Spectral, Georgia, serif; font-size: 1.1rem; } 1783 .modern-report__panel-model-copy { min-width: 0; } 1784 .modern-report__panel-model-provider { 1785 margin: 0 0 2px; 1786 color: var(--section-accent); 1787 font-size: 0.66rem; 1788 font-weight: 600; 1789 letter-spacing: 0.08em; 1790 text-transform: uppercase; 1791 } 1792 .modern-report__panel-model-name { 1793 margin: 0; 1794 color: #26343c; 1795 font-family: "Spectral Report", Spectral, Georgia, serif; 1796 font-size: 1.18rem; 1797 font-weight: 400; 1798 line-height: 1.2; 1799 } 1800 .modern-report__panel-model-description { 1801 margin: 4px 0 0; 1802 color: #66747a; 1803 font-size: 0.8rem; 1804 line-height: 1.4; 1805 } 1806 1807 .quality-snapshot__index-summary { min-width: 190px; } 1808 .quality-snapshot__index-label { 1809 font-family: "Spectral Report", Spectral, Georgia, serif; 1810 font-size: 1.05rem; 1811 font-weight: 400; 1812 letter-spacing: 0; 1813 text-transform: none; 1814 } 1815 .quality-snapshot__index-score { 1816 font-family: "Spectral Report", Spectral, Georgia, serif; 1817 font-size: 2.65rem; 1818 font-weight: 400; 1819 } 1820 .quality-snapshot__overall { padding: 2px 0 16px; border: 0; } 1821 .quality-snapshot__overall-label { 1822 font-family: "Spectral Report", Spectral, Georgia, serif; 1823 font-size: 1.32rem; 1824 font-weight: 400; 1825 letter-spacing: 0; 1826 text-transform: none; 1827 } 1828 .quality-snapshot__overall-line { 1829 margin-top: 4px; 1830 font-size: 0.98rem; 1831 font-weight: 400; 1832 letter-spacing: 0; 1833 text-transform: none; 1834 } 1835 .quality-snapshot__metrics-grid { gap: 0 32px; margin-top: 2px; } 1836 .quality-snapshot__metric-card { min-height: 86px; padding: 14px 0; border: 0; } 1837 .quality-snapshot__metric-title { 1838 font-family: "Spectral Report", Spectral, Georgia, serif; 1839 font-size: 1.16rem; 1840 font-weight: 400; 1841 letter-spacing: 0; 1842 text-transform: none; 1843 } 1844 .quality-snapshot__metric-description { margin-top: 4px; font-size: 0.84rem; } 1845 .quality-snapshot__metric-value { 1846 font-family: "Spectral Report", Spectral, Georgia, serif; 1847 font-size: 1.85rem; 1848 font-weight: 400; 1849 } 1850 .quality-snapshot__note { border-top: 0; } 1851 1852 .modern-report__finding-group { margin-top: 28px; } 1853 .modern-report__finding-group-header { padding: 8px 0 6px; border: 0; } 1854 .modern-report__finding-group-label { 1855 font-family: "Spectral Report", Spectral, Georgia, "Times New Roman", serif; 1856 font-size: 1.52rem; 1857 font-weight: 400; 1858 font-synthesis: none; 1859 line-height: 1.15; 1860 letter-spacing: -0.01em; 1861 text-transform: none; 1862 } 1863 .modern-report__finding-group-subtitle { margin-top: 3px; font-size: 0.96rem; } 1864 .modern-report__finding-group-count { font-size: 1.32rem; font-weight: 400; } 1865 .modern-report__finding { padding: 13px 0; border: 0; } 1866 .modern-report__finding + .modern-report__finding { margin-top: 4px; } 1867 .modern-report__finding-text { 1868 font-family: "Spectral Report", Spectral, Georgia, "Times New Roman", serif; 1869 font-size: 1.1rem; 1870 font-weight: 400; 1871 line-height: 1.48; 1872 } 1873 .modern-report__finding-executive-note { border-bottom: 0; } 1874 .modern-report__finding-digest { border-top-width: 1px; border-bottom: 0; } 1875 1876 .modern-report__section--insights .modern-report__section-header { padding: 0; border: 0; } 1877 .modern-report__section--insights .modern-report__section-body { padding-left: 26px; } 1878 .modern-report__section--insights .modern-report__insight-item { padding: 13px 0; border: 0; } 1879 .modern-report__insight-text { font-size: 1.1rem; } 1880 1881 .modern-report__response { border: 0; } 1882 .modern-report__response + .modern-report__response { border-top: 1px solid #e3ddd5; } 1883 .modern-report__response-icon-wrap { 1884 width: 48px; 1885 height: 34px; 1886 justify-content: flex-start; 1887 } 1888 .modern-report__response-provider-logo { 1889 display: block; 1890 width: auto; 1891 max-width: 44px; 1892 height: auto; 1893 max-height: 30px; 1894 object-fit: contain; 1895 } 1896 .modern-report__response-title { 1897 font-family: "Spectral Report", Spectral, Georgia, "Times New Roman", serif; 1898 font-size: 1.4rem; 1899 font-weight: 400; 1900 font-synthesis: none; 1901 line-height: 1.2; 1902 } 1903 .modern-report__response-body h1, 1904 .modern-report__response-body h2, 1905 .modern-report__response-body h3, 1906 .modern-report__response-body h4, 1907 .modern-report__response-body h5, 1908 .modern-report__response-body h6 { font-family: "Spectral Report", Spectral, Georgia, serif; font-weight: 400; } 1909 1910 .modern-report.is-compact-report .modern-report__section, 1911 .modern-report.is-compact-report .quality-snapshot { margin-top: 28px; } 1912 .modern-report.is-compact-report .modern-report__section-header { margin-bottom: 11px; } 1913 .modern-report.is-compact-report .conversation-report__prompt-card { margin-bottom: 16px; padding-bottom: 14px; } 1914 .modern-report.is-compact-report .conversation-report__answer-card { padding-top: 10px; padding-bottom: 14px; } 1915 .modern-report.is-compact-report .quality-snapshot__metric-card { min-height: 72px; padding: 10px 0; } 1916 .modern-report.is-compact-report .modern-report__finding-group { margin-top: 20px; } 1917 .modern-report.is-compact-report .modern-report__finding, 1918 .modern-report.is-compact-report .modern-report__section--insights .modern-report__insight-item { padding: 9px 0; } 1919 .modern-report.is-compact-report .modern-report__response { padding: 13px 0; } 1920 .modern-report.is-compact-report .modern-report__panel-model { padding: 8px 0; } 1921 .page-break-avoid { break-inside: avoid; page-break-inside: avoid; } 1922 @media (width <=1200px) { 1923 .report-customizer { grid-template-columns: 1fr; }
1924 .report-customizer__controls { grid-template-columns: repeat(3, minmax(190px, 1fr)); } 1925 .report-customizer__reset { justify-self: start; } 1926 } 1927 @media (width <=760px) { 1928 .modern-report__content, .modern-report__document-footer { padding: 18px 16px; } 1929 .print-report-intro__masthead { grid-template-columns: 1fr; gap: 18px; } 1930 .print-report-intro__brand { flex-direction: row; align-items: center; } 1931 .modern-report__corner-logo { width: 92px; } 1932 .print-report-intro__meta { padding: 12px 0 0; border-top: 2px solid #7568b9; border-left: 0; } 1933 .modern-report__chat-facts, .modern-report__response .modern-report__chat-facts { grid-template-columns: 1fr; } 1934 .modern-report__prompt { grid-template-columns: 1fr; } 1935 .modern-report__prompt-avatar-wrap, .modern-report__chips--compact { justify-content: flex-start; } 1936 .modern-report__corner-banner, .modern-report__response-header, .modern-report__turn-header { flex-direction: column; align-items: flex-start; } 1937 .modern-report__section { padding: 14px 0 0; border-radius: 0; } 1938 .modern-report__section-header { align-items: flex-start; } 1939 .modern-report__section-icon { width: 34px; height: 34px; } 1940 .modern-report__response, .modern-report__finding, .modern-report__insight-item { padding-left: 0; } 1941 .modern-report__finding-group-header { align-items: flex-start; } 1942 .modern-report__finding-group-header, .modern-report__finding-group-items { padding-left: 0; padding-right: 0; } 1943 .conversation-report__answer-card { padding: 16px 0; } 1944 .conversation-report__metrics { grid-template-columns: 1fr; } 1945 .conversation-report__metric { border-right: 0; border-bottom: 1px solid #e4ded7; } 1946 .conversation-report__metric:last-child { border-bottom: 0; } 1947 .modern-report__toolbar { margin: 0 8px 12px; top: 6px; } 1948 .modern-report__toolbar-inner { gap: 12px; padding: 12px 14px; flex-wrap: wrap; } 1949 .modern-report__toolbar-identity { flex: 1 1 100%; } 1950 .modern-report__toolbar-actions { flex: 1 1 100%; justify-content: flex-end; flex-wrap: wrap; } 1951 .report-customizer { grid-template-columns: 1fr; padding: 14px; } 1952 .report-customizer__controls { grid-template-columns: 1fr; } 1953 .report-customizer__group-options { grid-template-columns: 1fr; } 1954 .report-customizer__reset { justify-self: start; } 1955 .report-security-notice { left: 8px; right: 8px; bottom: 8px; width: auto; } 1956 .modern-report__finding-executive-note { align-items: flex-start; flex-direction: column; gap: 5px; } 1957 .modern-report__finding-digest-heading { align-items: flex-start; flex-direction: column; gap: 4px; } 1958 .modern-report__section--insights { padding: 0; } 1959 .modern-report__section > .modern-report__section-body, 1960 .modern-report__section > .modern-report__section-children, 1961 .modern-report__section--insights .modern-report__section-body { margin-left: 8px; padding-left: 16px; } 1962 .modern-report__finding-comparison { grid-template-columns: 1fr; } 1963 .modern-report__finding-meta, .modern-report__response-technical-meta { margin-left: 0; } 1964 .print-report-intro { padding: 18px 0; } 1965 .print-report-intro__meta { flex-direction: column; } 1966 .print-report-intro__meta-item { flex: none; padding: 12px 0; border-bottom: 1px solid rgba(110, 90, 200, 0.08); } 1967 .print-report-intro__meta-item:last-child { border-bottom: none; } 1968 .print-report-intro__meta-sep { display: none; } 1969 .print-report-advisory { flex-direction: column; } 1970 .print-report-advisory__label-area { flex-direction: row; min-width: auto; padding-right: 0; padding-bottom: 12px; } 1971 .print-report-advisory__divider { display: none; } 1972 .quality-snapshot__overall { flex-direction: column; align-items: stretch; } 1973 .quality-snapshot__metrics-grid { grid-template-columns: 1fr; } 1974 .quality-snapshot__metric-card { grid-template-columns: 48px minmax(0, 1fr); } 1975 .quality-snapshot__metric-score { grid-column: 2; text-align: left; } 1976 .modern-report__panel-intro { flex-direction: column; gap: 8px; } 1977 .modern-report__panel-models { grid-template-columns: 1fr; } 1978 .rpt-footer__inner { flex-direction: column; align-items: flex-start; padding-bottom: 24px; } 1979 .rpt-footer__divider { display: none; }
1980 .rpt-footer__copy { padding-right: 0; } 1981 .rpt-footer__qr-zone { padding-left: 0; padding-top: 24px; } 1982 .rpt-footer__meta { gap: 4px 0; } 1983 } 1984 1985 @media print { 1986 @page { size: a4 portrait; margin: 14mm 10mm; } 1987 @page :first { margin-top: 0; } 1988 body { padding: 0; background: #fff; } 1989 .modern-report__toolbar, .report-security-notice { display: none !important; } 1990 .modern-report { min-height: auto; font-size: 10pt; zoom: 0.7; } 1991 .modern-report__content { max-width: none; padding: 4mm 8mm; } 1992 .print-report-intro { box-shadow: none; padding: 14px 0 16px; background: transparent; break-inside: avoid; page-break-inside: avoid; } 1993 .print-report-intro__title { font-size: 18pt; } 1994 .print-report-intro__description { font-size: 9pt; } 1995 .print-report-advisory { box-shadow: none; padding: 10px 0; margin-bottom: 8mm; background: transparent; break-inside: avoid; page-break-inside: avoid; } 1996 .print-report-advisory__text { font-size: 8.6pt; line-height: 1.5; } 1997 .modern-report__timeline { gap: 0; } 1998 .modern-report__turn + .modern-report__turn { break-before: page; border-top: 0; padding-top: 0; } 1999 .modern-report__turn-header { border-top: 2.5pt solid var(--modern-report-heading); border-bottom: 1pt solid var(--modern-report-divider); padding: 5mm 0 3mm; margin-bottom: 6mm; font-size: 9pt; break-after: avoid; } 2000 .modern-report__prompt { break-after: avoid; padding: 4.5mm 5mm; border-radius: 14px; box-shadow: none; } 2001 .conversation-report__prompt-card { 2002 padding: 4.5mm 0; 2003 border: 0; 2004 border-top: 0.75pt solid #d9d3e7; 2005 border-bottom: 0.75pt solid #d9d3e7; 2006 border-radius: 0; 2007 background: transparent; 2008 } 2009 .conversation-report__prompt-text { font-size: 11.5pt; line-height: 1.56; } 2010 .conversation-report__answer-card, .modern-report__section, .quality-snapshot { box-shadow: none; background: transparent; } 2011 .conversation-report__answer-card { padding: 5mm 0; border-radius: 0; } 2012 .conversation-report__metrics { grid-template-columns: minmax(58mm, 2.2fr) repeat(3, minmax(18mm, 0.62fr)); } 2013 .conversation-report__metric { min-width: 0; } 2014 .conversation-report__metric:nth-child(-n + 2) { border-bottom: 0; } 2015 .modern-report__section { margin-top: 7mm; padding: 5mm 0 0; border-radius: 0; break-inside: auto; page-break-inside: auto; } 2016 .modern-report__section-header { border-bottom: 0.5pt solid var(--modern-report-divider); padding-bottom: 3mm; margin-bottom: 5mm; break-after: avoid; } 2017 .modern-report__response { break-inside: auto; page-break-inside: auto; } 2018 .quality-snapshot { 2019 display: inline-block; 2020 width: 100%; 2021 break-inside: avoid; 2022 page-break-inside: avoid; 2023 } 2024 .quality-snapshot.has-print-snapshot > :not(.quality-snapshot__print-image) { 2025 display: none !important; 2026 } 2027 .quality-snapshot.has-print-snapshot .quality-snapshot__print-image { 2028 display: block; 2029 width: 100%; 2030 height: auto; 2031 -webkit-print-color-adjust: exact; 2032 print-color-adjust: exact; 2033 } 2034 .modern-report__finding, 2035 .modern-report__insight-item { 2036 display: inline-block; 2037 width: 100%; 2038 break-inside: avoid; 2039 page-break-inside: avoid; 2040 } 2041 .modern-report__response + .modern-report__response { margin-top: 0; } 2042 .modern-report__response-body, .conversation-report__answer-body { line-height: 1.58; } 2043 .modern-report__chip, .modern-report__finding-label { border-color: transparent; background: transparent; color: #333; } 2044 .quality-snapshot__metric-card, .quality-snapshot__overall { background: transparent; box-shadow: none; } 2045 .modern-report__finding-group { 2046 box-shadow: none; 2047 background: transparent; 2048 break-inside: auto; 2049 page-break-inside: auto; 2050 } 2051 .modern-report__finding-group-header { 2052 padding: 4mm 0 3mm; 2053 background: transparent; 2054 break-after: avoid; 2055 page-break-after: avoid; 2056 } 2057 .modern-report__finding-group-items { display: block; padding: 2mm 0 4mm; } 2058 .modern-report__finding-group + .modern-report__finding-group { margin-top: 5mm; } 2059 .modern-report__finding-text { font-size: 1rem; line-height: 1.5; } 2060 .modern-report__finding-detail { font-size: 0.92rem; line-height: 1.52; } 2061 .modern-report__finding-executive-note, 2062 .modern-report__finding-digest { break-inside: avoid; page-break-inside: avoid; } 2063 .modern-report__section--insights { 2064 display: inline-block; 2065 width: 100%; 2066 padding: 0; 2067 overflow: visible; 2068 border-radius: 0; 2069 break-inside: avoid; 2070 page-break-inside: avoid; 2071 -webkit-print-color-adjust: exact; 2072 print-color-adjust: exact; 2073 } 2074 .modern-report__section--insights .modern-report__section-header { 2075 margin: 0; 2076 padding: 3mm 0; 2077 border-top: 1.5pt solid var(--insight-accent); 2078 border-bottom: 0.75pt solid color-mix(in srgb, var(--insight-accent) 24%, #ddd); 2079 border-left: 0; 2080 background: transparent; 2081 -webkit-print-color-adjust: exact; 2082 print-color-adjust: exact; 2083 } 2084 .modern-report__section--insights .modern-report__section-body { gap: 0; padding: 0; } 2085 .modern-report__section--insights .modern-report__insight-item { 2086 padding: 3mm 0; 2087 background: transparent; 2088 border: 0; 2089 border-bottom: 0.6pt solid #ddd6cd; 2090 border-radius: 0; 2091 break-inside: avoid; 2092 page-break-inside: avoid; 2093 } 2094 .modern-report__section--appendix { 2095 display: block; 2096 width: auto; 2097 margin-top: 0; 2098 padding-top: 4mm; 2099 break-before: page; 2100 page-break-before: always; 2101 border-top: 3pt double #302b55; 2102 } 2103 .modern-report__section--appendix .modern-report__section-header, 2104 .modern-report__response-header, 2105 .modern-report__response-technical-meta { break-after: avoid; page-break-after: avoid; } 2106 .modern-report__response-body > :first-child { break-before: avoid; page-break-before: avoid; } 2107 .modern-report__response-body pre, .modern-report__response-body table { break-inside: avoid; page-break-inside: avoid; } 2108 .modern-report__document-footer { max-width: none; padding: 4mm 6mm 6mm; } 2109 .rpt-footer__inner { break-inside: avoid; page-break-inside: avoid; padding: 6mm 0 4mm; } 2110 .rpt-footer__brand-logo { max-width: 30mm; max-height: 11mm; margin-bottom: 3mm; } 2111 .rpt-footer__headline { font-size: 20pt; line-height: 1.08; } 2112 .rpt-footer__tagline { max-width: 122mm; font-size: 11pt; line-height: 1.45; } 2113 .rpt-footer__meta-value { font-size: 9.5pt; } 2114 .rpt-footer__qr-img { -webkit-print-color-adjust: exact; print-color-adjust: exact; } 2115 2116 .print-report-intro { padding: 3mm 0 4mm; border: 0; } 2117 .print-report-intro__masthead { 2118 grid-template-columns: 26mm minmax(0, 1fr) 44mm; 2119 gap: 5mm; 2120 align-items: center; 2121 } 2122 .print-report-intro__brand { gap: 3mm; } 2123 .modern-report__corner-logo { width: 23mm; } 2124 .print-report-intro__header { gap: 1.5mm; } 2125 .print-report-intro__icon { width: 5mm; height: 5mm; } 2126 .print-report-intro__eyebrow { font-size: 6.5pt; letter-spacing: 0.12em; } 2127 .print-report-intro__title { font-size: 21pt; font-weight: 400; line-height: 1.06; } 2128 .print-report-intro__description { margin-top: 1.5mm; font-size: 8.4pt; line-height: 1.35; } 2129 .print-report-intro__description--secondary { margin-top: 0.6mm; font-size: 7.6pt; } 2130 .print-report-intro__meta { gap: 1.5mm; padding-left: 4mm; border-left-width: 1.5pt; } 2131 .print-report-intro__meta-item { gap: 2mm; padding: 0.7mm 0; } 2132 .print-report-intro__meta-icon { width: 5mm; height: 5mm; } 2133 .print-report-intro__meta-label { font-size: 6pt; } 2134 .print-report-intro__meta-value { font-size: 8.2pt; font-weight: 600; } 2135 .print-report-advisory { padding: 2.5mm 0; margin-bottom: 4mm; } 2136 2137 .modern-report__turn-header { margin-bottom: 2mm; padding: 0; border: 0; } 2138 .conversation-report__prompt-card { margin-bottom: 4mm; padding: 2mm 0 4mm; border: 0; } 2139 .conversation-report__prompt-label { margin-left: 10mm; } 2140 .conversation-report__prompt-text { padding: 1mm 10mm; font-size: 12.5pt; font-weight: 400; line-height: 1.48; } 2141 .conversation-report__prompt-text::before, 2142 .conversation-report__prompt-text::after { font-size: 38pt; } 2143 .conversation-report__prompt-text::before { top: -2mm; } 2144 .conversation-report__prompt-text::after { bottom: -5mm; } 2145 .conversation-report__prompt-date { margin: 2mm 0 0 10mm; } 2146 2147 .conversation-report__answer-card { padding: 3mm 0 4mm; border: 0; } 2148 .conversation-report__answer-title { font-size: 18pt; font-weight: 400; } 2149 .conversation-report__answer-body { margin-top: 2.5mm; } 2150 .conversation-report__metrics { 2151 grid-template-columns: minmax(58mm, 2.2fr) repeat(3, minmax(18mm, 0.62fr)); 2152 border: 0; 2153 } 2154 .conversation-report__metric { padding: 2mm 2.4mm; border-bottom: 0; } 2155 .conversation-report__metric:first-child { padding-left: 0; } 2156 .conversation-report__metric:last-child { padding-right: 0; border-right: 0; } 2157 2158 .modern-report__section { margin-top: 5.5mm; padding: 0; border: 0; } 2159 .modern-report__section-header { margin-bottom: 3.5mm; padding: 0; border: 0; } 2160 .modern-report__section-title, 2161 .modern-report__subsection-title, 2162 .quality-snapshot .modern-report__section-title { font-size: 21pt; font-weight: 400; line-height: 1.08; } 2163 .modern-report__section-subtitle, 2164 .quality-snapshot .modern-report__section-subtitle { font-size: 9.5pt; line-height: 1.35; } 2165 .modern-report__section > .modern-report__section-body, 2166 .modern-report__section > .modern-report__section-children, 2167 .modern-report__section--insights .modern-report__section-body { 2168 margin-left: 2mm; 2169 padding-left: 5mm; 2170 border-left: 0.75pt dashed color-mix(in srgb, var(--section-accent) 58%, transparent); 2171 } 2172 2173 .modern-report__panel-intro { padding-bottom: 2.5mm; } 2174 .modern-report__panel-name { font-size: 14pt; font-weight: 400; } 2175 .modern-report__panel-description { font-size: 8.8pt; } 2176 .modern-report__panel-models { gap: 1mm 6mm; } 2177 .modern-report__panel-model { padding: 2mm 0; break-inside: avoid; page-break-inside: avoid; } 2178 .modern-report__panel-model-name { font-size: 11.5pt; font-weight: 400; } 2179 .modern-report__panel-model-description { font-size: 8pt; } 2180 2181 .quality-snapshot__overall { padding: 0 0 3mm; border: 0; } 2182 .quality-snapshot__index-score { font-size: 24pt; font-weight: 400; } 2183 .quality-snapshot__overall-label { font-size: 14pt; font-weight: 400; } 2184 .quality-snapshot__metric-card { padding: 2.5mm 0; border: 0; } 2185 .quality-snapshot__metric-title { font-size: 12.5pt; font-weight: 400; } 2186 .quality-snapshot__metric-value { font-size: 18pt; font-weight: 400; } 2187 .quality-snapshot__note { border: 0; } 2188 2189 .modern-report__finding-group-header { padding: 2mm 0 1mm; border: 0; } 2190 .modern-report__finding-group-label { font-size: 15.5pt; font-weight: 400; } 2191 .modern-report__finding-group-subtitle { font-size: 9.5pt; } 2192 .modern-report__finding { padding: 2.5mm 0; border: 0; } 2193 .modern-report__finding-text { font-size: 11.5pt; font-weight: 400; line-height: 1.45; } 2194 .modern-report__section--insights .modern-report__section-header { padding: 0; border: 0; } 2195 .modern-report__section--insights .modern-report__insight-item { padding: 2.5mm 0; border: 0; } 2196 2197 .modern-report__response { border: 0; } 2198 .modern-report__response + .modern-report__response { border-top: 0.6pt solid #e3ddd5; } 2199 .modern-report__response-title { font-size: 14pt; font-weight: 400; } 2200 .modern-report__response-provider-logo { max-width: 10mm; max-height: 7mm; } 2201 2202 .modern-report.is-compact-report .modern-report__section, 2203 .modern-report.is-compact-report .quality-snapshot { margin-top: 4.5mm; } 2204 .modern-report.is-compact-report .modern-report__section-header { margin-bottom: 2.5mm; } 2205 .modern-report.is-compact-report .quality-snapshot__metric-card, 2206 .modern-report.is-compact-report .modern-report__finding, 2207 .modern-report.is-compact-report .modern-report__section--insights .modern-report__insight-item { padding-top: 1.8mm; padding-bottom: 1.8mm; } 2208 .modern-report.is-compact-report .modern-report__panel-model { padding-top: 1.4mm; padding-bottom: 1.4mm; } 2209 2210 .modern-report.has-section-page-breaks .modern-report__section[data-report-section]:not(.is-report-hidden) { 2211 margin-top: 0; 2212 padding-top: 4mm; 2213 break-before: page; 2214 page-break-before: always; 2215 } 2216 } 2217 </style> 2218 </head> 2219 <body> 2220 <main class="modern-report is-executive-report is-compact-report"> 2221 <div class="modern-report__toolbar"> 2222 <div class="modern-report__toolbar-inner"> 2223 <div class="modern-report__toolbar-identity"> 2224 <div class="modern-report__toolbar-icon-tile" aria-hidden="true"> 2225 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" width="20" height="20"><polyline points="6 9 6 2 18 2 18 9"/><path d="M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2"/><rect x="6" y="14" width="12" height="8"/></svg> 2226 </div> 2227 <div class="modern-report__toolbar-text"> 2228 <div class="modern-report__toolbar-title">${l}</div> 2229 <div class="modern-report__toolbar-subtitle">${u} print preview</div> 2230 </div> 2231 </div> 2232 <div class="modern-report__toolbar-actions"> 2233 <button id="report-customizer-toggle" type="button" class="modern-report__toolbar-button--customize" aria-controls="report-customizer" aria-expanded="false"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" width="15" height="15" aria-hidden="true"><line x1="4" y1="21" x2="4" y2="14"/><line x1="4" y1="10" x2="4" y2="3"/><line x1="12" y1="21" x2="12" y2="12"/><line x1="12" y1="8" x2="12" y2="3"/><line x1="20" y1="21" x2="20" y2="16"/><line x1="20" y1="12" x2="20" y2="3"/>
2233<line x1="1" y1="14" x2="7" y2="14"/><line x1="9" y1="8" x2="15" y2="8"/><line x1="17" y1="16" x2="23" y2="16"/></svg>Customize <span id="report-customizer-status" class="report-customizer__button-status">Executive</span></button> 2234 <button id="report-print-button" type="button" class="modern-report__toolbar-button--primary"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" width="15" height="15" aria-hidden="true"><polyline points="6 9 6 2 18 2 18 9"/><path d="M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2"/><rect x="6" y="14" width="12" height="8"/></svg>Print / Save PDF</button> 2235 <button id="report-close-button" type="button" class="modern-report__toolbar-button--secondary"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" width="14" height="14" aria-hidden="true"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg>Close</button> 2236 </div> 2237 </div> 2238 <div id="report-customizer" class="report-customizer" hidden> 2239 <div class="report-customizer__copy"> 2240 <p class="report-customizer__title">Customize report</p> 2241 <p class="report-customizer__description">Choose what to include and how the report should flow on the page.</p> 2242 <div class="report-customizer__presets" aria-label="Report presets"> 2243 <button type="button" class="report-customizer__preset is-active" data-report-preset="executive" aria-pressed="true">Executive</button> 2244 <button type="button" class="report-customizer__preset" data-report-preset="full" aria-pressed="false">Full evidence</button> 2245 </div> 2246 </div> 2247 <div class="report-customizer__controls"> 2248 <fieldset class="report-customizer__group report-customizer__group--content"> 2249 <legend class="report-customizer__group-title">Content</legend> 2250 <div class="report-customizer__group-options"> 2251 <label class="report-customizer__option"><span>Prompt</span><input class="report-customizer__switch" type="checkbox" data-report-control="prompt" checked></label> 2252 <label class="report-customizer__option"><span>Distilled answer</span><input class="report-customizer__switch" type="checkbox" data-report-control="answer" checked></label> 2253 <label class="report-customizer__option"><span>Panel overview</span><input class="report-customizer__switch" type="checkbox" data-report-control="panel" checked></label> 2254 <label class="report-customizer__option"><span>Quality snapshot</span><input class="report-customizer__switch" type="checkbox" data-report-control="quality" checked></label> 2255 <label class="report-customizer__option"><span>Validation findings</span><input class="report-customizer__switch" type="checkbox" data-report-control="findings" checked></label> 2256 <label class="report-customizer__option"><span>Insights</span><input class="report-customizer__switch" type="checkbox" data-report-control="insights" checked></label> 2257 </div> 2258 </fieldset> 2259 <fieldset class="report-customizer__group report-customizer__group--evidence"> 2260 <legend class="report-customizer__group-title">Evidence</legend> 2261 <div class="report-customizer__group-options"> 2262 <label class="report-customizer__option"><span>Score details</span><input class="report-customizer__switch" type="checkbox" data-report-control="score-details" checked></label> 2263 <label class="report-customizer__option"><span>Original model answers</span><input class="report-customizer__switch" type="checkbox" data-report-control="responses"></label> 2264 <label class="report-customizer__option"><span>Model details</span><input class="report-customizer__switch" type="checkbox" data-report-control="metadata"></label> 2265 </div> 2266 </fieldset> 2267 <fieldset class="report-customizer__group report-customizer__group--layout"> 2268 <legend class="report-customizer__group-title">Layout</legend> 2269 <div class="report-customizer__group-options"> 2270 <label class="report-customizer__option"><span>Compact layout</span><input class="report-customizer__switch" type="checkbox" data-report-control="compact" checked></label> 2271 <label class="report-customizer__option"><span>New page per section</span><input class="report-customizer__switch" type="checkbox" data-report-control="page-breaks"></label> 2272 <label class="report-customizer__option"><span>Brand footer</span><input class="report-customizer__switch" type="checkbox" data-report-control="brand-footer" checked></label> 2273 </div> 2274 </fieldset> 2275 </div> 2276 <button id="report-customizer-reset" type="button" class="report-customizer__reset">Executive defaults</button> 2277 </div> 2278 <div class="modern-report__toolbar-accent"></div> 2279 </div> 2280 <aside id="report-security-notice" class="report-security-notice" aria-labelledby="report-security-notice-title"> 2281 <div class="report-security-notice__icon" aria-hidden="true"> 2282 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" width="20" height="20"><rect x="3" y="11" width="18" height="10" rx="2"/><path d="M7 11V7a5 5 0 0 1 10 0v4"/></svg> 2283 </div> 2284 <div> 2285 <p class="report-security-notice__eyebrow">Private preview</p> 2286 <p id="report-security-notice-title" class="report-security-notice__title">This preview cannot be shared by URL</p> 2287 <p class="report-security-notice__text">For security, print the report or save it as a PDF, then send the file by email.</p> 2288 </div> 2289 <button id="report-security-notice-close" type="button" class="report-security-notice__close" aria-label="Dismiss sharing notice"> 2290 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" width="16" height="16" aria-hidden="true"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg> 2291 </button> 2292 </aside> 2293 ${f} 2294 <div class="modern-report__content"> 2295 <div class="modern-report__timeline"> 2296 ${t} 2297 </div> 2298 </div> 2299 ${p} 2300 </main> 2301 <script> 2302 (function () { 2303 var report = document.querySelector('.modern-report'); 2304 var panel = document.getElementById('report-customizer'); 2305 var toggleButton = document.getElementById('report-customizer-toggle'); 2306 var status = document.getElementById('report-customizer-status'); 2307 var resetButton = document.getElementById('report-customizer-reset'); 2308 var printButton = document.getElementById('report-print-button'); 2309 var closeButton = document.getElementById('report-close-button'); 2310 var securityNotice = document.getElementById('report-security-notice'); 2311 var securityNoticeClose = document.getElementById('report-security-notice-close'); 2312 var controls = Array.prototype.slice.call(document.querySelectorAll('[data-report-control]')); 2313 var presetButtons = Array.prototype.slice.call(document.querySelectorAll('[data-report-preset]')); 2314 var evidenceMode = 'executive'; 2315 var presetValues = { 2316 executive: { prompt: true, answer: true, panel: true, quality: true, 'score-details': true, findings: true, insights: true, responses: false, metadata: false, compact: true, 'page-breaks': false, 'brand-footer': true }, 2317 full: { prompt: true, answer: true, panel: true, quality: true, 'score-details': true, findings: true, insights: true, responses: true, metadata: true, compact: true, 'page-breaks': false, 'brand-footer': true } 2318 }; 2319 2320 function getTargets(key) { 2321 if (key === 'compact' || key === 'page-breaks') { 2322 return [report]; 2323 } 2324 if (key === 'metadata') { 2325 return Array.prototype.slice.call(document.querySelectorAll('[data-report-metadata="response"]')); 2326 } 2327 return Array.prototype.slice.call(document.querySelectorAll('[data-report-section="' + key + '"]')); 2328 } 2329 2330 function applyControl(control) { 2331 var isVisible = control.checked; 2332 var key = control.getAttribute('data-report-control'); 2333 if (key === 'compact') { 2334 report.classList.toggle('is-compact-report', isVisible); 2335 return; 2336 } 2337 if (key === 'page-breaks') { 2338 report.classList.toggle('has-section-page-breaks', isVisible); 2339 return; 2340 }
2341 getTargets(key).forEach(function (element) { 2342 element.classList.toggle('is-report-hidden', !isVisible); 2343 }); 2344 } 2345 2346 function syncDependentControl(parentKey, childKey) { 2347 var parentControl = document.querySelector('[data-report-control="' + parentKey + '"]'); 2348 var childControl = document.querySelector('[data-report-control="' + childKey + '"]'); 2349 if (!parentControl || !childControl || childControl.getAttribute('data-has-targets') !== 'true') return; 2350 childControl.disabled = parentControl.disabled || !parentControl.checked; 2351 childControl.closest('.report-customizer__option').classList.toggle('is-unavailable', childControl.disabled); 2352 } 2353 2354 function syncDependentControls() { 2355 syncDependentControl('responses', 'metadata'); 2356 syncDependentControl('quality', 'score-details'); 2357 } 2358 2359 function setEvidenceMode(mode) { 2360 evidenceMode = mode === 'full' ? 'full' : 'executive'; 2361 report.classList.toggle('is-executive-report', evidenceMode === 'executive'); 2362 report.classList.toggle('is-full-evidence-report', evidenceMode === 'full'); 2363 } 2364 2365 function matchesPreset(name) { 2366 var values = presetValues[name]; 2367 if (!values || evidenceMode !== name) return false; 2368 return controls.every(function (control) { 2369 if (control.getAttribute('data-has-targets') !== 'true') return true; 2370 return control.checked === values[control.getAttribute('data-report-control')]; 2371 }); 2372 } 2373 2374 function updateStatus() { 2375 var activePreset = matchesPreset('executive') 2376 ? 'executive' 2377 : matchesPreset('full') 2378 ? 'full' 2379 : null; 2380 status.textContent = activePreset === 'executive' ? 'Executive' : activePreset === 'full' ? 'Full' : 'Custom'; 2381 presetButtons.forEach(function (button) { 2382 var isActive = button.getAttribute('data-report-preset') === activePreset; 2383 button.classList.toggle('is-active', isActive); 2384 button.setAttribute('aria-pressed', isActive ? 'true' : 'false'); 2385 }); 2386 } 2387 2388 function applyPreset(name) { 2389 var values = presetValues[name] || presetValues.executive; 2390 setEvidenceMode(name); 2391 controls.forEach(function (control) { 2392 if (control.getAttribute('data-has-targets') !== 'true') return; 2393 control.checked = values[control.getAttribute('data-report-control')]; 2394 applyControl(control); 2395 }); 2396 syncDependentControls(); 2397 updateStatus(); 2398 } 2399 2400 controls.forEach(function (control) { 2401 var hasTargets = getTargets(control.getAttribute('data-report-control')).length > 0; 2402 control.setAttribute('data-has-targets', hasTargets ? 'true' : 'false'); 2403 if (!hasTargets) { 2404 control.checked = false; 2405 control.disabled = true; 2406 control.closest('.report-customizer__option').classList.add('is-unavailable'); 2407 } 2408 applyControl(control); 2409 control.addEventListener('change', function () { 2410 applyControl(control); 2411 syncDependentControls(); 2412 updateStatus(); 2413 }); 2414 }); 2415 2416 syncDependentControls(); 2417 updateStatus(); 2418 2419 presetButtons.forEach(function (button) { 2420 button.addEventListener('click', function () { 2421 applyPreset(button.getAttribute('data-report-preset')); 2422 }); 2423 }); 2424 2425 toggleButton.addEventListener('click', function () { 2426 var willOpen = panel.hasAttribute('hidden'); 2427 panel.toggleAttribute('hidden', !willOpen); 2428 toggleButton.setAttribute('aria-expanded', willOpen ? 'true' : 'false'); 2429 }); 2430 2431 resetButton.addEventListener('click', function () { 2432 applyPreset('executive'); 2433 }); 2434 2435 printButton.addEventListener('click', function () { 2436 if (document.fonts && document.fonts.ready) { 2437 document.fonts.ready.then(function () { window.print(); }, function () { window.print(); }); 2438 return; 2439 } 2440 window.print(); 2441 }); 2442 2443 closeButton.addEventListener('click', function () { window.close(); }); 2444 if (securityNotice && securityNoticeClose) { 2445 securityNoticeClose.addEventListener('click', function () { securityNotice.remove(); }); 2446 } 2447 document.addEventListener('keydown', function (event) { 2448 if (event.key === 'Escape' && !panel.hasAttribute('hidden')) { 2449 panel.setAttribute('hidden', ''); 2450 toggleButton.setAttribute('aria-expanded', 'false'); 2451 toggleButton.focus(); 2452 } 2453 }); 2454 })(); 2455 <\/script> 2456 </body> 2457 </html> 2458 `}function H(e){let t=String(e?.modelName||``).toLowerCase();return t.includes(`claude`)?`is-sand`:t.includes(`gpt`)||t.includes(`codex`)?`is-sage`:t.includes(`gemini`)?`is-sky`:t.includes(`deepseek`)?`is-teal`:t.includes(`qwen`)?`is-plum`:t.includes(`llama`)?`is-amber`:`is-slate`}function ve(e,{getValidationQualityScoreEntries:t,hasValue:n,escapeHtml:r}={}){let i=t(e).filter(e=>n(e?.value));if(!i.length)return``;let a=e=>i.find(t=>t.key===e)||{value:null},o=a(`qualityIndexScore`).value;function s(e,t=!0){if(e==null)return``;let n=Number(e);return Number.isFinite(n)?t?n<=24?`WEAK`:n<=49?`MEDIUM`:n<=69?`MODERATE`:n<=84?`STRONG`:`EXCELLENT`:n<=9?`VERY LOW`:n<=24?`LOW`:n<=49?`MEDIUM`:n<=74?`HIGH`:`CRITICAL`:``}function c(e){let t=Number(e);return Number.isFinite(t)?Math.max(0,Math.min(100,Math.round(t))):0}let l=e=>[`verificationRequiredCount`,`unsupportedSpecificClaimCount`].includes(e),u={hallucinationRisk:`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="26" height="26" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="9"/><line x1="12" y1="7" x2="12" y2="12"/>
2458<line x1="12" y1="16" x2="12.01" y2="16"/></svg>`,fabricationRisk:`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="26" height="26" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2 4 6v6c0 5 3.4 8.2 8 10 4.6-1.8 8-5 8-10V6l-8-4Z"/><path d="M12 8v5"/><path d="M12 17h.01"/></svg>`,consensusScore:`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="26" height="26" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"><path d="M8 21v-2a4 4 0 0 1 8 0v2"/><circle cx="12" cy="7" r="4"/><path d="M3 21v-2a4 4 0 0 1 3-3.87"/><path d="M21 21v-2a4 4 0 0 0-3-3.87"/></svg>`,confidenceScore:`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="26" height="26" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 3 5 6v6c0 4 3 7.2 7 9 4-1.8 7-5 7-9V6l-7-3Z"/><path d="M12 8v5"/><path d="M12 17h.01"/></svg>`,panelIntegrityScore:`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="26" height="26" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 3 5 6v6c0 4 3 7.2 7 9 4-1.8 7-5 7-9V6l-7-3Z"/><path d="m9 12 2 2 4-5"/></svg>`,verificationRequiredCount:`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="26" height="26" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"><path d="M7 3h7l4 4v14H7z"/><path d="M14 3v5h5"/><path d="M10 12h4"/><path d="M10 16h6"/></svg>`,unsupportedSpecificClaimCount:`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="26" height="26" fill="none" stroke="currentColor" stroke-width="2.1" stroke-linecap="round" stroke-linejoin="round"><path d="M12 3v18"/><path d="M5 8h14"/><path d="m6 8-3 7h6L6 8Z"/><path d="m18 8-3 7h6l-3-7Z"/></svg>`,dominantRiskScore:`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="26" height="26" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 3v18h18"/><path d="m7 15 4-4 3 3 5-7"/><path d="M19 7v5h-5"/></svg>`};return` 2459 <section class="modern-report__section quality-snapshot page-break-avoid" data-report-section="quality"> 2460 <div class="modern-report__section-header"> 2461 <div class="modern-report__section-heading"> 2462 <span class="modern-report__section-icon" aria-hidden="true">${u.dominantRiskScore}</span> 2463 <div> 2464 <h3 class="modern-report__section-title">Quality Snapshot</h3> 2465 <p class="modern-report__section-subtitle">A quick view of answer quality, confidence, and risk.</p> 2466 </div> 2467 </div> 2468 <div class="quality-snapshot__index-summary"> 2469 <div class="quality-snapshot__index-label">Quality Index</div> 2470 <div class="quality-snapshot__index-score">${n(o)?r(String(Math.round(Number(o)))):`â`}<span class="quality-snapshot__index-denom">/100</span></div> 2471 <div class="quality-snapshot__status-chip">${n(o)?r(s(Number(o),!0)):``}</div> 2472 </div> 2473 </div> 2474 2475 <div class="modern-report__section-children quality-snapshot__content" data-report-section="score-details"> 2476 <div class="quality-snapshot__overall"> 2477 <div class="quality-snapshot__overall-copy"> 2478 <div class="quality-snapshot__overall-label">Overall quality</div> 2479 <div class="quality-snapshot__overall-line">Quality index score remains <span>${n(o)?r(String(Math.round(Number(o)))):`â`}</span>.</div> 2480 </div> 2481 <div class="quality-snapshot__scale" aria-hidden="true"> 2482 <div class="quality-snapshot__scale-rail"> 2483 <div class="quality-snapshot__scale-segments"></div> 2484 <div class="quality-snapshot__scale-marker" style="left: ${n(o)?r(String(c(o))):`0`}%"></div> 2485 <div class="quality-snapshot__scale-labels"><span>0</span><span>25</span><span>50</span><span>75</span><span>100</span></div> 2486 </div> 2487 </div> 2488 </div> 2489 2490 <div class="quality-snapshot__metrics-grid"> 2491 ${[{key:`hallucinationRisk`,title:`Hallucination Risk`,desc:`Unsupported content carried into the final synthesis.`,positive:!1},{key:`fabricationRisk`,title:`Fabrication Risk`,desc:`Strongest likely false claim found in the source responses.`,positive:!1}
2491,{key:`consensusScore`,title:`Consensus Score`,desc:`How much models agree on the answer.`,positive:!0},{key:`confidenceScore`,title:`Confidence Score`,desc:`Confidence after propagated risk and panel health.`,positive:!0},{key:`panelIntegrityScore`,title:`Panel Integrity Score`,desc:`Data completeness and panel health.`,positive:!0},{key:`verificationRequiredCount`,title:`Verification Required`,desc:`Number of claims that require verification.`,positive:null},{key:`unsupportedSpecificClaimCount`,title:`Unsupported Claims`,desc:`Claims with no supporting evidence.`,positive:null},{key:`dominantRiskScore`,title:`Dominant Risk Score`,desc:`Strongest risk found in the source responses.`,positive:!1}].map(e=>{let t=a(e.key).value,i=(l(e.key),n(t)?String(t):`0`),o=c(t),d=l(e.key)?``:s(Number(t),e.positive===!0);return` 2492 <div class="quality-snapshot__metric-card page-break-avoid metric--${e.key}"> 2493 <div class="quality-snapshot__metric-icon" aria-hidden="true">${u[e.key]||``}</div> 2494 <div class="quality-snapshot__metric-copy"> 2495 <div class="quality-snapshot__metric-title">${r(e.title)}</div> 2496 <div class="quality-snapshot__metric-description">${r(e.desc)}</div> 2497 <div class="quality-snapshot__metric-bar${l(e.key)?` quality-snapshot__metric-bar--count`:``}" aria-hidden="true"> 2498 <div class="quality-snapshot__metric-bar-fill"></div> 2499 <div class="quality-snapshot__metric-marker" style="left: ${r(String(o))}%;"></div> 2500 </div> 2501 </div> 2502 <div class="quality-snapshot__metric-score"> 2503 <div class="quality-snapshot__metric-value">${l(e.key)?r(String(i)):r(String(o))}<span class="quality-snapshot__metric-denom">${l(e.key)?``:`/100`}</span></div> 2504 ${l(e.key)?`<div class="quality-snapshot__metric-status">CLAIMS</div>`:d?`<div class="quality-snapshot__metric-status">${r(d)}</div>`:``} 2505 </div> 2506 </div> 2507 `}).join(``)} 2508 </div> 2509 2510 <div class="quality-snapshot__note">Scores combine several quality signals into an easy-to-read view. Use them as guidance, not as absolute measures.</div> 2511 </div> 2512 </section> 2513 `}function ye(e,{normalizeValidationFindings:t,getValidationSeverityBandMeta:n,formatModelNames:r,escapeHtml:i}={}){let a=t(e);if(!a.length)return``;let o={critical:`Immediate review recommended for this set of findings.`,very_high:`Strong risk indicators need fast verification.`,high:`Meaningful risk signals should be checked soon.`,elevated:`Potential risk with notable uncertainty.`,moderate:`Mixed signals deserve a closer look.`,guarded:`Light caution, keep context in mind.`,low:`Minor issues surfaced with limited impact.`,very_low:`Minimal concern across these findings.`,unknown:`Severity could not be classified precisely.`},s={critical:`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="22" height="22" fill="none" stroke="currentColor" stroke-width="2.3" stroke-linecap="round" stroke-linejoin="round"><path d="M12 3 2.5 20.5h19L12 3Z"/><path d="M12 9v5"/><path d="M12 17h.01"/></svg>`,very_high:`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="22" height="22" fill="none" stroke="currentColor" stroke-width="2.3" stroke-linecap="round" stroke-linejoin="round"><path d="M12 3 2.5 20.5h19L12 3Z"/><path d="M12 9v5"/><path d="M12 17h.01"/></svg>`,high:`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="22" height="22" fill="none" stroke="currentColor" stroke-width="2.3" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="9"/><path d="M12 7v6"/><path d="M12 17h.01"/></svg>`,elevated:`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="22" height="22" fill="none" stroke="currentColor" stroke-width="2.1" stroke-linecap="round" stroke-linejoin="round"><path d="M12.5 3c.7 2-.1 3.2-1.2 4.5-1.4 1.6-2.5 2.8-2.5 5a3.7 3.7 0 0 0 7.4 0c0-1.8-.8-3.1-2-4.6-.8-1-.8-2.2-1.7-4.9Z"/><path d="M9.2 14.2a3.2 3.2 0 0 0 6.3.8"/></svg>`,moderate:`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="22" height="22" fill="none" stroke="currentColor" stroke-width="2.1" stroke-linecap="round" stroke-linejoin="round"><path d="M4 7h16"/><path d="M7 7c0 2 1.8 3.5 5 3.5S17 9 17 7"/><path d="M4 17h16"/><path d="M7 17c0-2 1.8-3.5 5-3.5s5 1.5 5 3.5"/></svg>`,guarded:`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="22" height="22" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 3 5 6v6c0 4 3 7.2 7 9 4-1.8 7-5 7-9V6l-7-3Z"/><path d="M12 8v5"/><path d="M12 17h.01"/></svg>`,low:`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="22" height="22" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="9"/><path d="M12 8v4"/><path d="M12 16h.01"/></svg>`,very_low:`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="22" height="22" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="9"/><path d="m8.5 12 2.2 2.2 4.8-5"/></svg>`,unknown:`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="22" height="22" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="9"/><path d="M9.5 9a2.5 2.5 0 1 1 4.1 2c-.8.7-1.6 1.2-1.6 2.5"/><path d="M12 17h.01"/></svg>`},c=a.reduce((e,t)=>
2513{let n=String(t.severityBand||`unknown`);return e.has(n)||e.set(n,[]),e.get(n).push(t),e},new Map),l=new Set;Array.from(c.values()).forEach(e=>{let t=Math.max(0,12-l.size);e.slice(0,Math.min(3,t)).forEach(e=>l.add(e.key))});let u=a.filter(e=>!l.has(e.key)),d=Array.from(u.reduce((e,t)=>{let n=String(t.summary||``).trim(),r=n.toLocaleLowerCase().replace(/\s+/g,` `),i=e.get(r)||{count:0,summary:n};return i.count+=1,e.set(r,i),e},new Map).values()).sort((e,t)=>t.count-e.count||e.summary.localeCompare(t.summary)).slice(0,4),f=(e,t=``)=>`<span class="modern-report__finding-detail-label${t?` modern-report__finding-detail-label--${i(t)}`:``}">${i(e)}</span>`;return` 2514 <section class="modern-report__section modern-report__section--findings" data-report-section="findings"> 2515 <div class="modern-report__section-header"> 2516 <div class="modern-report__section-heading"> 2517 <span class="modern-report__section-icon">!</span> 2518 <div> 2519 <h3 class="modern-report__section-title">Validation Findings</h3> 2520 <p class="modern-report__section-subtitle">Claims and disagreements that deserve a closer look.</p> 2521 </div> 2522 </div> 2523 </div> 2524 <div class="modern-report__section-body"> 2525 ${u.length?` 2526 <div class="modern-report__finding-executive-note" data-report-evidence="executive-only"> 2527 <p><strong>${i(String(l.size))}</strong> priority findings shown from <strong>${i(String(a.length))}</strong> total.</p> 2528 <span>Similar and lower-priority items are summarized below. Choose Full evidence to see everything.</span> 2529 </div> 2530 `:``} 2531 ${Array.from(c.entries()).map(([e,t])=>{let a=n(e),c=t.filter(e=>l.has(e.key)).length;return` 2532 <section class="modern-report__finding-group modern-report__finding-group--${i(e)} page-break-avoid"> 2533 <div class="modern-report__finding-group-header"> 2534 <div class="modern-report__finding-group-header-copy"> 2535 <span class="modern-report__finding-group-icon" aria-hidden="true">${s[e]||s.unknown}</span> 2536 <div class="modern-report__finding-group-titles"> 2537 <div class="modern-report__finding-group-label">${i(a.label)}</div> 2538 <p class="modern-report__finding-group-subtitle">${i(o[e]||o.unknown)}</p> 2539 </div> 2540 </div> 2541 <div class="modern-report__finding-group-count"> 2542 <span data-report-evidence="executive-only">${i(c===t.length?String(t.length):`${c} of ${t.length}`)}</span> 2543 <span data-report-evidence="full-only">${i(String(t.length))}</span> 2544 </div> 2545 </div> 2546 <div class="modern-report__finding-group-items"> 2547 ${t.map((e,t)=>{let n=e.type===`fabrication`?`is-fabrication`:e.type===`hallucination`?`is-hallucination`:e.type===`disagreement`?`is-disagreement`:``,a=Array.isArray(e.involvedModels)?e.involvedModels.slice(0,3):[],o=Math.max(0,(e.involvedModels?.length||0)-a.length),s=a.length?`${r(a)}${o?` +${o}`:``}`:``,c=String(t+1).padStart(2,`0`),u=e.confidence!==null&&e.confidence!==void 0;return` 2548 <article class="modern-report__finding ${n} page-break-avoid"${l.has(e.key)?``:` data-report-evidence="full-only"`}> 2549 <div class="modern-report__finding-summary"> 2550 <div class="modern-report__finding-index" aria-label="Finding ${i(c)}">${i(c)}</div> 2551 <p class="modern-report__finding-text">${i(e.summary)}</p> 2552 </div> 2553 ${u||e.topic||s?` 2554 <div class="modern-report__finding-meta" aria-label="Finding metadata"> 2555 ${u?`<span class="modern-report__finding-meta-item"><strong>Confidence</strong> ${i(`${e.confidence}%`)}</span>`:``} 2556 ${e.topic?`<span class="modern-report__finding-meta-item"><strong>Topic</strong> ${i(e.topic)}</span>`:``} 2557 ${s?`<span class="modern-report__finding-meta-item modern-report__finding-meta-item--models"><strong>Models</strong> ${i(s)}</span>`:``} 2558 </div> 2559 `:``} 2560 <div class="modern-report__finding-details"> 2561 ${e.claimText?`<p class="modern-report__finding-detail">${f(`Claim`,`claim`)}${i(e.claimText)}</p>`:``} 2562 ${e.majorityView||e.dissentingView?` 2563 <div class="modern-report__finding-comparison"> 2564 ${e.majorityView?`<p class="modern-report__finding-detail"><span class="modern-report__finding-detail-label">Majority</span>${i(e.majorityView)}</p>`:``} 2565 ${e.dissentingView?`<p class="modern-report__finding-detail"><span class="modern-report__finding-detail-label">Dissent</span>${i(e.dissentingView)}</p>`:``} 2566 </div> 2567 `:``} 2568 ${e.reasoning?`<p class="modern-report__finding-detail">${f(`Reasoning`,`reasoning`)}${i(e.reasoning)}</p>`:``} 2569 </div> 2570 </article> 2571 `}).join(``)} 2572 </div> 2573 </section> 2574 `}).join(``)} 2575 ${u.length?` 2576 <section class="modern-report__finding-digest" data-report-evidence
2576="executive-only" aria-label="Additional validation evidence"> 2577 <div class="modern-report__finding-digest-heading"> 2578 <h4>Additional evidence</h4> 2579 <span>${i(String(u.length))} grouped findings</span> 2580 </div> 2581 <ul> 2582 ${d.map(e=>`<li><strong>${i(String(e.count))}</strong><span>${i(e.summary)}</span></li>`).join(``)} 2583 </ul> 2584 </section> 2585 `:``} 2586 </div> 2587 </section> 2588 `}function be(e,{getKeyTakeaways:t,getActionableItems:n,getUniqueInsights:r,getNotableOutliers:i,renderSectionCards:a,renderChipList:o,getResponseDisplayName:s,formatLabel:c,hasValue:l,escapeHtml:u}={}){let d=t(e),f=n(e),p=r(e),m=i(e);return[a(`Key Takeaways`,d,(e,t)=>` 2589 <article class="modern-report__insight-item modern-report__insight-item--takeaway page-break-avoid"> 2590 <div class="modern-report__insight-label-row"> 2591 <span class="modern-report__insight-label">Takeaway</span> 2592 <span class="modern-report__insight-index">${u(String(t+1).padStart(2,`0`))}</span> 2593 </div> 2594 <p class="modern-report__insight-text">${u(e?.text||e?.title||e?.description||``)}</p> 2595 ${o((e?.models||[]).map(e=>s(e)),`support`)} 2596 </article> 2597 `,`takeaways`),a(`Actionable Items`,f,(e,t)=>` 2598 <article class="modern-report__insight-item modern-report__insight-item--action page-break-avoid"> 2599 <div class="modern-report__insight-label-row"> 2600 <span class="modern-report__insight-label">Action Item</span> 2601 <span class="modern-report__insight-index">${u(String(t+1).padStart(2,`0`))}</span> 2602 </div> 2603 <p class="modern-report__insight-text">${u(e?.text||e?.title||e?.description||``)}</p> 2604 ${o([e?.actionability?c(e.actionability):null,...(e?.models||[]).map(e=>s(e))],`action`)} 2605 </article> 2606 `,`actions`),a(`Unique Insights`,p,(e,t)=>` 2607 <article class="modern-report__insight-item modern-report__insight-item--unique page-break-avoid"> 2608 <div class="modern-report__insight-label-row"> 2609 <span class="modern-report__insight-label">Unique Insight</span> 2610 <span class="modern-report__insight-index">${u(String(t+1).padStart(2,`0`))}</span> 2611 </div> 2612 <p class="modern-report__insight-text">${u(e?.text||e?.title||e?.description||``)}</p> 2613 ${o([e?.source?.modelName?s(e.source):null,e?.topic||null],`insight`)} 2614 ${e?.reasoning?`<p class="modern-report__insight-note">${u(e.reasoning)}</p>`:``} 2615 </article> 2616 `,`unique`),a(`Notable Outliers`,m,(e,t)=>` 2617 <article class="modern-report__insight-item modern-report__insight-item--outlier page-break-avoid"> 2618 <div class="modern-report__insight-label-row"> 2619 <span class="modern-report__insight-label">Outlier</span> 2620 <span class="modern-report__insight-index">${u(String(t+1).padStart(2,`0`))}</span> 2621 </div> 2622 <p class="modern-report__insight-text">${u(e?.description||e?.text||e?.title||``)}</p> 2623 ${o([e?.model?.modelName?s(e.model):null,e?.dimension?c(e.dimension):null,l(e?.score)?`Score ${e.score}`:null],`warning`)} 2624 </article> 2625 `,`outliers`)].join(``)}function xe(e=[],{renderChipList:t,getResponseStatusLabel:n,getResponseDisplayName:r,getResponseModelPresentation:i,formatProcessingTime:a,formatTokenTotal:o,renderMarkdown:s,escapeHtml:c}={}){return!Array.isArray(e)||!e.length?``:` 2626 <section class="modern-report__section modern-report__section--responses modern-report__section--appendix is-report-hidden" data-report-section="responses"> 2627 <div class="modern-report__section-header"> 2628 <div class="modern-report__section-heading"> 2629 <span class="modern-report__section-icon">AI</span> 2630 <div> 2631 <p class="modern-report__appendix-kicker">Appendix A</p> 2632 <h3 class="modern-report__section-title">Model Responses</h3> 2633 <p class="modern-report__section-subtitle">Original model answers included for reference.</p> 2634 </div> 2635 </div> 2636 </div> 2637 <div class="modern-report__section-body modern-report__section-body--responses"> 2638 ${e.map(e=>{let l=r(e),u=i?.(e)||{},d=String(u?.providerLogo||``).trim(),f=String(e?.modelName||``),p=n(e),m=p&&String(p).toLowerCase()!==`completed`,h=[e?.processingTime>0?{label:`Latency`,value:a(e.processingTime)}:null,o(e?.tokens)?{label:`Tokens`,value:o(e.tokens)}
2638:null].filter(Boolean);return` 2639 <article class="modern-report__response ${H(e)} page-break-avoid"> 2640 <div class="modern-report__response-header"> 2641 <div class="modern-report__response-title-wrap"> 2642 <div class="modern-report__response-icon-wrap ${H(e)}"> 2643 ${d?`<img class="modern-report__response-provider-logo" src="${c(d)}" alt="${c(`${u?.provider||l} logo`)}">`:`<span class="modern-report__response-icon">AI</span>`} 2644 </div> 2645 <div class="modern-report__response-titles"> 2646 <h4 class="modern-report__response-title">${c(l)}</h4> 2647 ${f&&f!==l?`<p class="modern-report__response-key" data-report-metadata="response">${c(f)}</p>`:``} 2648 </div> 2649 </div> 2650 ${m?t([p],`support`):``} 2651 </div> 2652 ${h.length?` 2653 <div class="modern-report__response-technical-meta" data-report-metadata="response"> 2654 ${h.map(e=>`<span><strong>${c(e.label)}</strong> ${c(e.value)}</span>`).join(``)} 2655 </div> 2656 `:``} 2657 <div class="modern-report__response-body">${s(e?.content||e?.error||``)}</div> 2658 </article> 2659 `}).join(``)} 2660 </div> 2661 </section> 2662 `}function Se(e,{escapeHtml:t}={}){let n=Array.isArray(e?.models)?e.models:[];if(!e||!n.length)return``;let r=Number(e.providerCount)||0,i=String(e.name||`AI panel`).trim()||`AI panel`,a=String(e.description||``).trim(),o=`${n.length} ${n.length===1?`model`:`models`}${r?` from ${r} ${r===1?`provider`:`providers`}`:``}`;return` 2663 <section class="modern-report__section modern-report__section--panel" data-report-section="panel"> 2664 <div class="modern-report__section-header"> 2665 <div class="modern-report__section-heading"> 2666 <span class="modern-report__section-icon">AI</span> 2667 <div> 2668 <h3 class="modern-report__section-title">Panel overview</h3> 2669 <p class="modern-report__section-subtitle">The AI team behind this report.</p> 2670 </div> 2671 </div> 2672 </div> 2673 <div class="modern-report__section-body modern-report__panel-overview"> 2674 <div class="modern-report__panel-intro"> 2675 <div> 2676 <h4 class="modern-report__panel-name">${t(i)}</h4> 2677 ${a?`<p class="modern-report__panel-description">${t(a)}</p>`:``} 2678 </div> 2679 <p class="modern-report__panel-composition">${t(o)}</p> 2680 </div> 2681 <div class="modern-report__panel-models" role="list" aria-label="Models in this panel"> 2682 ${n.map(e=>` 2683 <article class="modern-report__panel-model" role="listitem"> 2684 <div class="modern-report__panel-model-logo" aria-hidden="true"> 2685 ${e.providerLogo?`<img src="${t(e.providerLogo)}" alt="">`:`<span>AI</span>`} 2686 </div> 2687 <div class="modern-report__panel-model-copy"> 2688 ${e.provider?`<p class="modern-report__panel-model-provider">${t(e.provider)}</p>`:``} 2689 <h5 class="modern-report__panel-model-name">${t(e.displayName||`AI model`)}</h5> 2690 ${e.description?`<p class="modern-report__panel-model-description">${t(e.description)}</p>`:``} 2691 </div> 2692 </article> 2693 `).join(``)} 2694 </div> 2695 </div> 2696 </section> 2697 `}function Ce({userMessage:e=null,responses:t=[],synthesis:n=null,turnIndex:r=null,includeModelResponses:i=!0,panelOverview:a=null,formatExportTimestamp:o,normalizeValidationFindings:s,getKeyTakeaways:c,getActionableItems:l,getUniqueInsights:u,getNotableOutliers:d,formatPlainTextToHtml:f,escapeHtml:p,renderQualityScoresSection:m,renderValidationFindingsSection:h,renderInsightsSection:g,renderModelResponsesSection:_}={}){let v=n?o(n):null,y=e?o(e):null,b=s(n),x=c(n).length+l(n).length+u(n).length+d(n).length,S=!!a&&(r===null||r===0);return` 2698 <article class="modern-report__turn conversation-report"> 2699 <div class="modern-report__turn-header conversation-report__heading"> 2700 <span class="modern-report__turn-label conversation-report__label">CONVERSATION REPORT</span>
2701 <span class="conversation-report__turn">${r===null?``:p(String(`Turn ${r+1}`).toUpperCase())}</span> 2702 </div> 2703 2704 ${e?.content?` 2705 <section class="conversation-report__prompt-card page-break-avoid" data-report-section="prompt"> 2706 <div class="conversation-report__prompt-content"> 2707 <div class="conversation-report__prompt-label">PROMPT</div> 2708 <blockquote class="conversation-report__prompt-text">${f(e.content)}</blockquote> 2709 <div class="conversation-report__prompt-date"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="14" height="14" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="3" y="4" width="18" height="18" rx="2" ry="2"/><line x1="16" y1="2" x2="16" y2="6"/><line x1="8" y1="2" x2="8" y2="6"/><line x1="3" y1="10" x2="21" y2="10"/></svg> <span>${p(y||``)}</span></div> 2710 </div> 2711 </section> 2712 `:``} 2713 2714 ${S?Se(a,{escapeHtml:p}):``} 2715 2716 ${n?.content?` 2717 <section class="conversation-report__answer-card page-break-avoid" data-report-section="answer"> 2718 <div class="conversation-report__answer-header"> 2719 <div class="conversation-report__answer-icon">S</div> 2720 <div class="conversation-report__answer-title-wrap"> 2721 <h3 class="conversation-report__answer-title">Distilled Answer</h3> 2722 <p class="conversation-report__answer-subtitle">A concise answer shaped by the selected models.</p> 2723 </div> 2724 </div> 2725 <div class="conversation-report__answer-sep" aria-hidden="true"></div> 2726 <div class="conversation-report__answer-body">${f(n.content)}</div> 2727 2728 <div class="conversation-report__metrics"> 2729 <div class="conversation-report__metric"> 2730 <div class="conversation-report__metric-icon"> 2731 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="4" width="18" height="18" rx="2" ry="2"/><line x1="16" y1="2" x2="16" y2="6"/><line x1="8" y1="2" x2="8" y2="6"/><line x1="3" y1="10" x2="21" y2="10"/></svg> 2732 </div> 2733 <div> 2734 <div class="conversation-report__metric-label">SYNTHESIZED</div> 2735 <div class="conversation-report__metric-value">${p(v||``)}</div> 2736 </div> 2737 </div> 2738 2739 <div class="conversation-report__metric"> 2740 <div class="conversation-report__metric-icon"> 2741 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"><path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"/></svg> 2742 </div> 2743 <div> 2744 <div class="conversation-report__metric-label">MODELS</div> 2745 <div class="conversation-report__metric-value">${p(String(t?.length||0))}</div> 2746 </div> 2747 </div> 2748 2749 <div class="conversation-report__metric"> 2750 <div class="conversation-report__metric-icon"> 2751 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"><path d="M3 3v18h18"/><path d="M18 7v14"/><path d="M13 11v10"/><path d="M8 15v6"/></svg> 2752 </div> 2753 <div> 2754 <div class="conversation-report__metric-label">FINDINGS</div> 2755 <div class="conversation-report__metric-value">${p(String(b.length||0))}</div> 2756 </div> 2757 </div> 2758 2759 <div class="conversation-report__metric conversation-report__metric--insight"> 2760 <div class="conversation-report__metric-icon"> 2761 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"><path d="M9 18h6"/><path d="M12 2v6"/><path d="M5 11a7 7 0 0 1 14 0c0 3.314-2.686 6-6 6h-2c-3.314 0-6-2.686-6-6z"/></svg> 2762 </div> 2763 <div> 2764 <div class="conversation-report__metric-label">INSIGHTS</div> 2765 <div class="conversation-report__metric-value">${p(String(x||0))}</div> 2766 </div> 2767 </div> 2768 </div> 2769 </section> 2770 `:``} 2771 2772 ${n?.content?``:` 2773 <section class="modern-report__section modern-report__section--synthesis page-break-avoid" data-report-section="answer"> 2774 <div class="modern-report__section-header"> 2775 <div class="modern-report__section-heading">
2776 <span class="modern-report__section-icon">S</span> 2777 <div> 2778 <h3 class="modern-report__section-title">Distilled Answer</h3> 2779 <p class="modern-report__section-subtitle">No synthesized answer was available for this turn.</p> 2780 </div> 2781 </div> 2782 </div> 2783 </section> 2784 `} 2785 2786 ${m(n)} 2787 ${h(n)} 2788 ${g(n)} 2789 ${i?_(t):``} 2790 </article> 2791 `}var we=1e3;function U(e,t,n){let r=new Blob([e],{type:n}),i=URL.createObjectURL(r),a=document.createElement(`a`);a.href=i,a.download=t,document.body.append(a),a.click(),a.remove(),setTimeout(()=>{URL.revokeObjectURL(i)},we)}function W(e){return`iaviews_chat_${(e||`session`).replace(/[^a-z0-9]/gi,`_`).toLowerCase()}_${new Date().toISOString().slice(0,10)}`}function G({content:n,fileName:r,mimeType:i,errorContext:a}){try{U(n,r,i)}catch(n){e(`Failed to ${a}`,t(n,{context:`use-chat-export.export-file`,includeBackendMessage:!0,extra:{fileName:r,mimeType:i}}))}}function Te(e,t=`No content provided.`){let n=(String(e||``).replace(/\r\n/g,` 2792`).trim()||t).split(/\n{2,}/).map(e=>e.trim()).filter(Boolean);return n.length?n.map(e=>`<p>${a(e).replace(/\n/g,`<br>`)}</p>`).join(``):`<p>${a(t)}</p>`}function Ee(e){let t=String(e||``).replace(/[_-]+/g,` `).trim();return t?t.replace(/\b([a-z])/g,e=>e.toUpperCase()):``}function K(e=[]){let t=e.filter(e=>e?.label&&e?.value);return t.length?` 2793 <dl class="modern-report__chat-facts"> 2794 ${t.map(e=>` 2795 <div class="modern-report__chat-fact"> 2796 <dt>${a(e.label)}</dt> 2797 <dd>${a(e.value)}</dd> 2798 </div> 2799 `).join(``)} 2800 </dl> 2801 `:``}function q(e=[],t=`neutral`){let n=e.filter(Boolean);return n.length?` 2802 <div class="modern-report__chips modern-report__chips--compact"> 2803 ${n.map(e=>`<span class="modern-report__chip ${De(t)}">${a(e)}</span>`).join(``)} 2804 </div> 2805 `:``}function De(e=`neutral`){return e===`action`?`is-teal`:e===`insight`?`is-plum`:e===`warning`?`is-amber`:e===`support`?`is-sky`:`is-slate`}function Oe(e,t=[],n,r=`unique`){if(!t.length)return``;let i={takeaways:`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="20" height="20" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M9 18h6"/><path d="M10 22h4"/><path d="M8.5 14.5A6 6 0 1 1 15.5 14.5C14.5 15.2 14 16 14 17h-4c0-1-.5-1.8-1.5-2.5Z"/></svg>`,actions:`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="20" height="20" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="m5 12 4 4L19 6"/><path d="M21 12a9 9 0 1 1-5.3-8.2"/></svg>`,unique:`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="20" height="20" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="m12 3 1.6 4.4L18 9l-4.4 1.6L12 15l-1.6-4.4L6 9l4.4-1.6L12 3Z"/><path d="m19 15 .8 2.2L22 18l-2.2.8L19 21l-.8-2.2L16 18l2.2-.8L19 15Z"/></svg>`,outliers:`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="20" height="20" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 3v18h18"/><path d="m7 15 4-4 3 3 5-7"/><path d="M19 7v5h-5"/></svg>`},o=Object.hasOwn(i,r)?r:`unique`;return` 2806 <section class="modern-report__section modern-report__section--insights modern-report__section--insights-${o} page-break-avoid" data-report-section="insights"> 2807 <div class="modern-report__section-header"> 2808 <div class="modern-report__section-heading"> 2809 <span class="modern-report__section-icon" aria-hidden="true">${i[o]}</span> 2810 <div> 2811 <h3 class="modern-report__section-title">${a(e)}</h3> 2812 </div> 2813 </div> 2814 <span class="modern-report__section-count" aria-label="${a(String(t.length))} items">${a(String(t.length))}</span> 2815 </div> 2816 <div class="modern-report__section-body modern-report__section-body--insights"> 2817 ${t.map((e,t)=>n(e,t)).join(``)} 2818 </div> 2819 </section> 2820 `}function ke(e){return ve(e,{getValidationQualityScoreEntries:f,hasValue:y,escapeHtml:a})}function Ae(e){return e?.modelName?i(e.modelName):{}}function J(e){return String(e||``).replace(/[*_`#]/g,``).replace(/\s+/g,` `).trim()}function Y(e,t=[]){let n=Array.isArray(e?.normalizedSupportedModels)&&e.normalizedSupportedModels.length?e.normalizedSupportedModels:Array.isArray(e?.supportedModels)?e.supp
2820ortedModels:[],r=n.length?n:t.map(e=>({modelId:e?.modelId,modelKey:e?.modelName,displayName:e?.modelName})),a=new Map;r.forEach((e,t)=>{let n=e&&typeof e==`object`?e:{modelKey:e},r=n.modelKey??n.identifier??n.modelId??n.id??n.name??n.displayName,o=String(r??`model-${t}`).trim()||`model-${t}`;if(a.has(o))return;let s=r?i(r):{};a.set(o,{displayName:String(n.displayName||n.name||s?.displayName||r||`AI model`).trim(),provider:String(n.provider||s?.provider||``).trim(),providerLogo:String(n.providerLogo||s?.providerLogo||``).trim(),description:J(n.description||n.shortDescription||``)})});let o=[...a.values()];return o.length?{name:J(e?.label||e?.name||`AI panel`),description:J(e?.description||e?.shortDescription||``),providerCount:new Set(o.map(e=>e.provider).filter(Boolean)).size,models:o}:null}function X(e){return ye(e,{normalizeValidationFindings:u,getValidationSeverityBandMeta:l,formatModelNames:s,escapeHtml:a})}function je(e){return be(e,{getKeyTakeaways:x,getActionableItems:w,getUniqueInsights:C,getNotableOutliers:T,renderSectionCards:Oe,renderChipList:q,getResponseDisplayName:_,formatLabel:Ee,hasValue:y,escapeHtml:a})}function Me(e=[]){return xe(e,{renderChipList:q,getResponseStatusLabel:v,getResponseDisplayName:_,getResponseModelPresentation:Ae,formatProcessingTime:c,formatTokenTotal:te,renderMarkdown:o,escapeHtml:a})}function Ne(e={}){return Ce({...e,formatExportTimestamp:h,normalizeValidationFindings:u,getKeyTakeaways:x,getActionableItems:w,getUniqueInsights:C,getNotableOutliers:T,renderMetaList:K,formatPlainTextToHtml:Te,escapeHtml:a,renderQualityScoresSection:ke,renderValidationFindingsSection:X,renderInsightsSection:je,renderModelResponsesSection:Me})}function Z({group:e,turnIndex:t=null,reportLabel:n=`Turn report`,panelOverview:r=null}={}){return Ne({userMessage:e?.userMessage??null,responses:e?.responses??[],synthesis:e?.synthesis??null,turnIndex:t,includeModelResponses:!0,reportLabel:n,panelOverview:r})}function Pe(e=[],t,n=null){return e.map((e,r)=>Z({group:e,turnIndex:r,reportLabel:t,panelOverview:r===0?n:null})).join(``)}function Q(e={}){return _e({...e,baseHref:j()||``,exportedAt:h(new Date),turnCount:(e.body?.match(/class="modern-report__turn"/g)||[]).length,escapeHtml:a,renderMetaList:K})}function Fe(e,t,n){G({content:b(e,t,n),fileName:`${W(t)}.md`,mimeType:`text/markdown;charset=utf-8`,errorContext:`export chat as Markdown`})}function Ie(e,t){G({content:JSON.stringify(e??[],null,2),fileName:`${W(t)}.json`,mimeType:`application/json;charset=utf-8`,errorContext:`export raw chat JSON`})}function Le(e,t){U(e,t,`application/json;charset=utf-8`)}function $(n,i){e(`Failed to open printer-friendly report`,t(n,{context:`use-chat-export.open-printer-friendly-report`,includeErrorPreview:!0,includeStackPreview:!0,extra:{reportScope:i}})),r(`Export failed`,`Unable to open the printer-friendly report. Please try again.`)}async function Re({userMessage:n=null,responses:r=[],synthesis:i=null,sessionTitle:a=``,productName:o=`Views`,turnIndex:s=null,panel:c=null}={}){try{let l=Y(c,r);return await B({body:Z({group:{userMessage:n,responses:r,synthesis:i},turnIndex:s,reportLabel:`Turn report`,panelOverview:l}),title:z(a,`Turn report`),productName:o,buildPrintDocumentHtml:Q,logError:e,toErrorLogMeta:t})}catch(e){return $(e,`turn`),!1}}async function ze(n=[],r=``,i=`Views`,a=null){try{let o=S(n);return o.length?await B({body:Pe(o,`Conversation report`,Y(a,o.flatMap(e=>e.responses||[]))),title:z(r,`Print report`),productName:i,buildPrintDocumentHtml:Q,logError:e,toErrorLogMeta:t}):!1}catch(e){return $(e,`chat`),!1}}export{re as buildFullSynthesisMarkdown,ee as buildModelAnswersMarkdown,ne as buildSynthesisAnswerMarkdown,w as getActionableItems,g as getFallbackInsights,x as getKeyTakeaways,T as getNotableOutliers,C as getUniqueInsights,f as getValidationQualityScoreEntries,m as getValidationQualityScores,d as getValidationSkipReason,S as groupMessages,p as isValidationSkipped,u as normalizeValidationFindings,ze as openChatPrinterFriendlyReport,Re as openTurnPrinterFriendlyReport,Fe as saveChat,Le as saveChatDebugExport,Ie as saveChatJson};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.