439 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			CSS
		
	
	
	
	
	
			
		
		
	
	
			439 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			CSS
		
	
	
	
	
	
/*
 | 
						|
    ███████╗██████╗ ███████╗ ██████╗████████╗     ██████╗  ██████╗ ██╗  ██╗███████╗
 | 
						|
    ██╔════╝██╔══██╗██╔════╝██╔═══██╗╚══██╔══╝    ██╔═══██╗██╔═══██╗╚██╗██╔╝██╔════╝
 | 
						|
    ███████╗██████╔╝█████╗  ██║   ██║   ██║       ██║   ██║██║   ██║ ╚███╔╝ ███████╗
 | 
						|
    ╚════██║██╔══██╗██╔══╝  ██║   ██║   ██║       ██║   ██║██║   ██║ ██╔██╗ ╚════██║
 | 
						|
    ███████║██║  ██║███████╗╚██████╔╝   ██║       ╚██████╔╝╚██████╔╝██╔╝ ██╗███████║
 | 
						|
    ╚══════╝╚═╝  ╚═╝╚══════╝ ╚═════╝    ╚═╝        ╚═════╝  ╚═════╝ ╚═╝  ╚═╝╚══════╝
 | 
						|
    
 | 
						|
    TACTICAL THEME - DNS RECONNAISSANCE INTERFACE
 | 
						|
    STYLE OVERRIDE
 | 
						|
*/
 | 
						|
 | 
						|
* {
 | 
						|
    margin: 0;
 | 
						|
    padding: 0;
 | 
						|
    box-sizing: border-box;
 | 
						|
}
 | 
						|
 | 
						|
body {
 | 
						|
    font-family: 'Roboto Mono', 'Lucida Console', Monaco, monospace;
 | 
						|
    line-height: 1.6;
 | 
						|
    color: #c7c7c7; /* Light grey for readability */
 | 
						|
    /* Dark, textured background for a gritty feel */
 | 
						|
    background-color: #1a1a1a;
 | 
						|
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3E%3Cpath fill='%23333333' fill-opacity='0.4' d='M1 3h1v1H1V3zm2-2h1v1H3V1z'%3E%3C/path%3E%3C/svg%3E");
 | 
						|
    min-height: 100vh;
 | 
						|
}
 | 
						|
 | 
						|
.container {
 | 
						|
    max-width: 1200px;
 | 
						|
    margin: 0 auto;
 | 
						|
    padding: 20px;
 | 
						|
}
 | 
						|
 | 
						|
header {
 | 
						|
    text-align: center;
 | 
						|
    color: #e0e0e0;
 | 
						|
    margin-bottom: 40px;
 | 
						|
    border-bottom: 1px solid #444;
 | 
						|
    padding-bottom: 20px;
 | 
						|
}
 | 
						|
 | 
						|
header h1 {
 | 
						|
    font-family: 'Special Elite', 'Courier New', monospace; /* Stencil / Typewriter font */
 | 
						|
    font-size: 2.8rem;
 | 
						|
    color: #00ff41; /* Night-vision green */
 | 
						|
    text-shadow: 0 0 5px rgba(0, 255, 65, 0.5);
 | 
						|
    margin-bottom: 10px;
 | 
						|
    letter-spacing: 2px;
 | 
						|
}
 | 
						|
 | 
						|
header p {
 | 
						|
    font-size: 1.1rem;
 | 
						|
    color: #a0a0a0;
 | 
						|
}
 | 
						|
 | 
						|
.scan-form, .progress-section, .results-section {
 | 
						|
    background: #2a2a2a; /* Dark charcoal */
 | 
						|
    border-radius: 4px; /* Sharper edges */
 | 
						|
    border: 1px solid #444;
 | 
						|
    box-shadow: inset 0 0 15px rgba(0,0,0,0.5);
 | 
						|
    padding: 30px;
 | 
						|
    margin-bottom: 25px;
 | 
						|
}
 | 
						|
 | 
						|
.scan-form h2, .progress-section h2, .results-section h2 {
 | 
						|
    margin-bottom: 20px;
 | 
						|
    color: #e0e0e0;
 | 
						|
    border-bottom: 1px solid #555;
 | 
						|
    padding-bottom: 10px;
 | 
						|
    text-transform: uppercase; /* Military style */
 | 
						|
    letter-spacing: 1px;
 | 
						|
}
 | 
						|
 | 
						|
.form-group {
 | 
						|
    margin-bottom: 20px;
 | 
						|
}
 | 
						|
 | 
						|
.form-group label {
 | 
						|
    display: block;
 | 
						|
    margin-bottom: 8px;
 | 
						|
    font-weight: 600;
 | 
						|
    color: #b0b0b0;
 | 
						|
    text-transform: uppercase;
 | 
						|
    font-size: 0.9rem;
 | 
						|
}
 | 
						|
 | 
						|
