Security & Compliance | ZMDM
:root {
–primary: #1a365d;
–primary-dark: #0f2744;
–accent: #2b6cb0;
–accent-light: #4299e1;
–warning: #c53030;
–success: #276749;
–light-bg: #f7fafc;
–border: #e2e8f0;
–text: #2d3748;
–text-muted: #718096;
}
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
html {
font-size: 16px;
}
body {
font-family: ‘DM Sans’, ‘Segoe UI’, system-ui, -apple-system, sans-serif;
font-size: 1rem;
line-height: 1.7;
color: var(–text);
background: #fff;
}
.container {
max-width: 1100px;
margin: 0 auto;
padding: 0 2rem;
}
/* Hero Section */
.hero {
background: linear-gradient(135deg, var(–primary) 0%, var(–accent) 50%, var(–primary-dark) 100%);
color: white;
padding: 5rem 2rem;
text-align: center;
position: relative;
overflow: hidden;
}
.hero::before {
content: ”;
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background:
radial-gradient(circle at 20% 80%, rgba(66, 153, 225, 0.15) 0%, transparent 50%),
radial-gradient(circle at 80% 20%, rgba(255, 255, 255, 0.08) 0%, transparent 40%);
pointer-events: none;
}
.hero-content {
position: relative;
z-index: 1;
}
.hero-badge {
display: inline-flex;
align-items: center;
gap: 0.5rem;
background: rgba(255,255,255,0.15);
backdrop-filter: blur(10px);
padding: 0.625rem 1.5rem;
border-radius: 50px;
font-size: 0.75rem;
margin-bottom: 1.5rem;
text-transform: uppercase;
letter-spacing: 1.5px;
border: 1px solid rgba(255,255,255,0.2);
}
.hero h1 {
font-size: 2.75rem;
font-weight: 700;
margin-bottom: 1.25rem;
line-height: 1.15;
letter-spacing: -0.5px;
color: #ffffff;
}
.hero .tagline {
font-size: 1.125rem;
opacity: 0.9;
max-width: 750px;
margin: 0 auto;
line-height: 1.6;
}
/* Trust Indicators */
.trust-bar {
background: var(–primary-dark);
padding: 1.5rem 2rem;
border-bottom: 3px solid var(–accent);
}
.trust-bar .container {
display: flex;
justify-content: center;
flex-wrap: wrap;
gap: 2.5rem;
}
.trust-item {
display: flex;
align-items: center;
gap: 0.75rem;
color: white;
}
.trust-item .trust-icon {
width: 40px;
height: 40px;
background: rgba(255,255,255,0.1);
border-radius: 10px;
display: flex;
align-items: center;
justify-content: center;
}
.trust-item .trust-icon svg {
width: 20px;
height: 20px;
stroke: var(–accent-light);
fill: none;
stroke-width: 2;
}
.trust-item span {
font-size: 0.875rem;
font-weight: 600;
}
/* Section Styles */
.section-header {
text-align: center;
margin-bottom: 3rem;
}
.section-header h2 {
font-size: 2rem;
color: var(–primary);
margin-bottom: 0.75rem;
font-weight: 700;
}
.section-header p {
color: var(–text-muted);
font-size: 1rem;
max-width: 700px;
margin: 0 auto;
}
/* Authentication Section */
.auth-section {
padding: 4rem 2rem;
background: var(–light-bg);
}
.auth-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: 1.5rem;
}
.auth-card {
background: white;
border-radius: 12px;
padding: 2rem;
box-shadow: 0 4px 15px rgba(0,0,0,0.06);
border-top: 4px solid var(–accent);
transition: all 0.3s ease;
}
.auth-card:hover {
transform: translateY(-4px);
box-shadow: 0 8px 25px rgba(0,0,0,0.1);
}
.auth-card .auth-icon {
width: 56px;
height: 56px;
background: linear-gradient(135deg, var(–accent) 0%, var(–primary) 100%);
border-radius: 14px;
display: flex;
align-items: center;
justify-content: center;
margin-bottom: 1.25rem;
}
.auth-card .auth-icon svg {
width: 28px;
height: 28px;
stroke: white;
fill: none;
stroke-width: 2;
stroke-linecap: round;
stroke-linejoin: round;
}
.auth-card h3 {
font-size: 1.25rem;
color: var(–primary);
margin-bottom: 0.75rem;
}
.auth-card p {
font-size: 0.9375rem;
color: var(–text-muted);
margin-bottom: 1rem;
}
.auth-features {
list-style: none;
}
.auth-features li {
padding: 0.5rem 0;
padding-left: 1.5rem;
position: relative;
font-size: 0.8125rem;
color: var(–text);
border-bottom: 1px solid var(–border);
}
.auth-features li:last-child {
border-bottom: none;
}
.auth-features li::before {
content: “✓”;
position: absolute;
left: 0;
color: var(–success);
font-weight: bold;
}
/* Encryption Section */
.encryption-section {
padding: 4rem 2rem;
background: white;
}
.encryption-layers {
display: flex;
flex-direction: column;
gap: 1rem;
max-width: 900px;
margin: 0 auto;
}
.encryption-layer {
display: flex;
align-items: center;
gap: 1.5rem;
background: var(–light-bg);
border-radius: 12px;
padding: 1.5rem 2rem;
border-left: 5px solid var(–success);
transition: all 0.3s ease;
}
.encryption-layer:hover {
transform: translateX(8px);
box-shadow: 0 4px 15px rgba(0,0,0,0.08);
}
.encryption-layer .layer-icon {
width: 48px;
height: 48px;
background: linear-gradient(135deg, var(–success) 0%, #276749 100%);
border-radius: 12px;
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
}
.encryption-layer .layer-icon svg {
width: 24px;
height: 24px;
stroke: white;
fill: none;
stroke-width: 2;
}
.encryption-layer h4 {
font-size: 1.125rem;
color: var(–primary);
margin-bottom: 0.25rem;
}
.encryption-layer p {
font-size: 0.875rem;
color: var(–text-muted);
margin: 0;
}
/* Compliance Section */
.compliance-section {
padding: 4rem 2rem;
background: var(–light-bg);
}
.compliance-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
gap: 1.5rem;
}
.compliance-card {
background: white;
border-radius: 12px;
padding: 2rem;
box-shadow: 0 4px 15px rgba(0,0,0,0.06);
text-align: center;
transition: all 0.3s ease;
border: 2px solid transparent;
}
.compliance-card:hover {
border-color: var(–accent-light);
transform: translateY(-4px);
}
.compliance-card .compliance-badge {
width: 72px;
height: 72px;
margin: 0 auto 1.25rem;
background: linear-gradient(135deg, var(–primary) 0%, var(–accent) 100%);
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
}
.compliance-card .compliance-badge svg {
width: 36px;
height: 36px;
stroke: white;
fill: none;
stroke-width: 2;
}
.compliance-card h3 {
font-size: 1.25rem;
color: var(–primary);
margin-bottom: 0.5rem;
}
.compliance-card .reg-code {
font-size: 0.75rem;
color: var(–accent);
font-weight: 600;
text-transform: uppercase;
letter-spacing: 0.5px;
margin-bottom: 1rem;
}
.compliance-card p {
font-size: 0.875rem;
color: var(–text-muted);
margin-bottom: 1rem;
}
.compliance-features {
text-align: left;
list-style: none;
}
.compliance-features li {
padding: 0.375rem 0;
padding-left: 1.25rem;
position: relative;
font-size: 0.8125rem;
color: var(–text);
}
.compliance-features li::before {
content: “•”;
position: absolute;
left: 0;
color: var(–accent);
font-weight: bold;
}
/* E-Signature Section */
.esign-section {
padding: 4rem 2rem;
background: white;
}
.esign-content {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 3rem;
align-items: center;
}
.esign-text h2 {
font-size: 1.75rem;
color: var(–primary);
margin-bottom: 1rem;
}
.esign-text p {
font-size: 1rem;
color: var(–text);
margin-bottom: 1.5rem;
}
.esign-benefits {
list-style: none;
}
.esign-benefits li {
display: flex;
align-items: flex-start;
gap: 0.75rem;
padding: 0.75rem 0;
border-bottom: 1px solid var(–border);
}
.esign-benefits li:last-child {
border-bottom: none;
}
.esign-benefits .check-icon {
width: 24px;
height: 24px;
background: var(–success);
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
margin-top: 2px;
}
.esign-benefits .check-icon svg {
width: 12px;
height: 12px;
stroke: white;
fill: none;
stroke-width: 3;
}
.esign-benefits span {
font-size: 0.9375rem;
color: var(–text);
}
.esign-visual {
background: linear-gradient(135deg, var(–primary) 0%, var(–accent) 100%);
border-radius: 16px;
padding: 2.5rem;
color: white;
}
.esign-visual h3 {
font-size: 1.25rem;
margin-bottom: 1.5rem;
color: white;
}
.signature-flow {
display: flex;
flex-direction: column;
gap: 1rem;
}
.sig-step {
display: flex;
align-items: center;
gap: 1rem;
background: rgba(255,255,255,0.1);
padding: 1rem;
border-radius: 10px;
}
.sig-step .step-num {
width: 32px;
height: 32px;
background: rgba(255,255,255,0.2);
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
font-weight: 700;
font-size: 0.875rem;
flex-shrink: 0;
}
.sig-step span {
font-size: 0.875rem;
}
/* Audit Section */
.audit-section {
padding: 4rem 2rem;
background: var(–light-bg);
}
.audit-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
gap: 1.5rem;
}
.audit-card {
background: white;
border-radius: 12px;
padding: 1.75rem;
box-shadow: 0 4px 6px rgba(0,0,0,0.07);
border-left: 4px solid var(–accent);
}
.audit-card h4 {
color: var(–primary);
margin-bottom: 0.5rem;
font-size: 1rem;
display: flex;
align-items: center;
gap: 0.625rem;
}
.audit-card .audit-icon {
width: 28px;
height: 28px;
background: var(–accent);
border-radius: 6px;
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
}
.audit-card .audit-icon svg {
width: 14px;
height: 14px;
stroke: white;
fill: none;
stroke-width: 2;
}
.audit-card p {
font-size: 0.8125rem;
color: var(–text-muted);
margin-bottom: 0;
}
/* Deployment Security Section */
.deployment-section {
padding: 4rem 2rem;
background: white;
}
.deployment-section h2 {
font-size: 1.75rem;
color: var(–primary);
margin-bottom: 1rem;
text-align: center;
}
.deployment-section > .container > p {
text-align: center;
color: var(–text-muted);
max-width: 700px;
margin: 0 auto 2.5rem;
}
.deployment-benefits {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: 1.5rem;
}
.deploy-card {
background: var(–light-bg);
border-radius: 12px;
padding: 1.75rem;
border-left: 4px solid var(–success);
}
.deploy-card h4 {
color: var(–primary);
margin-bottom: 0.5rem;
font-size: 1.125rem;
display: flex;
align-items: center;
gap: 0.75rem;
}
.deploy-card .deploy-icon {
width: 32px;
height: 32px;
background: var(–success);
border-radius: 8px;
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
}
.deploy-card .deploy-icon svg {
width: 16px;
height: 16px;
stroke: white;
fill: none;
stroke-width: 2;
}
.deploy-card p {
font-size: 0.875rem;
color: var(–text-muted);
margin-bottom: 0;
}
/* Highlight Box */
.highlight-box {
background: linear-gradient(135deg, var(–primary) 0%, var(–accent) 100%);
color: white;
padding: 2.5rem;
border-radius: 12px;
margin-top: 2.5rem;
text-align: center;
}
.highlight-box h3 {
color: white;
margin-bottom: 0.75rem;
font-size: 1.375rem;
}
.highlight-box p {
color: rgba(255,255,255,0.9);
margin-bottom: 0;
max-width: 650px;
margin-left: auto;
margin-right: auto;
}
/* CTA Section */
.cta-section {
background: linear-gradient(135deg, var(–primary) 0%, var(–accent) 100%);
padding: 5rem 2rem;
text-align: center;
position: relative;
overflow: hidden;
}
.cta-section::before {
content: ”;
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background:
radial-gradient(circle at 30% 70%, rgba(255, 255, 255, 0.1) 0%, transparent 50%),
radial-gradient(circle at 70% 30%, rgba(255, 255, 255, 0.05) 0%, transparent 40%);
pointer-events: none;
}
.cta-content {
position: relative;
z-index: 1;
}
.cta-section h2 {
color: white;
font-size: 2rem;
font-weight: 700;
margin-bottom: 1rem;
}
.cta-section p {
color: rgba(255,255,255,0.9);
font-size: 1.125rem;
max-width: 550px;
margin: 0 auto 2.5rem;
}
.cta-buttons {
display: flex;
justify-content: center;
gap: 1.25rem;
flex-wrap: wrap;
}
.cta-btn {
display: inline-block;
padding: 0.875rem 1.75rem;
font-size: 0.875rem;
font-weight: 600;
text-decoration: none;
border-radius: 8px;
transition: all 0.3s ease;
text-align: center;
}
.cta-primary {
background: white;
color: var(–primary);
}
.cta-primary:hover {
background: var(–light-bg);
transform: translateY(-3px);
box-shadow: 0 8px 25px rgba(0,0,0,0.2);
}
.cta-secondary {
background: transparent;
color: white;
border: 2px solid rgba(255,255,255,0.5);
}
.cta-secondary:hover {
background: rgba(255,255,255,0.1);
border-color: white;
transform: translateY(-3px);
}
/* Responsive */
@media (max-width: 768px) {
html {
font-size: 15px;
}
.hero h1 {
font-size: 2rem;
}
.trust-bar .container {
gap: 1.5rem;
}
.esign-content {
grid-template-columns: 1fr;
}
.cta-section h2 {
font-size: 1.75rem;
}
}
Enterprise Security
Security & Compliance
ZMDM’s private cloud deployment provides complete control so that you can apply you own data protection and security policies. The solution has in-built support for role-based access control, comprehensive authentication, encryption, audit trails, and regulatory compliance.
Apply your own data protection and security policies
Single Sign-On (SSO)
Seamlessly integrate with your existing identity provider for unified authentication across your enterprise.
- Azure Active Directory
- OKTA Integration
- SAML 2.0 Support
- OAuth 2.0 / OpenID Connect
- LDAP Directory Services
Multi-Factor Authentication
Add an extra layer of security with MFA support for all user accounts and critical operations.
- Authenticator App Support
- SMS Verification
- Email Verification Codes
- Hardware Token Support
- Configurable MFA Policies
Role & Group Authorization
Advanced role-based access control with organizational and supply chain hierarchy support.
- Granular Role Definitions
- Group-Based Permissions
- Organization Hierarchy Support
- Supply Chain Role Mapping
- Activity-Level Authorization
Transport Layer Security (SSL/TLS)
All communication between browser and ZMDM server is encrypted using industry-standard TLS 1.3 protocols.
Database Encryption
Full database encryption with AES-256 ensures all stored master data is protected at rest.
Field-Level Encryption
Selectively encrypt sensitive fields like banking information, SSN, and proprietary specifications.
Customer-Managed Encryption Keys
Full control over encryption keys using your own KMS/HSM, aligned with your internal security standards.
Folder-Level Security
Collaborative repository with granular folder permissions for document and file security.
FDA 21 CFR Part 11
Electronic Records & Signatures
Full compliance with FDA requirements for electronic records and electronic signatures in regulated industries.
- Electronic signature capture
- Signature manifestation requirements
- Audit trail for all changes
- System access controls
- Record integrity validation
GxP Compliance
Good Practice Guidelines
Support for pharmaceutical, medical device, and life sciences good practice regulations.
- GMP, GLP, GCP support
- Validation documentation
- Change control workflows
- Training record management
- Deviation handling
SOX Compliance
Sarbanes-Oxley Act
Controls and audit trails supporting financial reporting requirements and internal control assessments.
- Segregation of duties
- Access control documentation
- Change management audit
- Financial data integrity
- Management certification support
Electronic Signature Support
ZMDM provides comprehensive electronic signature capabilities that meet FDA 21 CFR Part 11 requirements for regulated industries, ensuring legally binding approvals with full traceability.
-
Signature with Meaning: Capture intent (approved, rejected, reviewed) with each signature
-
Re-authentication: Require password/MFA confirmation at signature time
-
Timestamp Recording: Capture exact date/time of each signature event
-
Non-Repudiation: Signatures are permanently linked to signer identity
-
Signature Manifestation: Display signer name, date, and meaning on records
Electronic Signature Flow
1
User reaches approval activity in workflow
2
System prompts for re-authentication
3
User enters credentials and selects signature meaning
4
System captures signature with timestamp
5
Audit trail permanently records signature event
Data Change History
Complete before/after values for every field change with user, timestamp, and reason.
User Activity Logs
Track login attempts, session activity, and user actions throughout the system.
Workflow Audit Trail
Full history of workflow execution including approvals, rejections, and routing decisions.
Access Control Logs
Record of permission changes, role assignments, and authorization events.
Integration Logs
Detailed logging of all data exchanges with external systems including errors and retries.
SIEM Integration
Route logs to your existing SIEM, monitoring, and alerting tools for centralized security oversight.
Secure Deployment Architecture
ZMDM runs entirely within your own cloud account and VPC, ensuring complete control over your data and infrastructure.
Data Stays in Your VPC
All application data remains inside your own VPC/private cloud — never in a shared, multi-tenant SaaS environment.
Network Isolation
Access restricted to internal networks or VPN/peering, reducing attack surface and simplifying security reviews.
Data Residency Control
Deploy in specific regions or data centers to satisfy data residency and sovereignty requirements.
Your Security Controls
Use your own VPC, subnets, security groups, firewalls, and VPN configurations aligned with your standards.
Controlled Change Windows
Choose maintenance windows, rollback strategies, and release cadence aligned with your change management process.
IP & Custom Logic Protection
Custom workflows, scripts, and business rules live inside your environment alongside your source control.
Complete Data Ownership
Because ZMDM runs in your VPC and uses your own databases and file systems, you retain complete control over data and infrastructure — ensuring a clean exit strategy with no complex data extraction required.
Ready to Secure Your Master Data?
Learn how ZMDM’s enterprise security features can protect your critical master data while meeting regulatory requirements.