/* 基础样式 */ body { width: 400px; height: 600px; margin: 0; padding: 0; font-family: system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif; background: #fff; color: #333; display: flex; flex-direction: column; font-size: 14px; line-height: 1.5; overflow: hidden; } /* 导航栏样式 */ .nav-bar { display: flex; justify-content: space-between; align-items: center; padding: 0; border-bottom: 1px solid #e9ecef; background: #fff; height: 40px; flex-shrink: 0; } .nav-left { display: flex; } .nav-right { display: flex; align-items: center; padding-right: 12px; } /* 进度显示样式 */ .progress-container { display: flex; align-items: center; gap: 6px; font-size: 12px; color: #495057; background: #f8f9fa; padding: 4px 8px; border-radius: 12px; border: 1px solid #e9ecef; } .progress-text { color: #6c757d; } .progress-percent { font-weight: 600; color: #228be6; min-width: 28px; text-align: right; } .nav-tab { padding: 10px 20px; border: none; background: none; color: #495057; font-size: 14px; cursor: pointer; position: relative; } .nav-tab.active { color: #228be6; font-weight: 500; } .nav-tab.active::after { content: ''; position: absolute; bottom: -1px; left: 0; right: 0; height: 2px; background: #228be6; } .progress-tab { padding: 10px 0px; border: none; background: none; color: #495057; font-size: 14px; cursor: pointer; position: relative; } /* 页面容器样式 */ .page { height: calc(100vh - 40px); overflow-y: auto; padding: 10px 10px 10px 12px; width: 400px; box-sizing: border-box; flex: 1; } .page.active { display: block; } /* 内容容器样式 */ .container { height: 100%; overflow: hidden; overflow-y: auto; width: 100%; } /* 结果区域样式 */ .section { margin-bottom: 8px; } .section-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 4px; padding-right: 4px; } .title { font-size: 15px; font-weight: 600; color: #495057; } .section-content { background: #f8f9fa; border-radius: 4px; padding: 6px 10px 6px 6px; max-height: 300px; overflow-y: auto; margin-right: 2px; } /* 结果项样式 */ .item { display: inline-flex; align-items: center; padding: 4px 10px; background: #fff; border-radius: 4px; font-size: 13px; color: #495057; cursor: pointer; position: relative; margin: 3px; box-shadow: 0 1px 2px rgba(0,0,0,0.05); user-select: text; word-break: break-all; white-space: normal; max-width: 100%; } .item:hover { background: #f8f9fa; } .item::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; border-radius: 4px 0 0 4px; } /* 配置页面样式 */ .config-section { padding: 0 12px; } .config-group { margin-bottom: 16px; } .config-group h3 { font-size: 14px; color: #495057; margin: 0 0 8px 0; } .config-group h4 { font-size: 14px; color: #495057; margin: 12px 0 8px 0; font-weight: 500; } /* 配置项样式 */ .config-item { margin-bottom: 8px; } .config-label { font-size: 13px; color: #6c757d; margin-bottom: 4px; } .config-value, .whitelist-input { display: block; width: 100%; min-height: 80px; height: 120px; padding: 6px 8px; font-size: 13px; line-height: 1.4; color: #495057; background: #f8f9fa; border: 1px solid #dee2e6; border-radius: 4px; resize: vertical; transition: all 0.2s ease; font-family: inherit; } .config-value:hover, .whitelist-input:hover { background: #fff; border-color: #adb5bd; } .config-value:focus, .whitelist-input:focus { background: #fff; border-color: #228be6; outline: none; box-shadow: 0 0 0 2px rgba(34,139,230,0.1); } /* 移除旧的白名单和黑名单输入框样式 */ .whitelist-input, .blacklist-input { display: none; } /* 移除旧的网格布局样式 */ .whitelist, .blacklist { margin-left: 8px; } .whitelist-item, .blacklist-item { display: none; } /* 状态提示样式 */ .loading, .error { padding: 20px; text-align: center; color: #666; } .error { color: #ff6b6b; } /* 白名单提示样式 */ .whitelisted { padding: 20px; text-align: center; color: #2b8a3e; background: #ebfbee; border-radius: 4px; margin: 10px; font-size: 14px; } /* 复制按钮样式 */ .copy-btn { padding: 4px 8px; color: #868e96; background: none; border: none; border-radius: 4px; cursor: pointer; font-size: 12px; transition: all 0.2s; display: flex; align-items: center; } .copy-btn:hover { color: #228be6; background: #e7f5ff; } .copy-btn svg { width: 14px; height: 14px; margin-right: 4px; } /* 按钮组样式 */ .button-group { display: flex; gap: 4px; align-items: center; } /* 复制URL按钮样式 */ .copy-url-btn { padding: 4px 8px; color: #868e96; background: none; border: none; border-radius: 4px; cursor: pointer; font-size: 12px; transition: all 0.2s; display: flex; align-items: center; } .copy-url-btn:hover { color: #51cf66; background: #e6fcf5; } .copy-url-btn svg { width: 14px; height: 14px; margin-right: 4px; } /* 复制提示样式 */ .copy-tooltip { position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); background: rgba(33, 37, 41, 0.9); color: white; padding: 8px 16px; border-radius: 4px; font-size: 13px; z-index: 9999; pointer-events: none; animation: fadeInOut 0.6s ease forwards; white-space: nowrap; } @keyframes fadeInOut { 0% { opacity: 0; transform: translate(-50%, -50%) scale(0.9); } 20% { opacity: 1; transform: translate(-50%, -50%) scale(1); } 80% { opacity: 1; transform: translate(-50%, -50%) scale(1); } 100% { opacity: 0; transform: translate(-50%, -50%) scale(0.9); } } /* 计数样式 */ .count { font-size: 13px; color: #868e96; margin-left: 4px; font-weight: normal; } /* 无结果提示样式 */ .no-results { padding: 20px; text-align: center; color: #868e96; font-style: italic; } /* 内容包装器样式 */ .content-wrapper { display: flex; flex-wrap: wrap; gap: 4px; } /* 为不同类型的结果添加左侧彩色边框 */ .item::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; border-radius: 4px 0 0 4px; } /* 各类型结果的边框颜色 */ .domain-list .item::before { background: #74c0fc; /* 蓝色 - 域名 */ } .api-list .item::before { background: #b197fc; /* 紫色 - 相对路径API */ } .absolute-api-list .item::before { background: #9775fa; /* 深紫色 - 绝对路径API */ } .module-list .item::before { background: #63e6be; /* 薄荷绿 - 模块路径 */ } .vue-list .item::before { background: #41B883; /* Vue绿色 - Vue文件 */ } .image-list .item::before { background: #ff922b; /* 橙色 - 图片资源 */ } .js-list .item::before { background: #20c997; /* 青绿色 - JS文件 */ } .doc-list .item::before { background: #748ffc; /* 靛蓝色 - 文档文件 */ } .ip-list .item::before { background: #ffd43b; /* 黄色 - IP */ } .phone-list .item::before { background: #ff8787; /* 红色 - 手机号 */ } .email-list .item::before { background: #69db7c; /* 绿色 - 邮箱 */ } .idcard-list .item::before { background: #ffa94d; /* 橙色 - 身份证 */ } .url-list .item::before { background: #4dabf7; /* 浅蓝 - URL */ } .github-list .item::before { background: #24292e; /* GitHub黑 - GitHub链接 */ } .jwt-list .item::before { background: #ff922b; /* 橙色 - JWT Token */ } .company-list .item::before { background: #845ef7; /* 紫色 - 机构公司 */ } .credentials-list .item::before { background: #e64980; /* 粉红色 - 用户名密码 */ } .cookie-list .item::before { background: #fd7e14; /* 橙色 - Cookie */ } .id-key-list .item::before { background: #7950f2; /* 紫色 - ID密钥 */ } /* 自定义滚动条样式 */ ::-webkit-scrollbar { width: 6px; height: 6px; } ::-webkit-scrollbar-track { background: transparent; } ::-webkit-scrollbar-thumb { background: #e9ecef; border-radius: 3px; transition: background 0.2s; } /* 当鼠标悬停在页面上时,滚动条变深 */ .page:hover::-webkit-scrollbar-thumb { background: #adb5bd; } /* 结果区域的滚动条样式 */ .section-content::-webkit-scrollbar { width: 4px; height: 4px; } .section-content::-webkit-scrollbar-thumb { background: #e9ecef; } /* 当鼠标悬停在结果区域时,滚动条变深 */ .section-content:hover::-webkit-scrollbar-thumb { background: #adb5bd; } /* 标题栏样式调整 */ .title-wrapper { display: flex; align-items: center; gap: 8px; } /* 指纹嗅探页面样式 */ .fingerprint-section { padding: 8px; } .fingerprint-group { background: #fff; border-radius: 6px; padding: 12px; margin-bottom: 12px; box-shadow: 0 1px 3px rgba(0,0,0,0.1); } .fingerprint-group h3 { margin: 0 0 10px 0; font-size: 14px; color: #495057; font-weight: 600; } .fingerprint-item { display: flex; justify-content: space-between; align-items: center; padding: 8px; background: #f8f9fa; border-radius: 4px; } .fingerprint-label { font-size: 13px; color: #495057; flex: 1; margin-right: 10px; } .fingerprint-status { font-size: 12px; padding: 4px 8px; border-radius: 4px; font-weight: 500; } .fingerprint-status.pending { background: #e9ecef; color: #868e96; } .fingerprint-status.detected { background: #d3f9d8; color: #2b8a3e; } .fingerprint-status.not-detected { background: #ffe3e3; color: #c92a2a; } /* 指纹嗅探标签样式 */ .tag { display: inline-block; padding: 2px 6px; border-radius: 4px; font-size: 12px; font-weight: 500; margin-right: 8px; color: #fff; } .oa-tag { background: #4dabf7; /* 浅蓝色 */ } .erp-tag { background: #845ef7; /* 紫色 */ } /* 指纹分组样式增强 */ .fingerprint-group { border-left: 3px solid transparent; transition: all 0.2s ease; } .oa-group { border-left-color: #4dabf7; } .erp-group { border-left-color: #845ef7; } .fingerprint-group:hover { transform: translateX(2px); } /* 白名单域名展示样式 */ .whitelist-domains { margin-top: 10px; background: #f8f9fa; border-radius: 6px; padding: 12px; } .domain-item { display: inline-block; padding: 6px 12px; background: #fff; border-radius: 4px; margin: 4px; font-size: 13px; color: #495057; box-shadow: 0 1px 3px rgba(0,0,0,0.1); } .config-content { color: #868e96; font-size: 13px; margin-bottom: 8px; line-height: 1.6; margin-left: 8px; } /* Web服务器指纹样式 */ .webserver-tag { background: #20c997; /* 青绿色 */ } .webserver-group { border-left-color: #20c997; } /* 操作系统指纹样式 */ .os-tag { background: #ff922b; /* 橙色 */ } .os-group { border-left-color: #ff922b; } /* SSL指纹样式 */ .ssl-tag { background: #51cf66; /* 绿色 */ } .ssl-group { border-left-color: #51cf66; } /* 模块指纹样式 */ .module-tag { background: #339af0; /* 蓝色 */ } .module-group { border-left-color: #339af0; } /* 技术栈指纹样式 */ .technology-tag { background: #845ef7; /* 紫色 */ } .technology-group { border-left-color: #845ef7; } /* Powered By 指纹样式 */ .poweredby-tag { /* 修改为驼峰式命名,去掉空格和横线 */ background: #4dabf7; /* 浅蓝色 */ } .poweredby-group { /* 修改为驼峰式命名,去掉空格和横线 */ border-left-color: #4dabf7; } /* 安全组件指纹样式 */ .security-tag { background: #e64980; /* 粉红色 */ } .security-group { border-left-color: #e64980; } /* 添加统计分析组件样式 */ .analytics-tag { background: #ff6b6b; /* 红色 */ } .analytics-group { border-left-color: #ff6b6b; } /* 添加构建工具样式 */ .builder-tag { background: #7950f2; /* 紫色 */ } .builder-group { border-left-color: #7950f2; } /* 添加框架样式 */ .framework-tag { background: #339af0; /* 蓝色 */ } .framework-group { border-left-color: #339af0; } /* 服务器指纹样式 */ .server-tag { background: #12b886; /* 青绿色 */ } .server-group { border-left-color: #12b886; } /* 面板指纹样式 */ .panel-tag { background: #126db8; /* 青绿色 */ } .panel-group { border-left-color: #126db8; } /* 组件指纹样式 */ .component-tag { background: #9112b8; /* 青绿色 */ } .component-group { border-left-color: #9112b8; } /* CDN指纹样式 */ .cdn-tag { background: #8cb812; /* 青绿色 */ } .cdn-group { border-left-color: #8cb812; } .fingerprint-value { font-size: 12px; padding: 4px 8px; border-radius: 4px; font-weight: 500; } .fingerprint-value.detected { background: #d3f9d8; color: #2b8a3e; } .header-value { font-family: monospace; word-break: break-all; } /* 开关按钮样式 */ .switch-wrapper { display: flex; align-items: center; cursor: pointer; margin-bottom: 8px; } .switch-input { position: relative; width: 40px; height: 20px; margin: 0; margin-right: 8px; background: #e9ecef; border-radius: 20px; border: none; outline: none; cursor: pointer; -webkit-appearance: none; -moz-appearance: none; appearance: none; transition: all 0.3s; } .switch-input:checked { background: #228be6; } .switch-input::before { content: ''; position: absolute; top: 2px; left: 2px; width: 16px; height: 16px; background: white; border-radius: 50%; transition: all 0.3s; } .switch-input:checked::before { transform: translateX(20px); } .switch-label { font-size: 14px; color: #495057; } .config-desc { font-size: 12px; color: #868e96; margin-top: 4px; margin-left: 48px; } /* 网站解析页面样式 */ .analysis-section { padding: 8px; } .analysis-group { background: #fff; border-radius: 8px; box-shadow: 0 1px 3px rgba(0,0,0,0.1); padding: 12px; margin-bottom: 15px; border-left: 3px solid transparent; } .analysis-group h3 { margin: 0 0 10px 0; color: #343a40; font-size: 14px; font-weight: 500; } /* 域名权重网格布局 */ .weight-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; } .weight-item { display: flex; flex-direction: column; align-items: center; padding: 8px 4px; background: #f8f9fa; border-radius: 6px; } .weight-item img { width: 48px; height: 24px; object-fit: contain; margin-bottom: 8px; } .weight-label { font-size: 12px; color: #495057; margin-bottom: 2px; } .weight-value { font-size: 14px; font-weight: 500; color: #228be6; } /* IP信息样式 */ .ip-info { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; } .info-item { display: flex; justify-content: space-between; flex-direction: column; margin: 8px 0; padding: 8px; background: #f8f9fa; border-radius: 6px; } .info-label { font-size: 12px; color: #868e96; margin-bottom: 4px; } .info-value { font-size: 14px; color: #495057; word-break: break-all; } /* 添加图片加载过渡效果 */ .weight-img { opacity: 0; transition: opacity 0.3s ease-in-out; } .weight-img.loaded { opacity: 1; } /* 基本信息和Whois信息网格布局 */ .basic-info, .whois-info { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; } /* 基本信息组样式 */ .basic-group { border-left-color: #339af0; /* 蓝色 */ } .basic-group h3 { color: #339af0; } /* 权重信息组样式 */ .weight-group { border-left-color: #20c997; /* 青绿色 */ } .weight-group h3 { color: #20c997; } /* IP信息组样式 */ .ip-group { border-left-color: #845ef7; /* 紫色 */ } .ip-group h3 { color: #845ef7; } /* Whois信息组样式 */ .whois-group { border-left-color: #ff922b; /* 橙色 */ } .whois-group h3 { color: #ff922b; } /* 添加提示信息样式 */ .notice { padding: 12px; background: #e9ecef; border-radius: 6px; color: #495057; text-align: center; margin: 10px; font-size: 14px; } /* 白名单输入框样式 */ #whitelistInput { width: 100%; min-height: 120px; padding: 8px; font-size: 13px; font-family: monospace; border: 1px solid #dee2e6; border-radius: 4px; background: #f8f9fa; resize: vertical; box-sizing: border-box; } #whitelistInput:focus { background: #fff; border-color: #228be6; outline: none; box-shadow: 0 0 0 2px rgba(34,139,230,0.1); } /* 配置按钮样式 */ .config-buttons { margin-top: 8px; display: flex; gap: 8px; } .save-btn { padding: 6px 12px; background: #228be6; color: white; border: none; border-radius: 4px; font-size: 13px; cursor: pointer; transition: background 0.2s; } .save-btn:hover { background: #1c7ed6; }