.form-group input, .form-group select {
 | 
						|
    width: 100%;
 | 
						|
    padding: 12px;
 | 
						|
    background: #1a1a1a;
 | 
						|
    border: 1px solid #555;
 | 
						|
    border-radius: 2px;
 | 
						|
    font-size: 16px;
 | 
						|
    color: #00ff41; /* Green text for input fields */
 | 
						|
    font-family: 'Roboto Mono', monospace;
 | 
						|
    transition: all 0.2s ease-in-out;
 | 
						|
}
 | 
						|
 | 
						|
.form-group input:focus, .form-group select:focus {
 | 
						|
    outline: none;
 | 
						|
    border-color: #ff9900; /* Amber focus color */
 | 
						|
    box-shadow: 0 0 5px rgba(255, 153, 0, 0.5);
 | 
						|
}
 | 
						|
 | 
						|
.api-keys {
 | 
						|
    background: rgba(0,0,0,0.3);
 | 
						|
    padding: 20px;
 | 
						|
    border-radius: 4px;
 | 
						|
    border: 1px solid #444;
 | 
						|
    margin: 20px 0;
 | 
						|
}
 | 
						|
 | 
						|
.api-keys h3 {
 | 
						|
    margin-bottom: 15px;
 | 
						|
    color: #c7c7c7;
 | 
						|
}
 | 
						|
 | 
						|
.btn-primary, .btn-secondary {
 | 
						|
    padding: 12px 24px;
 | 
						|
    border: 1px solid #666;
 | 
						|
    border-radius: 2px;
 | 
						|
    font-size: 16px;
 | 
						|
    font-weight: 600;
 | 
						|
    cursor: pointer;
 | 
						|
    transition: all 0.2s ease-in-out;
 | 
						|
    margin-right: 10px;
 | 
						|
    margin-bottom: 10px;
 | 
						|
    text-transform: uppercase;
 | 
						|
    letter-spacing: 1px;
 | 
						|
}
 | 
						|
 | 
						|
.btn-primary {
 | 
						|
    background: #2c5c34; /* Dark military green */
 | 
						|
    color: #e0e0e0;
 | 
						|
    border-color: #3b7b46;
 | 
						|
}
 | 
						|
 | 
						|
.btn-primary:hover {
 | 
						|
    background: #3b7b46; /* Lighter green on hover */
 | 
						|
    color: #fff;
 | 
						|
    border-color: #4cae5c;
 | 
						|
}
 | 
						|
 | 
						|
.btn-secondary {
 | 
						|
    background: #4a4a4a; /* Dark grey */
 | 
						|
    color: #c7c7c7;
 | 
						|
    border-color: #666;
 | 
						|
}
 | 
						|
 | 
						|
.btn-secondary:hover {
 | 
						|
    background: #5a5a5a;
 | 
						|
}
 | 
						|
 | 
						|
.btn-secondary.active {
 | 
						|
    background: #6a4f2a; /* Amber/Brown for active state */
 | 
						|
    color: #fff;
 | 
						|
    border-color: #ff9900;
 | 
						|
}
 | 
						|
 | 
						|
.progress-bar {
 | 
						|
    width: 100%;
 | 
						|
    height: 20px;
 | 
						|
    background: #1a1a1a;
 | 
						|
    border: 1px solid #555;
 | 
						|
    border-radius: 2px;
 | 
						|
    overflow: hidden;
 | 
						|
    margin-bottom: 15px;
 | 
						|
    padding: 2px;
 | 
						|
}
 | 
						|
 | 
						|
.progress-fill {
 | 
						|
    height: 100%;
 | 
						|
    background: #ff9900; /* Solid amber progress fill */
 | 
						|
    width: 0%;
 | 
						|
    transition: width 0.3s ease;
 | 
						|
    border-radius: 0;
 | 
						|
}
 | 
						|
 | 
						|
#progressMessage {
 | 
						|
    font-weight: 500;
 | 
						|
    color: #a0a0a0;
 | 
						|
    margin-bottom: 20px;
 | 
						|
}
 | 
						|
 | 
						|
.scan-controls {
 | 
						|
    text-align: center;
 | 
						|
}
 | 
						|
 | 
						|
.results-controls {
 | 
						|
    margin-bottom: 20px;
 | 
						|
    text-align: center;
 | 
						|
}
 | 
						|
 | 
						|
.report-container {
 | 
						|
    background: #0a0a0a; /* Near-black terminal background */
 | 
						|
    border-radius: 4px;
 | 
						|
    border: 1px solid #333;
 | 
						|
    padding: 20px;
 | 
						|
    max-height: 600px;
 | 
						|
    overflow-y: auto;
 | 
						|
    box-shadow: inset 0 0 10px #000;
 | 
						|
}
 | 
						|
 | 
						|
