:root { --bg-color: #1e1e1e; --text-color: #e0e0e0; --section-bg: #2d2d2d; --border-color: #404040; --highlight: #3c5c7c; --success: #4caf50; --warning: #ff9800; --error: #f44336; } body { background-color: var(--bg-color); color: var(--text-color); font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; line-height: 1.6; margin: 0; padding: 20px; } h1, h2, h3 { color: var(--text-color); border-bottom: 1px solid var(--border-color); padding-bottom: 10px; } .container { max-width: 1200px; margin: 0 auto; } textarea { width: 100%; height: 120px; background-color: var(--section-bg); color: var(--text-color); border: 1px solid var(--border-color); padding: 6px; border-radius: 4px; font-family: monospace; margin-bottom: 10px; } button { background-color: #4CAF50; border: none; color: white; padding: 10px 20px; text-align: center; text-decoration: none; display: inline-block; font-size: 14px; margin: 4px 2px; cursor: pointer; border-radius: 4px; transition: background-color 0.3s; } button:hover { background-color: #45a049; } .section { background-color: var(--section-bg); border-radius: 8px; padding: 12px 15px; margin: 10px 0; box-shadow: 0 2px 4px rgba(0,0,0,0.2); } .score-container { text-align: center; padding: 20px; margin: 20px 0; } .score-flex { display: flex; align-items: center; justify-content: center; gap: 60px; width: 100%; } .score-left { display: flex; flex-direction: column; align-items: center; min-width: 180px; } .score-indicators { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; } .score-container h2 { font-size: 1.3em; margin-bottom: 8px; border-bottom: none; padding-bottom: 0; } .score-circle { width: 110px; height: 110px; border-radius: 50%; margin: 0 auto; position: relative; background: conic-gradient(var(--success) 0%, var(--success) var(--score), #444 var(--score), #444 100%); } .score-inner { position: absolute; width: 90px; height: 90px; background: var(--section-bg); border-radius: 50%; top: 10px; left: 10px; display: flex; align-items: center; justify-content: center; font-size: 1.7em; font-weight: bold; } .status { padding: 8px 12px; margin: 5px 0; border-radius: 4px; display: inline-block; font-weight: bold; } .status.good { background-color: #2d5a2d; color: #90EE90; border-left: 4px solid #4CAF50; } .status.warning { background-color: #5a4d2d; color: #FFD700; border-left: 4px solid #FF9800; } .status.error { background-color: #5a2d2d; color: #FFB6C1; border-left: 4px solid #f44336; } .grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; align-items: start; margin: 10px 0; width: 100%; } pre, code { background-color: var(--bg-color); padding: 6px; border-radius: 4px; overflow-x: auto; white-space: pre-wrap; word-break: break-word; font-size: 0.97em; max-width: 100%; } .details pre { white-space: pre-wrap; word-break: break-word; } .mail-flow { position: relative; list-style: none; padding-left: 20px; } .mail-flow li { position: relative; padding: 10px; margin: 10px 0; background-color: var(--bg-color); border-radius: 4px; } .mail-flow li::before { content: "↓"; position: absolute; left: -20px; color: white; } .mail-flow li:first-child::before { display: none; } .compact-score { padding: 10px 15px; margin: 10px 0 10px 0; } /* Security Analysis vertical layout */ .security-analysis-vertical { display: flex; flex-direction: column; gap: 18px; } .security-analysis-vertical .section { margin-bottom: 15px; padding: 10px; border-left: 3px solid #555; background: none; box-shadow: none; } nav { width: 100%; background: #181818; padding: 0.5em 0 0.5em 1.5em; margin-bottom: 18px; box-shadow: 0 2px 4px rgba(0,0,0,0.12); display: flex; align-items: center; } nav a { color: #fff; text-decoration: none; font-weight: bold; font-size: 1.1em; margin-right: 2em; letter-spacing: 0.5px; } nav a:hover { text-decoration: underline; } nav a.active { color: #00ff88; border-bottom: 2px solid #00ff88; padding-bottom: 2px; } .container, .section, .grid { word-break: break-word; overflow-wrap: anywhere; } .explanation { background-color: #2a2a2a; border-left: 4px solid #555; padding: 10px; margin: 10px 0; border-radius: 0 4px 4px 0; } .explanation small { color: #ccc; line-height: 1.4; } /* Text wrapping improvements for better PDF export and display */ pre { white-space: pre-wrap !important; word-wrap: break-word !important; word-break: break-word !important; overflow-wrap: break-word !important; max-width: 100% !important; overflow: hidden !important; } table { table-layout: fixed; width: 100%; } td, th { word-wrap: break-word; word-break: break-word; overflow-wrap: break-word; max-width: 0; overflow: hidden; } /* Specific improvements for the report container */ #report { word-wrap: break-word; overflow-wrap: break-word; } #report * { max-width: 100%; box-sizing: border-box; } /* PDF-specific print styles */ @media print { body { font-size: 12px; line-height: 1.4; background: white !important; color: black !important; } /* Override all colors for print */ * { background: white !important; color: black !important; border-color: #000 !important; } /* Make sure containers use full width */ .container { max-width: 100% !important; padding: 10px !important; margin: 0 !important; } #report { max-width: 100% !important; padding: 0 !important; margin: 0 !important; background: white !important; } #report * { word-wrap: break-word !important; word-break: break-word !important; overflow-wrap: break-word !important; max-width: 100% !important; background: white !important; color: black !important; } #report pre { font-size: 10px !important; white-space: pre-wrap !important; word-break: break-all !important; background: #f5f5f5 !important; border: 1px solid #ccc !important; padding: 5px !important; } #report table { table-layout: fixed !important; width: 100% !important; border-collapse: collapse !important; } #report td, #report th { word-wrap: break-word !important; word-break: break-word !important; overflow-wrap: break-word !important; padding: 4px !important; font-size: 10px !important; border: 1px solid #000 !important; background: white !important; color: black !important; } .section { page-break-inside: avoid; margin-bottom: 15px !important; padding: 10px !important; border: 1px solid #ccc !important; background: white !important; } .status { background: #f0f0f0 !important; color: black !important; border: 1px solid #999 !important; padding: 2px 5px !important; } .status.good { background: #e8f5e8 !important; color: black !important; } .status.warning { background: #fff3cd !important; color: black !important; } .status.error { background: #f8d7da !important; color: black !important; } /* Hide buttons in print */ button { display: none !important; } /* Navigation should be hidden */ nav { display: none !important; } h1, h2, h3 { color: black !important; border-bottom: 2px solid black !important; background: white !important; } } @media (max-width: 700px) { .score-flex { flex-direction: column; align-items: stretch; gap: 15px; } .score-indicators { flex-direction: row; gap: 8px; min-width: 0; justify-content: center; } } @media (max-width: 768px) { .grid { grid-template-columns: 1fr; } } .password-generator { max-width: 800px; margin: 0 auto; padding: 20px; } .password-output { background: #1a1a1a; border: 2px solid #333; border-radius: 8px; padding: 20px; margin: 20px 0; font-family: 'Courier New', monospace; font-size: 18px; word-break: break-all; position: relative; } .password-text { color: #00ff88; font-weight: bold; margin-bottom: 10px; } .copy-btn { background: #007acc; color: white; border: none; padding: 8px 16px; border-radius: 4px; cursor: pointer; font-size: 14px; } .copy-btn:hover { background: #005999; } .copy-btn.copied { background: #00aa44; } .controls { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; margin: 20px 0; } .control-group { background: #1a1a1a; border: 1px solid #333; border-radius: 8px; padding: 20px; } .control-group h3 { margin-top: 0; color: #00ff88; border-bottom: 1px solid #333; padding-bottom: 10px; } .form-row { margin: 15px 0; display: flex; align-items: center; gap: 10px; } .form-row label { flex: 1; color: #ccc; } .form-row input[type="number"], .form-row input[type="text"], .form-row select { background: #2a2a2a; border: 1px solid #444; color: #fff; padding: 8px; border-radius: 4px; width: 120px; } .form-row input[type="text"] { width: 200px; } .form-row input[type="checkbox"] { width: auto; } .generate-btn { background: #00aa44; color: white; border: none; padding: 15px 30px; border-radius: 8px; cursor: pointer; font-size: 16px; font-weight: bold; width: 100%; margin: 20px 0; } .generate-btn:hover { background: #008833; } .tab-buttons { display: flex; margin-bottom: 20px; border-radius: 8px; overflow: hidden; border: 1px solid #333; } .tab-btn { flex: 1; background: #2a2a2a; color: #ccc; border: none; padding: 15px; cursor: pointer; font-size: 16px; } .tab-btn.active { background: #007acc; color: white; } .tab-btn:hover:not(.active) { background: #333; } .passphrase-controls { display: none; } .passphrase-controls.active { display: block; } /* Notification styles */ .notification { position: fixed; top: 20px; right: 20px; padding: 12px 20px; border-radius: 6px; color: white; font-weight: bold; font-size: 14px; box-shadow: 0 4px 12px rgba(0,0,0,0.15); z-index: 1000; transform: translateX(100%); transition: transform 0.3s ease-in-out; } .notification.show { transform: translateX(0); } .notification.success { background: #28a745; } .notification.info { background: #17a2b8; } .notification.warning { background: #ffc107; color: #212529; } .notification.error { background: #dc3545; } @media (max-width: 768px) { .controls { grid-template-columns: 1fr; } .notification { top: 10px; right: 10px; left: 10px; transform: translateY(-100%); } .notification.show { transform: translateY(0); } }