/* IP WHOIS Analyzer Pro - Custom Styles */ :root[data-bs-theme="dark"] { --accent: #00d4ff; --accent-rgb: 0, 212, 255; --accent-hover: #00b8e6; } :root[data-bs-theme="light"] { --accent: #0d6efd; --accent-rgb: 13, 110, 253; --accent-hover: #0b5ed7; } body { background: var(--bs-body-bg); min-height: 100vh; padding-bottom: 3rem; } /* Header Gradient */ .header-gradient { background: linear-gradient(135deg, var(--accent) 0%, #667eea 100%); padding: 3rem 2rem; border-radius: 12px; margin-bottom: 2rem; box-shadow: 0 10px 30px rgba(var(--accent-rgb), 0.2); position: relative; overflow: hidden; } .header-gradient::before { content: ''; position: absolute; top: -50%; right: -50%; width: 200%; height: 200%; background: radial-gradient(circle, rgba(255,255,255,0.1) 0%, transparent 70%); animation: pulse 15s ease-in-out infinite; } @keyframes pulse { 0%, 100% { transform: scale(1); opacity: 0.5; } 50% { transform: scale(1.1); opacity: 0.8; } } .header-gradient h1, .header-gradient p { color: white; position: relative; z-index: 1; margin: 0; } /* Cards */ .card { border: 1px solid var(--bs-border-color); box-shadow: 0 2px 8px rgba(0,0,0,0.1); transition: transform 0.2s ease, box-shadow 0.3s ease; animation: fadeIn 0.3s ease; } .card:hover { transform: translateY(-2px); box-shadow: 0 4px 12px rgba(0,0,0,0.15); } .stat-card { background: linear-gradient(135deg, rgba(var(--accent-rgb), 0.1) 0%, rgba(102,126,234,0.1) 100%); border-left: 4px solid var(--accent); } .endpoint-card { border-left: 4px solid var(--accent); margin-bottom: 2rem; } /* Table */ .table-hover tbody tr:hover { background-color: rgba(var(--accent-rgb), 0.1); transition: background-color 0.2s ease; } .ip-cell { font-family: 'Courier New', monospace; font-weight: 600; color: var(--accent); font-size: 0.95rem; } /* Badges */ .badge-custom { background: rgba(var(--accent-rgb), 0.2); color: var(--accent); padding: 0.4rem 0.8rem; border-radius: 6px; font-weight: 600; } .method-badge { font-weight: bold; padding: 0.4rem 0.8rem; border-radius: 4px; font-size: 0.9rem; } .method-post { background: #28a745; color: white; } .method-get { background: #17a2b8; color: white; } /* Filter chips */ .filter-chip { display: inline-block; background: var(--bs-secondary-bg); color: var(--bs-body-color); border: 1px solid var(--bs-border-color); padding: 0.4rem 1rem; border-radius: 20px; margin: 0.2rem; cursor: pointer; transition: all 0.2s ease; font-size: 0.9rem; } .filter-chip:hover { transform: scale(1.05); border-color: var(--accent); box-shadow: 0 2px 8px rgba(var(--accent-rgb), 0.3); } .filter-chip.active { background: var(--accent); color: white; border-color: var(--accent); font-weight: 600; } /* Export section */ .export-section { background: var(--bs-secondary-bg); border-radius: 8px; padding: 1.5rem; margin-top: 1rem; border: 1px solid var(--bs-border-color); } /* Code blocks */ code { background: var(--bs-secondary-bg); padding: 0.2rem 0.4rem; border-radius: 4px; font-size: 0.9em; font-family: 'Courier New', monospace; } pre { position: relative; background: var(--bs-tertiary-bg); border: 1px solid var(--bs-border-color); border-radius: 8px; padding: 1rem; max-height: 400px; overflow-y: auto; } .copy-btn { position: absolute; top: 0.5rem; right: 0.5rem; z-index: 10; opacity: 0.7; transition: opacity 0.2s ease; } .copy-btn:hover { opacity: 1; } /* Theme toggle */ .theme-toggle { position: fixed; top: 1rem; right: 1rem; z-index: 1050; box-shadow: 0 2px 10px rgba(0,0,0,0.2); } /* Spinner */ .spinner-border { border-color: rgba(var(--accent-rgb), 0.2); border-top-color: var(--accent); } /* List group */ .list-group-item { transition: all 0.2s ease; } .list-group-item:hover { background: rgba(var(--accent-rgb), 0.1); padding-left: 1.5rem; } /* Form controls */ textarea.form-control, input.form-control { transition: border-color 0.2s ease, box-shadow 0.2s ease; } textarea.form-control:focus, input.form-control:focus { border-color: var(--accent); box-shadow: 0 0 0 0.25rem rgba(var(--accent-rgb), 0.25); } /* Buttons */ .btn { transition: all 0.2s ease; } .btn:hover { transform: translateY(-1px); } .btn:active { transform: translateY(0); } /* Stats cards */ .stat-card h3 { font-weight: 700; color: var(--accent); } .stat-card h6 { text-transform: uppercase; font-size: 0.85rem; letter-spacing: 0.5px; } /* Scrollbar */ ::-webkit-scrollbar { width: 10px; height: 10px; } ::-webkit-scrollbar-track { background: var(--bs-tertiary-bg); } ::-webkit-scrollbar-thumb { background: var(--accent); border-radius: 5px; } ::-webkit-scrollbar-thumb:hover { background: var(--accent-hover); } /* Animations */ @keyframes fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } } .alert { border-left: 4px solid; animation: fadeIn 0.3s ease; } .alert-info { border-left-color: var(--accent); } /* Responsive */ @media (max-width: 768px) { .header-gradient h1 { font-size: 1.8rem; } .header-gradient p { font-size: 1rem; } .filter-chip { font-size: 0.85rem; padding: 0.3rem 0.8rem; } }