#reportContent {
 | 
						|
    color: #00ff41; /* Classic terminal green */
 | 
						|
    font-family: 'Courier New', monospace;
 | 
						|
    font-size: 14px;
 | 
						|
    line-height: 1.4;
 | 
						|
    white-space: pre-wrap;
 | 
						|
    word-wrap: break-word;
 | 
						|
}
 | 
						|
 | 
						|
.hostname-list, .ip-list {
 | 
						|
    display: flex;
 | 
						|
    flex-wrap: wrap;
 | 
						|
    gap: 5px;
 | 
						|
}
 | 
						|
 | 
						|
.discovery-item {
 | 
						|
    background: #2a2a2a;
 | 
						|
    color: #00ff41;
 | 
						|
    padding: 2px 6px;
 | 
						|
    border-radius: 2px;
 | 
						|
    font-family: 'Courier New', monospace;
 | 
						|
    font-size: 0.8rem;
 | 
						|
    border: 1px solid #444;
 | 
						|
}
 | 
						|
 | 
						|
.activity-list {
 | 
						|
    max-height: 150px;
 | 
						|
    overflow-y: auto;
 | 
						|
}
 | 
						|
 | 
						|
.activity-item {
 | 
						|
    color: #a0a0a0;
 | 
						|
    font-family: 'Courier New', monospace;
 | 
						|
    font-size: 0.8rem;
 | 
						|
    padding: 2px 0;
 | 
						|
    border-bottom: 1px solid #333;
 | 
						|
}
 | 
						|
 | 
						|
.activity-item:last-child {
 | 
						|
    border-bottom: none;
 | 
						|
}
 | 
						|
 | 
						|
/* Live Discoveries Base Styling */
 | 
						|
.live-discoveries {
 | 
						|
    background: rgba(0, 20, 0, 0.6);
 | 
						|
    border: 1px solid #00ff41;
 | 
						|
    border-radius: 4px;
 | 
						|
    padding: 20px;
 | 
						|
    margin-top: 20px;
 | 
						|
}
 | 
						|
 | 
						|
.live-discoveries h3 {
 | 
						|
    color: #00ff41;
 | 
						|
    margin-bottom: 15px;
 | 
						|
    text-transform: uppercase;
 | 
						|
    letter-spacing: 1px;
 | 
						|
}
 | 
						|
 | 
						|
/* Enhanced styling for live discoveries when shown in results view */
 | 
						|
.results-section .live-discoveries {
 | 
						|
    background: rgba(0, 40, 0, 0.8);
 | 
						|
    border: 2px solid #00ff41;
 | 
						|
    border-radius: 4px;
 | 
						|
    padding: 20px;
 | 
						|
    margin-bottom: 25px;
 | 
						|
    box-shadow: 0 0 10px rgba(0, 255, 65, 0.3);
 | 
						|
}
 | 
						|
 | 
						|
.results-section .live-discoveries h3 {
 | 
						|
    color: #00ff41;
 | 
						|
    text-shadow: 0 0 3px rgba(0, 255, 65, 0.5);
 | 
						|
}
 | 
						|
 | 
						|
/* Ensure the progress section flows nicely when showing both progress and results */
 | 
						|
.progress-section.with-results {
 | 
						|
    margin-bottom: 0;
 | 
						|
    border-bottom: none;
 | 
						|
}
 | 
						|
 | 
						|
.results-section.with-live-data {
 | 
						|
    border-top: 1px solid #444;
 | 
						|
    padding-top: 20px;
 | 
						|
}
 | 
						|
 | 
						|
/* Better spacing for the combined view */
 | 
						|
.progress-section + .results-section {
 | 
						|
    margin-top: 0;
 | 
						|
}
 | 
						|
 | 
						|
/* Hide specific progress elements while keeping the section visible */
 | 
						|
.progress-section .progress-bar.hidden,
 | 
						|
.progress-section #progressMessage.hidden,
 | 
						|
.progress-section .scan-controls.hidden {
 | 
						|
    display: none !important;
 | 
						|
}
 | 
						|
 | 
						|
.stats-grid {
 | 
						|
    display: grid;
 | 
						|
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
 | 
						|
    gap: 15px;
 | 
						|
    margin-bottom: 20px;
 | 
						|
}
 | 
						|
 | 
						|
.stat-item {
 | 
						|
    display: flex;
 | 
						|
    justify-content: space-between;
 | 
						|
    align-items: center;
 | 
						|
    padding: 8px 12px;
 | 
						|
    background: rgba(0, 0, 0, 0.5);
 | 
						|
    border: 1px solid #333;
 | 
						|
    border-radius: 2px;
 | 
						|
}
 | 
						|
 | 
						|
