PageSourceSearch

https://talvi.ai/assets/sow-editor-network-rail-BRuXxp29.js

js talvi.ai collected 2026-10-05 12:44:17 UTC 29,616 bytes, 328 lines download raw bytes

1import{r as p,j as t,C as w}from"./index-CtEeXopY.js";import{R as b}from"./rotate-ccw-pGcw4ryp.js";import{P as A}from"./printer-BR-0LY-L.js";import{C as x}from"./chevron-right-6r-Agwk6.js";const T="/assets/question_example_1_1780214657899-BsjzKBxd.jpg",k="/assets/AI_file_summary1_1780214657899-B-9fZxfG.jpg",N="/assets/AI_coach1_1780214657897-RlHVdAOK.jpg",g="sow-network-rail",R={"question-example":T,"ai-file-summary":k,"ai-coach":N},h=[{id:"title",v:2,title:"",collapsible:!1,content:`STATEMENT OF WORK
2Talvi AI-Powered Knowledge Platform Implementation
3Network Rail
4
5Client: Network Rail Infrastructure Limited
6Provider: Talvi Limited
7Date: 1 June 2026
8Document Reference: SOW-NR-001
9
10Related Document: Reseller Agreement RA-NR-001`},{id:"executive-summary",title:"1. EXECUTIVE SUMMARY",collapsible:!0,content:`This Statement of Work sets out the terms for the implementation of Talvi's AI-powered corporate knowledge platform for Network Rail Infrastructure Limited ("Network Rail"). The deployment will provide Network Rail employees with instant, 24/7 AI-powered access to the knowledge contained within their learning content, operational documentation, compliance materials, and training libraries.
11
12Network Rail operates one of the UK's most complex safety-critical environments. Employees at all levels - from track operatives to engineers and compliance teams - need rapid, accurate access to procedural knowledge, safety information, and technical documentation. Talvi addresses this by making all of that content instantly searchable by plain-language question, delivering verified, source-linked answers in seconds.
13
14The implementation includes infrastructure setup, content ingestion and processing, GDPR and data sovereignty review, integration with existing systems where applicable, phased rollout, and ongoing support. The Talvi platform will be configured specifically for Network Rail's content library and user base.
15
16This SOW also forms the Condition Precedent for the Reseller Agreement (RA-NR-001) between the parties. Network Rail's execution of this SOW and payment of the first invoice activates the Reseller Agreement.`},{id:"about-talvi",title:"2. ABOUT TALVI",collapsible:!0,content:`Talvi Limited is a UK-based enterprise AI knowledge platform provider specialising in corporate learning and knowledge management solutions. Our platform is purpose-built for organisations with complex, high-volume content libraries where employee access to accurate, current knowledge is operationally critical.
17
18Key Credentials:
19
20- Enterprise AI Expertise: Proprietary technology specifically designed for corporate learning environments, not generic chatbots.
21- 100% SCORM Decryption: Platform that automatically unlocks, indexes, and makes searchable all SCORM packages regardless of authoring tool.
22- Video & Document Intelligence: AI transcription and timestamp delivery for video content; precise page-level navigation for documents.
23- Data Security and Compliance: Intelligent chunking architecture means documents are never sent to an LLM in full - only the relevant 5% reaches the model. Full GDPR compliance. Data sovereignty options including on-premises and mixed deployment.
24- UK-Based Support: Dedicated UK-based implementation and success team.
25- 95% Cost Efficiency: Lower operational AI costs compared to standard LLM approaches through precision token delivery.
26
27Project Lead: [NAME] will serve as Talvi's dedicated implementation lead and customer success manager for this deployment.`},{id:"solution-overview",title:"3. SOLUTION OVERVIEW",collapsible:!0,content:`The Talvi platform delivers the following core capabilities for Network Rail:
28
29AI-Powered Question Answering:
30- Employees ask questions in plain language and receive instant, accurate, source-linked answers.
31- Answers are drawn exclusively from Network Rail's own approved content - no hallucinations, no generic AI responses.
32- Every answer links directly to the source document, video timestamp, or SCORM slide.
33
34100% SCORM Content Decryption:
35- Talvi unlocks and indexes all SCORM packages from any authoring tool (Articulate, Lectora, Captivate, etc.).
36- Scripts, videos, audio, quiz questions, and embedded documents are all extracted and made searchable.
37- No other platform can do this.
38
39Contextual Launch:
40- Talvi launches SCORM modules, videos, and documents directly to the exact slide, timestamp, or page that contains the answer.
41- Eliminates the need for employees to navigate through entire courses to find one piece of information.
42
43Talvi Nuggets - Automatic Content Creation:
44- AI analyses existing content to identify knowledge gaps from search analytics.
45- Instantly generates focused, bite-sized knowledge summaries (Nuggets) from existing source material.
46- L&D teams can publish new knowledge assets in minutes rather than weeks.
47
48AI File Summary:
49- Automatic AI-generated summaries of any document, video, or SCORM file.
50- Key topics extracted with direct navigation to relevant sections.
51- Enables rapid content triage and knowledge discovery.
52
53Data Cleaner:
54- Automated pre-ingestion audit of all uploaded content identifying outdated, duplicate, or low-quality material before it enters the knowledge base.
55- Flags superseded documents, conflicting policy versions, and redundant SCORM packages so L&D teams can resolve issues before they reach employees.
56- Ensures the knowledge base contains only accurate, current, approved content - critical in a safety-critical environment like rail operations.
57
58AI Agents - Off the Shelf:
59Talvi ships five specialist AI agents, each purpose-built for a different aspect of enterprise knowledge delivery. All agents are sandboxed, role-appropriate, and deployable within days of go-live.
60
61- Talvi ASSISTANT - Just-in-time learning co-pilot. Provides precise, source-cited answers drawn from Network Rail's SCORM files, videos, and documents. Uses relevance grading to eliminate hallucinations and deep-links every answer directly to its original source context.
62- Talvi NUGGETS - On-demand content factory. Automatically generates bite-sized resources - lesson plans, checklists, quizzes, summaries - from existing content libraries to close identified knowledge gaps in seconds, without L&D team involvement.
63- Talvi COACH - One-on-one AI mentor. Guides individual employees through a structured, personalised knowledge path. Adapts to the learner's pace, checks understanding, and challenges assumptions rather than simply surfacing answers.
64- Talvi FILE SUMMARISER - Instant document and content intelligence. Maps the full structure of any SCORM package, PDF, or video, allowing employees to jump directly to specific chapters, slides, or timestamps via deep links - no manual searching required.
65- Talvi LEARNING ANALYST - Strategic L&D intelligence layer. Continuously reviews employee interactions to surface repeated queries, unanswered questions, and knowledge gaps, providing real-time data to inform evidence-based L&D 
65strategy.
66
67Agents can be chained together - for example, the LEARNING ANALYST identifies a knowledge gap, NUGGETS generates the content to fill it, and COACH delivers it to the relevant employee group - creating a fully automated knowledge improvement loop.
68
69Agent Builder:
70- No-code interface enabling Network Rail administrators to create, configure, and deploy fully custom AI agents tailored to Network Rail's specific operational structure.
71- Agents can be scoped by content category, document type, user group, geography, or any combination - for example, a Track Safety Agent scoped exclusively to permanent way and infrastructure safety documentation, or a Compliance Agent restricted to ORR regulatory content and Network Rail governance frameworks.
72- New custom agents can be live within minutes, enabling rapid response to operational knowledge needs as they arise, without requiring technical resource or Talvi involvement.
73
74MCP Server (Model Context Protocol):
75- Talvi's MCP Server exposes the entire Network Rail knowledge base as a structured, queryable context layer that any MCP-compatible AI tool can connect to.
76- Enables leading AI assistants and development environments - including Claude (Anthropic), Cursor, GitHub Copilot, and other MCP-enabled tools - to draw directly on Network Rail's authoritative knowledge base rather than relying on generic training data.
77- Provides a secure, governed API layer ensuring all AI tool responses are grounded in Network Rail's own approved content, regardless of which AI interface the user is working in.
78
79MCP Library:
80- A curated library of pre-built MCP connectors enabling Talvi to push and pull knowledge from the systems Network Rail already uses.
81- Connectors available for common enterprise platforms including SharePoint, MS Teams, learning management systems, and document repositories.
82- Eliminates manual re-uploading of content by keeping Talvi's knowledge base automatically synchronised with source systems.
83
84Enterprise Back Office and Analytics:
85- Real-time dashboards showing what employees are searching for most.
86- Knowledge gap identification - see where content is missing or underperforming.
87- Usage metrics, adoption tracking, and ROI measurement tools.
88- Full audit trail for compliance purposes.
89
90Deployment Flexibility:
91- Talvi Cloud (default) - fully managed, UK-hosted.
92- Mixed deployment - Talvi-managed platform with self-hosted LLM.
93- On-premises / VPC - full deployment within Network Rail's own infrastructure.
94- Preferred deployment model for Network Rail: [TBC]`},{id:"img-question",type:"image",imgKey:"question-example",title:"Figure 1 - AI-Powered Question Answering",caption:"An employee asks a plain-language question about the Ambient Temperature Sensor. Talvi returns an instant, verified answer and navigates directly to page 32 of the source document - no searching required.",collapsible:!1,content:""},{id:"img-file-summary",type:"image",imgKey:"ai-file-summary",title:"Figure 2 - AI File Summary with Deep-Link Navigation",caption:"Talvi automatically generates a structured summary of the Hellfire 900 Owner's Manual, with named sections and direct 'Go to page' navigation. Employees reach the exact information in seconds rather than scrolling through 56 pages.",collapsible:!1,content:""},{id:"img-coach",type:"image",imgKey:"ai-coach",title:"Figure 3 - Talvi COACH Agent in Action",caption:"The Talvi COACH agent guides an employee through safety instructions for the Hellfire 900 heater, coaching directly from the source PDF and surfacing suggested follow-up questions. The Network Rail branded interface is shown with agent context, chat history, and Talvi Nuggets panel.",collapsible:!1,content:""},{id:"scope",title:"4. SCOPE OF WORK AND DELIVERABLES",collapsible:!0,content:`Talvi will deliver the following in connection with this SOW:
95
96Phase 1 - Infrastructure and Setup (Weeks 1-2):
97- Provision and configure a dedicated Talvi instance for Network Rail.
98- Configure authentication and SSO integration [if applicable - TBC].
99- Establish data ingestion pipelines for Network Rail's content library.
100- Initial security and data sovereignty review.
101- Deployment architecture confirmed and documented.
102
103Phase 2 - Content Ingestion and Processing (Weeks 2-3):
104- Upload and process initial content library (documents, videos, SCORM packages).
105- AI indexing and vectorisation of all content.
106- Quality assurance testing of AI responses against known queries.
107- Configuration of content permissions and RBAC (role-based access control).
108
109Phase 3 - Testing and Soft Launch (Week 3-4):
110- Internal testing with a pilot user group of [TBC] users.
111- Feedback collection and response quality tuning.
112- Admin training for designated Network Rail administrators.
113- User onboarding materials prepared.
114
115Phase 4 - Full Launch and Ongoing Support (Week 4+):
116- Full rollout to [TBC] users.
117- Hypercare support period: [TBC] weeks post-launch with dedicated Talvi resource.
118- Handover to standard support model.
119- Monthly reporting on usage, adoption, and knowledge gaps.
120
121Content in Scope:
122- [TBC - to be confirmed by Network Rail prior to implementation start].
123- Example categories: Operational procedures, safety documentation, compliance training, HR policies, technical manuals, SCORM e-learning library.
124
125Content Out of Scope:
126- [TBC]`},{id:"timeline",v:2,title:"5. IMPLEMENTATION TIMELINE",collapsible:!0,content:`KEY DATES:
127- SOW signed:           Wednesday 18 June 2026
128- First payment due:    Wednesday 18 June 2026
129- Project kick-off:     Monday 22 June 2026
130- Target go-live:       Monday 14 July 2026
131
132WEEK-BY-WEEK PLAN:
133
134Wk 1 - 22 June to 27 June 2026 - Infrastructure Setup and Configuration
135- Talvi environment provisioned and configured for Network Rail.
136- Admin accounts created and access credentials issued.
137- Network Rail IT contacts confirmed and data sovereignty requirements documented.
138- Initial content library scope agreed and file transfer method confirmed.
139- Kick-off call with Network Rail stakeholders.
140
141Wk 2 - 29 June to 4 July 2026 - Content Ingestion and Processing
142- Network Rail content library transferred to Talvi secure ingestion environment.
143- Intelligent chunking and vector processing of all documents.
144- AI Nuggets automatically generated across content library.
145- Initial quality review of indexed content.
146- SCORM extraction completed where applicable.
147
148Wk 3 - 7 July to 11 July 2026 - Testing, Configuration and Soft Launch
149- Internal UAT and platform testing completed.
150- AI agents configured for Network Rail user roles.
151- Monday 7 July - Soft launch to nominated pilot group.
152- Pilot group feedback gathered and any adjustments made.
153- Go-live readiness confirmed by end of week.
154
155Wk 4 - 14 July to 18 July 2026 - Full Go-Live and Onboarding
156- Monday 14 July - Full platform go-live for all licensed users.
157- User onboarding sessions delivered.
158- Admin team trained on platform management and content updates.
159- Hypercare support period begins.
160- Go-live sign-off document issued to Network Rail.
161
162POST GO-LIVE:
163- Hypercare support: 14 July to 14 August 2026 (4 weeks).
164- First monthly review call: Monday 18 August 2026.
165- Ongoing support transitions to standard SLA from 15 August 2026.
166
167Note: Timeline assumes Network Rail provides content library access and nominated internal contacts no later than 22 June 2026. Delays in content provision will extend the timeline proportionately.`},{id:"pricing",v:2,title:"6. PRICING AND COMMERCIAL TERMS",collapsible:!0,content:`All prices exclude VAT. VAT will be charged at the prevailing UK rate where applicable.
168Deployment Model: Talvi Hosted - External LLM
169
170IMPLEMENTATION AND SETUP FEE (one-off):
171£20,000.00
172
173This covers all Phase 1-4 activities as described in Clause 4, including infrastructure setup, content ingestion, testing, admin training, and go-live support.
174
175ANNUAL RECURRING LICENCE FEE (ARR):
176£27,845.54 per annum
177
178Based on:
179- Number of licensed users: 1,000.
180- Per-user cost per month: £2.32.
181- Per-user cost per annum: £27.85.
182- Total users cost per annum: £27,845.54.
183- Deployment model: Talvi Hosted - External LLM.
184
185YEAR 1 TOTAL COST SUMMARY:
186- Annual Recurring Licence Fee:   £27,845.54.
187- Implementation and Setup Fee:   £20,000.00.
188- TOTAL YEAR 1 INVESTMENT:        £47,845.54 (exc. VAT).
189
190From Year 2 onwards, the annual cost is £27,845.54 (exc. VAT), subject to annual review.
191
192OPTIONAL ADD-ONS (pricing TBC):
193- Additional content ingestion beyond agreed initial scope: £[TBC].
194- Additional user licences beyond contracted volume: £27.85 per user per year.
195- Extended hypercare support beyond standard period: £[TBC] per month.
196- Mixed or On-Premises / VPC deployment uplift: £[TBC].
197
198PAYMENT SCHEDULE:
199- 50% of Implementation Fee (£10,000.00) due on signing: 18 June 2026.
200- 50% of Implementation Fee (£10,000.00) due on go-live: 14 July 2026.
201- Annual Recurring Fee (£27,845.54) due in full on go-live: 14 July 2026.
202- Subsequent ARR payments due annually in advance on: 14 July 2027, 14 July 2028, and each anniversary thereafter.
203
204PRICE VALIDITY:
205These prices are valid for 30 days from the date of this document. Final pricing will be confirmed in writing prior to SOW signature.
206
207EXPENSES:
208Reasonable travel and expenses incurred in connection with on-site activities will be invoiced at cost with prior approval from Network Rail.`},{id:"acceptance",title:"7. ACCEPTANCE CRITERIA",collapsible:!0,content:`The Implementation is considered complete and the go-live milestone achieved when the following criteria are met:
209
210Technical Acceptance:
211- Talvi instance is live and accessible to the agreed user population.
212- All content in the agreed initial scope has been successfully ingested and indexed.
213- AI responses pass quality assurance testing (accuracy benchmarked against a set of [20] agreed test queries to be provided by Network Rail prior to launch).
214- SSO integration (if in scope) is functional and tested.
215- Admin back office is accessible to designated Network Rail administrators.
216- Data sovereignty requirements confirmed as met.
217
218User Acceptance:
219- Designated Network Rail administrators have completed onboarding training.
220- User onboarding materials have been provided.
221- Pilot group has confirmed system is functional during soft launch period.
222
223Any issues identified during acceptance testing will be triaged by severity. Critical issues must be resolved before go-live is declared. Non-critical issues will be logged and resolved within an agreed timeframe post-go-live.`},{id:"assumptions",title:"8. ASSUMPTIONS AND DEPENDENCIES",collapsible:!0,content:`This SOW is based on the following assumptions. Material changes to these assumptions may result in adjustments to timeline, scope, or pricing.
224
225Assumptions:
226- Network Rail will provide a nominated project contact and technical contact within 5 business days of SOW signature.
227- Network Rail will provide access to the agreed content library within 10 business days of SOW signature.
228- Content to be ingested is owned by or licensed to Network Rail with appropriate rights for AI processing.
229- Network Rail will make a pilot user group available for soft launch testing in Week 3.
230- Network Rail IT and security teams will be available to support SSO integration and data sovereignty review within the agreed timeline.
231- Network Rail's content library is broadly in standard formats (PDF, Word, PowerPoint, MP4, SCORM .zip).
232
233Dependencies:
234- SSO integration (if in scope) is dependent on Network Rail's identity provider configuration and internal IT approvals.
235- On-premises deployment (if selected) is dependent on Network Rail provisioning the required infrastructure as per Talvi's specification.
236- Timeline is contingent on content being made available on schedule.
237
238Exclusions from this SOW:
239- Creation of new content or learning materials (other than Talvi Nuggets generated automatically).
240- LMS migration or replacement.
241- Integration with systems not explicitly agreed in this document.
242- Ongoing content updates or additions beyond the initial implementation scope (these can be agreed separately).`},{id:"support",title:"9. SUPPORT AND MAINTENANCE",collapsible:!0,content:`Post go-live, the following support arrangements apply:
243
244Standard Support (included in ARR):
245- Email and ticketing support: Monday to Friday, 9am - 5:30pm GMT.
246- Response times: Critical issues - 4 hours; High - 1 business day; Normal - 3 business days.
247- Platform uptime SLA: 99.5% measured monthly, excluding scheduled maintenance windows.
248- Scheduled maintenance: Maximum 4 hours per month, notified 48 hours in advance.
249- Software updates and security patches: Applied automatically with prior notification.
250- Monthly usage report provided to designated Network Rail administrator.
251
252Hypercare Period (post-launch, duration TBC):
253- Dedicated Talvi resource available for escalation.
254- Daily check-ins during first [2] weeks post-launch.
255- Accelerated response times for all issue severities.
256
257Content Updates:
258- Additional content can be uploaded to the platform by Network Rail administrators at any time within the agreed user and content scope.
259- Bulk content ingestion requests outside the initial scope will be assessed and quoted separately.
260
261Annual Review:
262- Talvi will conduct an annual business review with Network Rail to assess adoption, ROI, and evolving requirements.`},{id:"data",title:"10. DATA PROTECTION AND SECURITY",collapsible:!0,content:`Both parties shall comply with all applicable data protection legislation including the UK GDPR and the Data Protection Act 2018.
263
264Intelligent Chunking Architecture:
265Talvi's proprietary intelligent chunking technology means that documents, SCORM files, and other content are pre-processed and broken into small, contextually relevant chunks within the deployment environment. Only the relevant chunk (approximately 5% of any given document) is ever sent to the LLM for response generation. Full documents never leave Network Rail's data environment. This architecture provides material data minimisation and GDPR compliance benefits compared to platforms that upload entire documents to LLMs.
266
267Data Sovereignty:
268- Preferred deployment region: UK / EU [TBC].
269- Data will not be transferred outside the agreed region without prior written consent.
270- Talvi will not use Network Rail's content or employee data to train any AI model.
271
272Security Standards:
273- All data in transit encrypted with TLS 1.3.
274- All data at rest encrypted with AES-256.
275- Role-based access controls (RBAC) configured per Network Rail's requirements.
276- SSO integration available (SAML 2.0 / OAuth 2.0).
277- Full audit trail of all user queries and admin actions.
278- Penetration testing: [TBC - schedule to be agreed].
279
280A Data Processing Agreement (DPA) will be executed between the parties prior to any personal data being processed. Talvi will act as Data Processor; Network Rail will act as Data Controller in respect of employee data.`},{id:"legal",title:"11. LEGAL TERMS",collapsible:!0,content:`Intellectual Property:
281All intellectual property in the Talvi platform, including software, algorithms, and technology, remains the exclusive property of Talvi Limited. Network Rail retains ownership of all content uploaded to the platform. Talvi is granted a limited licence to process Network Rail's content solely for the purpose of delivering the services under this SOW.
282
283Confidentiality:
284Both parties agree to keep confidential all non-public information received from the other party. This obligation survives termination of this SOW for a period of three (3) years.
285
286Limitation of Liability:
287Talvi's total aggregate liability under this SOW shall not exceed the total fees paid by Network Rail in the twelve (12) months preceding the event giving rise to the claim. Neither party shall be liable for indirect or consequential loss.
288
289Termination:
290Either party may terminate this SOW on ninety (90) days written notice following the go-live date. Termination during the implementation period requires mutual agreement. In the event of material breach not remedied within fourteen (14) days of written notice, either party may terminate immediately.
291
292Governing Law:
293This SOW is governed by the laws of England and Wales. Any disputes shall be referred to the exclusive jurisdiction of the courts of England and Wales.`},{id:"signatures",title:"12. SIGNATURES",collapsible:!1,content:`By signing below, the authorised representatives of each party confirm their agreement to the terms of this Statement of Work.
294
295FOR TALVI LIMITED:
296
297Signature: _________________________________
298
299Full Name: _________________________________
300
301Title: _________________________________
302
303Date: _________________________________
304
305
306FOR NETWORK RAIL INFRASTRUCTURE LIMITED:
307
308Signature: _________________________________
309
310Full Name: _________________________________
311
312Title: _________________________________
313
314Date: _________________________________
315
316
317Purchase Order Number (if required): _________________________________`}];function S(l){return l.split(`
318`).map((i,r)=>i.startsWith("- ")||i.startsWith("• ")?t.jsxs("div",{className:"flex gap-2 mb-0.5",children:[t.jsx("span",{className:"shrink-0 mt-0.5",children:"•"}),t.jsx("span",{children:i.slice(2)})]},r):i===""?t.jsx("div",{className:"h-3"},r):t.jsx("div",{children:i},r))}function C(l,i){const r=new Map(l.map(o=>[o.id,o])),u=[];for(const o of i){const a=r.get(o.id),m=o.v??1,c=(a==null?void 0:a.v)??1;a&&c>=m?u.push(a):u.push(o)}return u}function M(){const[l,i]=p.useState(()=>{try{const e=localStorage.getItem(g);if(e)return C(JSON.parse(e),h)}catch{}return h}),[r,u]=p.useState({}),[o,a]=p.useState(null),[m,c]=p.useState("idle");p.useEffect(()=>{c("saving");const e=setTimeout(()=>{try{localStorage.setItem(g,JSON.stringify(l)),c("saved"),setTimeout(()=>c("idle"),2e3)}catch{c("idle")}},800);return()=>clearTimeout(e)},[l]);const f=()=>{confirm("Reset all content to the latest defaults? Your saved edits will be lost.")&&(localStorage.removeItem(g),i(h))};p.useEffect(()=>{const e=document.title;document.title="SOW - Network Rail - Talvi",window.scrollTo(0,0);const n=document.querySelector("footer"),s=document.querySelector("nav");return n&&(n.style.display="none"),s&&(s.style.display="none"),()=>{document.title=e,n&&(n.style.display=""),s&&(s.style.display="")}},[]);const y=(e,n)=>{i(s=>s.map(d=>d.id===e?{...d,content:n}:d))},_=(e,n)=>{i(s=>s.map(d=>d.id===e?{...d,title:n}:d))},v=e=>{u(n=>({...n,[e]:!n[e]}))};return t.jsxs("div",{className:"min-h-screen bg-gray-50",children:[t.jsx("style",{children:`
319        @media print {
320          nav, footer, header, .no-print { display: none !important; }
321          @page { size: A4 portrait; margin: 20mm 25mm; }
322          body { font-size: 11pt; color: #000; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
323          pre { font-family: 'Georgia', 'Times New Roman', serif; font-size: 10.5pt; line-height: 1.5; }
324          h2 { page-break-after: avoid; font-size: 13pt; margin-top: 12pt; margin-bottom: 6pt; }
325          img { max-width: 100%; }
326        }
327      `}),t.jsxs("div",{className:"no-print sticky top-0 z-50 bg-white border-b border-gray-200 px-6 py-3 flex items-center justify-between shadow-sm",children:[t.jsxs("div",{children:[t.jsx("p",{className:"font-semibold text-gray-900 text-sm",children:"SOW - Network Rail / Talvi"}),t.jsxs("p",{className:"text-xs text-gray-500",children:[m==="saving"&&"Saving...",m==="saved"&&"All changes saved",m==="idle"&&"All changes saved to browser"]})]}),t.jsxs("div",{className:"flex gap-3",children:[t.jsxs("button",{onClick:f,className:"flex items-center gap-2 px-4 py-2 bg-gray-200 hover:bg-gray-300 text-gray-700 rounded-lg text-sm font-medium transition-colors",children:[t.jsx(b,{size:15}),"Reset to defaults"]}),t.jsxs("button",{onClick:()=>window.print(),className:"flex items-center gap-2 px-4 py-2 bg-cyan-600 hover:bg-cyan-700 text-white rounded-lg text-sm font-medium transition-colors",children:[t.jsx(A,{size:15}),"Print / Save PDF"]})]})]}),t.jsx("div",{className:"max-w-4xl mx-auto px-6 py-8 print:px-0 print:py-0",children:l.map(e=>{if(e.type==="image"){const n=R[e.imgKey];return t.jsx("div",{className:"mb-6 print:mb-4 bg-white print:bg-transparent roun
327ded-xl print:rounded-none border border-gray-100 print:border-0 shadow-sm print:shadow-none overflow-hidden",children:t.jsxs("div",{className:"px-6 pt-5 pb-2 print:px-0 print:pt-2",children:[t.jsx("p",{className:"text-sm font-bold text-gray-700 print:text-xs mb-3",children:e.title}),t.jsx("img",{src:n,alt:e.title,className:"w-full rounded-lg border border-gray-200 print:rounded-none print:border-gray-300"}),t.jsx("p",{className:"text-xs text-gray-500 italic mt-3 mb-2 print:text-xs print:mt-2",children:e.caption})]})},e.id)}return t.jsxs("div",{className:"mb-4 print:mb-3 bg-white print:bg-transparent rounded-xl print:rounded-none border border-gray-100 print:border-0 shadow-sm print:shadow-none overflow-hidden",children:[e.collapsible&&t.jsxs("div",{className:"flex items-center gap-2 px-4 py-3 print:px-0 print:py-1 cursor-pointer hover:bg-gray-50 print:hover:bg-transparent select-none",onClick:()=>v(e.id),children:[t.jsx("span",{className:"no-print text-gray-400",children:r[e.id]?t.jsx(x,{size:16}):t.jsx(w,{size:16})}),o===e.id+"-title"?t.jsx("input",{type:"text",value:e.title,onChange:n=>_(e.id,n.target.value),onBlur:()=>a(null),onKeyDown:n=>n.key==="Enter"&&a(null),onClick:n=>n.stopPropagation(),className:"flex-1 text-base font-bold text-gray-900 bg-white border border-cyan-300 rounded px-2 py-1 outline-none",autoFocus:!0}):t.jsx("h2",{className:"flex-1 text-base font-bold text-gray-900 print:text-sm print:font-bold",onDoubleClick:n=>{n.stopPropagation(),a(e.id+"-title")},children:e.title})]}),(!e.collapsible||!r[e.id])&&t.jsx("div",{className:"px-4 print:px-0",children:o===e.id?t.jsx("textarea",{value:e.content,onChange:n=>y(e.id,n.target.value),onBlur:()=>a(null),className:"w-full p-4 bg-white border border-cyan-300 rounded-lg text-sm text-gray-800 font-mono leading-relaxed outline-none resize-y",style:{minHeight:Math.max(200,e.content.split(`
328`).length*22)+"px"},autoFocus:!0}):t.jsx("div",{className:"p-4 print:p-0 print:pb-2 bg-white print:bg-transparent rounded-lg border border-transparent hover:border-gray-200 print:hover:border-transparent cursor-text transition-colors mb-2 print:mb-0",onClick:()=>a(e.id),children:t.jsx("pre",{className:"whitespace-pre-wrap text-sm text-gray-800 font-sans leading-relaxed print:text-xs print:leading-normal",children:S(e.content)})})})]},e.id)})})]})}export{M as default};

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.