.vt13 * { box-sizing: border-box; margin: 0; padding: 0; }
.vt13 { font-family: ‘Inter’, -apple-system, BlinkMacSystemFont, sans-serif; color: #111827; max-width: 980px; margin: 0 auto; padding: 0 1.25rem; }
.vt13 .serif { font-family: ‘Playfair Display’, Georgia, serif; }
.vt13 .mono { font-family: ‘JetBrains Mono’, ‘Fira Code’, monospace; } .vt13-hero { text-align: center; margin: 0 0 2.5rem; }
.vt13-hero h1 { font-family: ‘Playfair Display’, Georgia, serif; font-size: 2.4rem; line-height: 1.15; margin-bottom: 0.9rem; color: #0f172a; }
@media (min-width: 768px) { .vt13-hero h1 { font-size: 3rem; } }
.vt13-hero p { color: #4b5563; font-size: 1.03rem; line-height: 1.7; max-width: 700px; margin: 0 auto 1rem; }
.vt13-badges { display: flex; flex-wrap: wrap; justify-content: center; gap: .6rem; }
.vt13-badge { border: 1px solid #e5e7eb; background: #f9fafb; color: #4b5563; border-radius: 999px; padding: .35rem .8rem; font-size: .78rem; font-weight: 500; } .vt13-card { background: #fff; border: 1px solid #e5e7eb; border-radius: 1rem; box-shadow: 0 1px 3px rgba(15, 23, 42, .05); overflow: hidden; margin-bottom: 1.3rem; }
.vt13-card-body { padding: 1.2rem; }
@media (min-width: 768px) { .vt13-card-body { padding: 1.5rem; } } .vt13-toolbar { display: flex; gap: .6rem; flex-wrap: wrap; justify-content: space-between; align-items: center; margin-bottom: .8rem; }
.vt13-label { font-size: .78rem; font-weight: 600; text-transform: uppercase; letter-spacing: .06em; color: #6b7280; }
.vt13-upload { display: inline-flex; align-items: center; gap: .35rem; color: #4f46e5; font-size: .8rem; font-weight: 600; cursor: pointer; }
.vt13-upload input { display: none; }
.vt13-upload:hover { color: #4338ca; }
.vt13-hint { font-size: .75rem; color: #9ca3af; margin-top: .55rem; } .vt13-input { width: 100%; min-height: 280px; resize: vertical; border: 1px solid #d1d5db; border-radius: .85rem; background: #f9fafb; color: #1f2937; font-family: ‘JetBrains Mono’, monospace; font-size: .82rem; line-height: 1.58; padding: .95rem 1rem; outline: none; transition: border-color .15s, box-shadow .15s, background .15s; }
.vt13-input:focus { border-color: #111827; background: #fff; box-shadow: 0 0 0 3px rgba(17,24,39,.08); } .vt13-actions { display: flex; gap: .6rem; flex-wrap: wrap; justify-content: flex-end; margin-top: .95rem; }
.vt13-btn { border: 1px solid transparent; border-radius: .6rem; padding: .58rem 1rem; font-size: .84rem; font-weight: 600; cursor: pointer; transition: all .14s; font-family: ‘Inter’, sans-serif; }
.vt13-btn:disabled { opacity: .55; cursor: not-allowed; }
.vt13-btn-main { background: #111827; color: #fff; }
.vt13-btn-main:hover:not(:disabled) { background: #1f2937; }
.vt13-btn-soft { background: #fff; border-color: #e5e7eb; color: #374151; }
.vt13-btn-soft:hover:not(:disabled) { background: #f9fafb; }
.vt13-btn-link { background: transparent; color: #6b7280; }
.vt13-btn-link:hover:not(:disabled) { color: #111827; background: #f3f4f6; } .vt13-alert { border-radius: .75rem; padding: .8rem .9rem; margin-top: .75rem; font-size: .82rem; border: 1px solid transparent; }
.vt13-alert-error { background: #fef2f2; color: #b91c1c; border-color: #fecaca; }
.vt13-alert-info { background: #eff6ff; color: #1d4ed8; border-color: #bfdbfe; } .vt13-hidden { display: none !important; } .vt13-summary { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; margin-bottom: 1rem; }
@media (min-width: 800px) { .vt13-summary { grid-template-columns: 1.2fr repeat(4, minmax(0,1fr)); } }
.vt13-stat { background: #f9fafb; border: 1px solid #e5e7eb; border-radius: .8rem; padding: .9rem; text-align: center; }
.vt13-stat-big { display: flex; align-items: center; justify-content: center; gap: .85rem; background: linear-gradient(140deg,#0f172a,#1f2937); color: #fff; border: 0; }
.vt13-score { font-family: ‘Playfair Display’, serif; font-size: 2rem; line-height: 1; }
.vt13-grade { font-size: .78rem; letter-spacing: .06em; text-transform: uppercase; color: #d1d5db; margin-top: .25rem; }
.vt13-num { font-family: ‘Playfair Display’, serif; font-size: 1.7rem; line-height: 1; margin-bottom: .2rem; }
.vt13-k { font-size: .7rem; text-transform: uppercase; letter-spacing: .05em; color: #6b7280; font-weight: 700; } .vt13-riskbar-wrap { background: #e5e7eb; border-radius: 999px; height: 8px; overflow: hidden; margin: .75rem 0 1rem; }
.vt13-riskbar { height: 100%; width: 0%; border-radius: 999px; transition: width .25s ease; }
.vt13-riskbar.good { background: #16a34a; }
.vt13-riskbar.mid { background: #ca8a04; }
.vt13-riskbar.bad { background: #dc2626; } .vt13-sev-legend { display: flex; gap: .8rem; flex-wrap: wrap; color: #6b7280; font-size: .78rem; }
.vt13-dot { width: 10px; height: 10px; border-radius: 50%; display: inline-block; margin-right: .3rem; position: relative; top: 1px; } .vt13-subtitle { font-family: ‘Playfair Display’, serif; font-size: 1.2rem; margin-bottom: .7rem; color: #111827; } .vt13-table-wrap { overflow-x: auto; }
.vt13-table { width: 100%; border-collapse: collapse; font-size: .78rem; }
.vt13-table th, .vt13-table td { border-bottom: 1px solid #f1f5f9; text-align: left; padding: .68rem .72rem; vertical-align: top; }
.vt13-table th { background: #f8fafc; color: #475569; font-size: .68rem; text-transform: uppercase; letter-spacing: .055em; }
.vt13-table tr:hover td { background: #fafafa; }
.vt13-sev-pill { display: inline-flex; align-items: center; border-radius: 999px; padding: .15rem .52rem; font-size: .67rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; }
.vt13-sev-critical { background: #fef2f2; color: #b91c1c; border: 1px solid #fecaca; }
.vt13-sev-high { background: #fff7ed; color: #c2410c; border: 1px solid #fed7aa; }
.vt13-sev-medium { background: #fefce8; color: #a16207; border: 1px solid #fde68a; }
.vt13-sev-low { background: #eff6ff; color: #1d4ed8; border: 1px solid #bfdbfe; } .vt13-list { list-style: none; display: grid; gap: .6rem; }
.vt13-list li { border: 1px solid #e5e7eb; background: #fff; border-radius: .75rem; padding: .75rem .85rem; }
.vt13-list small { display: block; color: #64748b; margin-top: .3rem; line-height: 1.45; } .vt13-template { width: 100%; min-height: 180px; border: 1px solid #d1d5db; border-radius: .8rem; padding: .8rem .9rem; background: #f8fafc; color: #0f172a; font-family: ‘JetBrains Mono’, monospace; font-size: .78rem; line-height: 1.56; } .vt13-footer-note { text-align: center; font-size: .76rem; color: #9ca3af; margin: 1rem 0 2rem; } .vt13-empty { text-align: center; padding: 1.7rem 1rem; color: #94a3b8; } .vt13-toast { position: fixed; bottom: 1.4rem; left: 50%; transform: translateX(-50%) translateY(20px); opacity: 0; transition: all .2s ease; background: #111827; color: #fff; font-size: .8rem; padding: .6rem .95rem; border-radius: .6rem; z-index: 9999; pointer-events: none; }
.vt13-toast.show { opacity: 1; transform: translateX(-50%) translateY(0); } @media print { .vt13-actions, .vt13-toolbar, .vt13-footer-note, .vt13-card-actions { display: none !important; } .vt13-card { box-shadow: none; }
}
.env Security Scanner
Paste your .env content and get an instant risk report for exposed secrets, weak values, cloud token formats, and dangerous runtime flags. Everything runs in your browser.
Risk profile
Findings
| Line | Key | Severity | Reason |
|---|
Remediation plan
Safe .env.example template
๐ More Security Tools
Browse all 16 free tools in the Security Tools collection โ K8s YAML linter, GitHub Actions security, Terraform scanner, JWT inspector, CVE dashboard, and more.
๐ See also: Bash Scripting Reference โ free developer quick-reference.