.stat-label {
 | 
						|
    color: #a0a0a0;
 | 
						|
    font-size: 0.9rem;
 | 
						|
}
 | 
						|
 | 
						|
.stat-value {
 | 
						|
    color: #00ff41;
 | 
						|
    font-weight: bold;
 | 
						|
    font-family: 'Courier New', monospace;
 | 
						|
    transition: background-color 0.3s ease;
 | 
						|
}
 | 
						|
 | 
						|
/* Animation for final stats highlight */
 | 
						|
@keyframes finalHighlight {
 | 
						|
    0% { background-color: #ff9900; }
 | 
						|
    100% { background-color: transparent; }
 | 
						|
}
 | 
						|
 | 
						|
.stat-value.final {
 | 
						|
    animation: finalHighlight 2s ease-in-out;
 | 
						|
}
 | 
						|
 | 
						|
.discoveries-list {
 | 
						|
    margin-top: 20px;
 | 
						|
}
 | 
						|
 | 
						|
.discoveries-list h4 {
 | 
						|
    color: #ff9900;
 | 
						|
    margin-bottom: 15px;
 | 
						|
    border-bottom: 1px solid #444;
 | 
						|
    padding-bottom: 5px;
 | 
						|
}
 | 
						|
 | 
						|
.discovery-section {
 | 
						|
    margin-bottom: 15px;
 | 
						|
    padding: 10px;
 | 
						|
    background: rgba(0, 0, 0, 0.3);
 | 
						|
    border: 1px solid #333;
 | 
						|
    border-radius: 2px;
 | 
						|
}
 | 
						|
 | 
						|
.discovery-section strong {
 | 
						|
    color: #c7c7c7;
 | 
						|
    display: block;
 | 
						|
    margin-bottom: 8px;
 | 
						|
    font-size: 0.9rem;
 | 
						|
}
 | 
						|
 | 
						|
/* Tactical loading spinner */
 | 
						|
.loading {
 | 
						|
    display: inline-block;
 | 
						|
    width: 20px;
 | 
						|
    height: 20px;
 | 
						|
    border: 3px solid rgba(199, 199, 199, 0.3);
 | 
						|
    border-radius: 50%;
 | 
						|
    border-top-color: #00ff41; /* Night-vision green spinner */
 | 
						|
    animation: spin 1s linear infinite;
 | 
						|
}
 | 
						|
 | 
						|
@keyframes spin {
 | 
						|
    to { transform: rotate(360deg); }
 | 
						|
}
 | 
						|
 | 
						|
/* Responsive design adjustments */
 | 
						|
@media (max-width: 768px) {
 | 
						|
    .container {
 | 
						|
        padding: 10px;
 | 
						|
    }
 | 
						|
    
 | 
						|
    header h1 {
 | 
						|
        font-size: 2.2rem;
 | 
						|
    }
 | 
						|
    
 | 
						|
    .scan-form, .progress-section, .results-section {
 | 
						|
        padding: 20px;
 | 
						|
    }
 | 
						|
    
 | 
						|
    .btn-primary, .btn-secondary {
 | 
						|
        width: 100%;
 | 
						|
        margin-right: 0;
 | 
						|
    }
 | 
						|
    
 | 
						|
    .results-controls {
 | 
						|
        display: flex;
 | 
						|
        flex-wrap: wrap;
 | 
						|
        justify-content: center;
 | 
						|
    }
 | 
						|
    
 | 
						|
    .results-controls button {
 | 
						|
        flex: 1;
 | 
						|
        min-width: 120px;
 | 
						|
    }
 | 
						|
    
 | 
						|
    .stats-grid {
 | 
						|
        grid-template-columns: repeat(2, 1fr);
 | 
						|
        gap: 10px;
 | 
						|
    }
 | 
						|
    
 | 
						|
    .stat-item {
 | 
						|
        padding: 6px 8px;
 | 
						|
    }
 | 
						|
    
 | 
						|
    .stat-label, .stat-value {
 | 
						|
        font-size: 0.8rem;
 | 
						|
    }
 | 
						|
    
 | 
						|
    .hostname-list, .ip-list {
 | 
						|
        flex-direction: column;
 | 
						|
        align-items: flex-start;
 | 
						|
    }
 | 
						|
 | 
						|
    /* Responsive adjustments for the combined view */
 | 
						|
    .results-section .live-discoveries {
 | 
						|
        padding: 15px;
 | 
						|
        margin-bottom: 15px;
 | 
						|
    }
 | 
						|
    
 | 
						|
    .results-section .live-discoveries .stats-grid {
 | 
						|
        grid-template-columns: repeat(2, 1fr);
 | 
						|
        gap: 10px;
 | 
						|
    }
 | 
						|
} |