| @import url('https://fonts.googleapis.com/css2?family=Orbitron:wght@400;700;900&family=Inter:wght@300;400;500;600&display=swap'); |
|
|
| *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; } |
|
|
| :root { |
| --blue: #00f2ff; |
| --blue-dim: rgba(0,242,255,0.15); |
| --blue-glow: 0 0 20px rgba(0,242,255,0.35); |
| --bg: #020b12; |
| --bg2: #041520; |
| --card: rgba(4,21,32,0.85); |
| --border: rgba(0,242,255,0.18); |
| --text: #e8f4f8; |
| --dim: rgba(232,244,248,0.45); |
| --purple: #7c3aed; |
| --green: #10b981; |
| } |
|
|
| html, body, #root { |
| height: 100%; |
| background: var(--bg); |
| color: var(--text); |
| font-family: 'Inter', sans-serif; |
| font-size: 14px; |
| overflow-x: hidden; |
| } |
|
|
| |
| body { |
| background-image: |
| radial-gradient(ellipse 80% 60% at 50% -20%, rgba(0,242,255,0.08) 0%, transparent 70%), |
| linear-gradient(rgba(0,242,255,0.035) 1px, transparent 1px), |
| linear-gradient(90deg, rgba(0,242,255,0.035) 1px, transparent 1px); |
| background-size: 100% 100%, 48px 48px, 48px 48px; |
| } |
|
|
| |
| .particles { position: fixed; inset: 0; pointer-events: none; z-index: 0; } |
| .particle { |
| position: absolute; |
| border-radius: 50%; |
| background: var(--blue); |
| box-shadow: 0 0 6px var(--blue); |
| } |
|
|
| |
| .layout { |
| position: relative; |
| z-index: 1; |
| max-width: 900px; |
| margin: 0 auto; |
| padding: 2.5rem 1.5rem 4rem; |
| display: flex; |
| flex-direction: column; |
| gap: 1.2rem; |
| min-height: 100vh; |
| } |
|
|
| |
| .hero { |
| display: flex; |
| align-items: center; |
| gap: 1rem; |
| padding-bottom: 0.5rem; |
| } |
| .hero-icon { |
| width: 56px; height: 56px; |
| border: 1px solid var(--border); |
| border-radius: 12px; |
| display: flex; align-items: center; justify-content: center; |
| background: var(--blue-dim); |
| box-shadow: var(--blue-glow); |
| flex-shrink: 0; |
| } |
| h1 { |
| font-family: 'Orbitron', sans-serif; |
| font-size: clamp(1.4rem, 4vw, 2rem); |
| font-weight: 900; |
| letter-spacing: 3px; |
| color: var(--blue); |
| text-shadow: 0 0 20px rgba(0,242,255,0.5); |
| line-height: 1; |
| } |
| h1 .dim { opacity: 0.25; } |
| .subtitle { |
| font-size: 0.65rem; |
| letter-spacing: 2px; |
| color: var(--dim); |
| margin-top: 4px; |
| font-weight: 500; |
| } |
|
|
| |
| .status-bar { |
| display: flex; align-items: center; gap: 10px; |
| padding: 0.7rem 1rem; |
| background: var(--card); |
| border: 1px solid var(--border); |
| border-radius: 8px; |
| font-size: 0.75rem; |
| letter-spacing: 1px; |
| } |
| .status-dot { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; animation: pulse 1.5s ease-in-out infinite; } |
| @keyframes pulse { 0%,100% { box-shadow: 0 0 4px currentColor; } 50% { box-shadow: 0 0 12px currentColor; } } |
| .status-msg { flex: 1; text-transform: uppercase; } |
| .status-pct { font-family: 'Orbitron', sans-serif; font-weight: 700; color: var(--blue); } |
| .progress-track { height: 3px; background: rgba(255,255,255,0.07); border-radius: 2px; overflow: hidden; } |
| .progress-fill { height: 100%; border-radius: 2px; transition: width 0.4s ease; box-shadow: 0 0 8px currentColor; } |
|
|
| |
| .tabs { display: flex; gap: 0.5rem; } |
| .tab { |
| padding: 0.55rem 1.2rem; |
| border-radius: 8px; |
| border: 1px solid var(--border); |
| background: transparent; |
| color: var(--dim); |
| font-size: 0.75rem; |
| font-weight: 600; |
| letter-spacing: 1px; |
| cursor: pointer; |
| transition: all 0.2s; |
| display: flex; align-items: center; gap: 6px; |
| } |
| .tab:hover { background: var(--blue-dim); color: var(--text); } |
| .tab.active { background: var(--blue-dim); border-color: var(--blue); color: var(--blue); box-shadow: var(--blue-glow); } |
| .badge { |
| background: var(--blue); color: #000; |
| border-radius: 999px; padding: 0 6px; |
| font-size: 0.65rem; font-weight: 700; |
| } |
|
|
| |
| .panel { |
| background: var(--card); |
| backdrop-filter: blur(16px); |
| border: 1px solid var(--border); |
| border-radius: 16px; |
| padding: 2rem; |
| position: relative; |
| overflow: hidden; |
| } |
| |
| .panel::before { |
| content: ''; |
| position: absolute; |
| top: 0; left: -100%; width: 60%; height: 2px; |
| background: linear-gradient(90deg, transparent, var(--blue), transparent); |
| animation: scan 4s linear infinite; |
| } |
| @keyframes scan { 0% { left: -60%; } 100% { left: 160%; } } |
|
|
| |
| .search-form { display: flex; flex-direction: column; gap: 1.2rem; } |
| .field-group { display: flex; flex-direction: column; gap: 6px; } |
| .field-label { font-size: 0.65rem; letter-spacing: 2px; color: var(--blue); font-weight: 600; } |
| .input-wrap { position: relative; display: flex; align-items: center; } |
| .input-icon { |
| position: absolute; left: 12px; |
| font-size: 0.9rem; pointer-events: none; |
| opacity: 0.5; |
| } |
| .input { |
| width: 100%; |
| background: rgba(255,255,255,0.04); |
| border: 1px solid var(--border); |
| border-radius: 8px; |
| padding: 0.8rem 0.8rem 0.8rem 2.5rem; |
| color: var(--text); |
| font-size: 0.9rem; |
| font-family: inherit; |
| transition: all 0.25s; |
| } |
| .input:focus { outline: none; border-color: var(--blue); background: rgba(0,242,255,0.04); box-shadow: var(--blue-glow); } |
| .input::placeholder { color: var(--dim); } |
| .input:disabled { opacity: 0.5; cursor: not-allowed; } |
|
|
| .btn-execute { |
| margin-top: 0.5rem; |
| padding: 0.9rem 1.5rem; |
| background: var(--blue); |
| color: #000; |
| border: none; |
| border-radius: 10px; |
| font-family: 'Orbitron', sans-serif; |
| font-size: 0.8rem; |
| font-weight: 700; |
| letter-spacing: 2px; |
| cursor: pointer; |
| transition: all 0.25s; |
| display: flex; align-items: center; justify-content: center; gap: 8px; |
| } |
| .btn-execute:hover:not(:disabled) { transform: translateY(-2px); box-shadow: 0 0 30px var(--blue); } |
| .btn-execute:disabled { opacity: 0.5; cursor: not-allowed; } |
| .spinner { display: inline-block; animation: spin 1s linear infinite; } |
| @keyframes spin { to { transform: rotate(360deg); } } |
|
|
| |
| .info-cards { |
| display: flex; gap: 1rem; margin-top: 2rem; |
| } |
| .info-card { |
| flex: 1; text-align: center; |
| padding: 1rem; |
| border: 1px solid var(--border); |
| border-radius: 10px; |
| background: rgba(0,242,255,0.03); |
| } |
| .info-num { font-family: 'Orbitron', sans-serif; font-size: 1.5rem; color: var(--blue); } |
| .info-label { font-size: 0.65rem; letter-spacing: 2px; color: var(--dim); margin-top: 4px; } |
|
|
| |
| .results-panel { padding: 1.5rem; } |
| .results-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1.2rem; } |
| .results-count { font-family: 'Orbitron', sans-serif; font-size: 0.75rem; color: var(--blue); letter-spacing: 1px; } |
| .btn-export { |
| padding: 0.45rem 1rem; |
| background: rgba(16,185,129,0.15); |
| border: 1px solid var(--green); |
| border-radius: 6px; |
| color: var(--green); |
| font-size: 0.7rem; |
| font-weight: 600; |
| letter-spacing: 1px; |
| cursor: pointer; |
| transition: all 0.2s; |
| } |
| .btn-export:hover { background: rgba(16,185,129,0.3); box-shadow: 0 0 12px var(--green); } |
|
|
| .table-wrap { overflow-x: auto; } |
| .results-table { width: 100%; border-collapse: collapse; } |
| .results-table th { |
| text-align: left; padding: 0.7rem 0.8rem; |
| font-size: 0.6rem; letter-spacing: 2px; color: var(--blue); |
| border-bottom: 1px solid var(--border); |
| font-weight: 600; |
| } |
| .results-table td { |
| padding: 0.9rem 0.8rem; |
| border-bottom: 1px solid rgba(255,255,255,0.04); |
| vertical-align: top; |
| } |
| .results-table tr:hover td { background: rgba(0,242,255,0.025); } |
|
|
| .biz-name { font-weight: 600; font-size: 0.85rem; margin-bottom: 3px; } |
| .biz-url { color: var(--blue); font-size: 0.7rem; text-decoration: none; opacity: 0.8; display: block; } |
| .biz-url:hover { opacity: 1; } |
| .biz-phone { font-size: 0.7rem; color: var(--dim); margin-top: 2px; } |
| .email-cell { font-size: 0.75rem; word-break: break-all; } |
| .dim-text { color: var(--dim); } |
|
|
| .rating-badge { |
| font-family: 'Orbitron', sans-serif; |
| font-size: 0.7rem; color: var(--blue); |
| background: var(--blue-dim); |
| padding: 2px 8px; border-radius: 4px; |
| } |
|
|
| .channels { display: flex; gap: 6px; flex-wrap: wrap; } |
| .ch-btn { |
| padding: 2px 8px; border-radius: 4px; |
| font-size: 0.65rem; font-weight: 700; |
| text-decoration: none; letter-spacing: 1px; |
| background: rgba(0,242,255,0.1); color: var(--blue); |
| border: 1px solid var(--border); |
| transition: all 0.15s; |
| text-transform: uppercase; |
| } |
| .ch-btn:hover { background: var(--blue-dim); } |
|
|
| .status-chip { font-size: 0.65rem; font-weight: 700; letter-spacing: 1px; padding: 2px 8px; border-radius: 999px; } |
| .chip-ok { background: rgba(16,185,129,0.15); color: var(--green); } |
| .chip-warn { background: rgba(239,68,68,0.15); color: #f87171; } |
|
|
| .empty-state { text-align: center; padding: 3rem; color: var(--dim); font-size: 0.9rem; } |
|
|
| |
| .footer { |
| margin-top: auto; |
| text-align: center; |
| font-size: 0.65rem; |
| letter-spacing: 2px; |
| color: rgba(255,255,255,0.15); |
| padding-top: 2rem; |
| } |
|
|