:root { --bg: #0d1117; --bg-card: #161b22; --border: #30363d; --text: #e6edf3; --text-muted: #8b949e; --accent: #58a6ff; --accent-dim: #388bfd; --green: #3fb950; --orange: #d29922; --font-mono: "JetBrains Mono", "Fira Code", monospace; --font-sans: "Noto Sans SC", -apple-system, sans-serif; --radius: 8px; --shadow: 0 8px 24px rgba(0, 0, 0, 0.4); } * { box-sizing: border-box; } body { margin: 0; min-height: 100vh; font-family: var(--font-sans); font-size: 15px; color: var(--text); background: var(--bg); line-height: 1.5; display: flex; flex-direction: column; } .header { background: linear-gradient(180deg, var(--bg-card) 0%, var(--bg) 100%); border-bottom: 1px solid var(--border); padding: 2rem 1.5rem; } .header-inner { max-width: 1200px; margin: 0 auto; } .logo { font-family: var(--font-mono); font-size: 1.75rem; font-weight: 600; margin: 0 0 0.25rem 0; color: var(--text); letter-spacing: -0.02em; } .tagline { margin: 0; color: var(--text-muted); font-size: 0.95rem; } .main { flex: 1; max-width: 1200px; margin: 0 auto; padding: 1.5rem; width: 100%; } .filters { display: flex; flex-wrap: wrap; gap: 1rem; align-items: flex-end; margin-bottom: 1.5rem; padding: 1rem; background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius); } .filter-group { display: flex; flex-direction: column; gap: 0.35rem; } .filter-group label { font-size: 0.8rem; color: var(--text-muted); text-transform: uppercase; letter-spacing: 0.05em; } .filter-group select { font-family: var(--font-mono); font-size: 0.9rem; padding: 0.5rem 0.75rem; min-width: 140px; background: var(--bg); border: 1px solid var(--border); border-radius: 6px; color: var(--text); cursor: pointer; } .filter-group select:focus { outline: none; border-color: var(--accent); } .btn-reset { font-family: var(--font-sans); font-size: 0.9rem; padding: 0.5rem 1rem; background: transparent; border: 1px solid var(--border); border-radius: 6px; color: var(--text-muted); cursor: pointer; margin-left: auto; } .btn-reset:hover { color: var(--text); border-color: var(--text-muted); } .table-wrap { overflow-x: auto; border: 1px solid var(--border); border-radius: var(--radius); background: var(--bg-card); box-shadow: var(--shadow); } .price-table { width: 100%; border-collapse: collapse; font-size: 0.9rem; } .price-table th, .price-table td { padding: 0.75rem 1rem; text-align: left; border-bottom: 1px solid var(--border); } .price-table th { font-family: var(--font-mono); font-weight: 600; font-size: 0.8rem; text-transform: uppercase; letter-spacing: 0.04em; color: var(--text-muted); background: rgba(0, 0, 0, 0.2); } .price-table tbody tr:hover { background: rgba(88, 166, 255, 0.06); } .price-table tbody tr:last-child td { border-bottom: none; } .col-price { text-align: right; white-space: nowrap; } .price-table td.col-price { font-family: var(--font-mono); font-weight: 600; color: var(--green); } .price-table .provider { font-weight: 500; color: var(--text); } .price-table .region { color: var(--text-muted); font-size: 0.85em; } .price-table .col-link { white-space: nowrap; } .price-table .col-link a { color: var(--accent); text-decoration: none; } .price-table .col-link a:hover { text-decoration: underline; } /* 广告位占位,接入 AdSense 后可移除最小高度 */ .ad-slot { min-height: 50px; margin: 0.5rem 0; } .ad-slot-header { margin-top: 1rem; } .ad-slot-inline { margin-bottom: 1rem; } .ad-slot-footer { margin-bottom: 1rem; } .disclaimer { margin-top: 1rem; font-size: 0.8rem; color: var(--text-muted); } .footer { margin-top: auto; padding: 1rem 1.5rem; border-top: 1px solid var(--border); text-align: center; font-size: 0.85rem; color: var(--text-muted); } .footer p { margin: 0; } .footer .contact { margin-top: 0.5rem; } .footer .contact a { color: var(--accent); text-decoration: none; } .footer .contact a:hover { text-decoration: underline; } .empty-state { text-align: center; padding: 3rem 2rem; color: var(--text-muted); } .empty-state p { margin: 0; font-size: 1rem; } @media (max-width: 768px) { .filters { flex-direction: column; align-items: stretch; } .btn-reset { margin-left: 0; } .price-table th, .price-table td { padding: 0.5rem 0.6rem; font-size: 0.8rem; } .price-table .hide-mobile { display: none; } }