/** * PhilVerify — Content Script Styles * Floating verify button + inline report overlay. * All selectors namespaced under .pv-* to avoid collisions. */ /* ── Floating "Verify this post" button ─────────────────────────────────────── */ /* Wrapper container: sits at the end of the post, flex-end alignment */ .pv-verify-btn-wrapper { display: flex; justify-content: flex-end; padding: 4px 12px 8px; pointer-events: none; /* Let clicks pass through the wrapper */ } .pv-verify-btn { position: relative; z-index: 100; display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border: 1px solid rgba(220, 38, 38, 0.3); border-radius: 20px; background: rgba(20, 20, 20, 0.92); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); color: #f5f0e8; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif; font-size: 11px; font-weight: 600; letter-spacing: 0.03em; cursor: pointer; touch-action: manipulation; -webkit-tap-highlight-color: transparent; transition: transform 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3); pointer-events: auto; /* Re-enable clicks on the button itself */ } .pv-verify-btn:hover { transform: translateY(-1px); border-color: rgba(220, 38, 38, 0.6); box-shadow: 0 4px 16px rgba(220, 38, 38, 0.2); } .pv-verify-btn:active { transform: scale(0.97); } .pv-verify-btn:focus-visible { outline: 2px solid #06b6d4; outline-offset: 2px; } .pv-verify-btn-icon { font-size: 13px; line-height: 1; } .pv-verify-btn-label { white-space: nowrap; } /* ── Loading state (on the button) ──────────────────────────────────────────── */ .pv-verify-btn--loading { cursor: wait; border-color: rgba(168, 159, 148, 0.3); color: #a89f94; } .pv-verify-btn--loading:hover { transform: none; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3); } /* ── Error state (on the button) ────────────────────────────────────────────── */ .pv-verify-btn--error { border-color: rgba(248, 113, 113, 0.4); color: #f87171; animation: pv-shake 0.4s ease-in-out; } @keyframes pv-shake { 0%, 100% { transform: translateX(0); } 20% { transform: translateX(-3px); } 40% { transform: translateX(3px); } 60% { transform: translateX(-2px); } 80% { transform: translateX(2px); } } /* ── Spinner ────────────────────────────────────────────────────────────────── */ .pv-spinner { display: inline-block; width: 12px; height: 12px; border: 2px solid rgba(168, 159, 148, 0.3); border-top-color: #a89f94; border-radius: 50%; animation: pv-spin 0.7s linear infinite; flex-shrink: 0; } @media (prefers-reduced-motion: reduce) { .pv-spinner { animation: none; } .pv-verify-btn--error { animation: none; } .pv-verify-btn { transition: none; } } @keyframes pv-spin { to { transform: rotate(360deg); } } /* ── Inline verification report ─────────────────────────────────────────────── */ .pv-report { display: block; margin: 8px 12px 12px; padding: 14px 16px; background: #141414; border: 1px solid rgba(245, 240, 232, 0.1); border-radius: 8px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif; font-size: 11px; color: #f5f0e8; max-width: 480px; box-shadow: 0 4px 24px rgba(0, 0, 0, 0.5); position: relative; z-index: 50; } /* — Header */ .pv-report-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; padding-bottom: 8px; border-bottom: 1px solid rgba(245, 240, 232, 0.07); } .pv-report-logo { font-weight: 800; font-size: 13px; letter-spacing: 0.12em; color: #f5f0e8; } .pv-report-close { background: none; border: none; cursor: pointer; color: #5c554e; font-size: 14px; padding: 2px 6px; border-radius: 4px; touch-action: manipulation; transition: color 0.15s ease; } .pv-report-close:hover { color: #f5f0e8; background: rgba(245, 240, 232, 0.05); } .pv-report-close:focus-visible { outline: 2px solid #06b6d4; } /* — Verdict row */ .pv-report-verdict-row { padding: 10px 12px; margin-bottom: 12px; border-left: 3px solid #5c554e; border-radius: 0 4px 4px 0; background: rgba(245, 240, 232, 0.03); } .pv-report-verdict { font-size: 18px; font-weight: 800; letter-spacing: -0.01em; margin-bottom: 2px; } .pv-report-score-text { font-size: 10px; color: #a89f94; font-family: 'SF Mono', 'Menlo', monospace; } /* — Confidence bar */ .pv-confidence-bar-wrap { display: flex; align-items: center; gap: 8px; padding: 8px 0; border-bottom: 1px solid rgba(245, 240, 232, 0.05); } .pv-confidence-bar-track { flex: 1; height: 6px; background: rgba(245, 240, 232, 0.07); border-radius: 3px; overflow: hidden; } .pv-confidence-bar-fill { height: 100%; border-radius: 3px; transition: width 0.5s ease-out; } .pv-confidence-bar-value { font-size: 10px; font-weight: 700; color: #a89f94; font-family: 'SF Mono', 'Menlo', monospace; min-width: 36px; text-align: right; } /* — Info rows */ .pv-report-row { display: flex; justify-content: space-between; align-items: center; padding: 6px 0; border-bottom: 1px solid rgba(245, 240, 232, 0.05); } .pv-report-label { font-size: 9px; font-weight: 700; letter-spacing: 0.12em; color: #5c554e; text-transform: uppercase; flex-shrink: 0; } .pv-report-value { font-size: 11px; font-weight: 500; color: #a89f94; } /* — Suspicious signals tags */ .pv-report-signals { padding: 8px 0; border-bottom: 1px solid rgba(245, 240, 232, 0.05); } .pv-report-tags { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 6px; } .pv-report-tag { padding: 3px 8px; background: rgba(220, 38, 38, 0.12); color: #f87171; border: 1px solid rgba(220, 38, 38, 0.25); border-radius: 3px; font-size: 9px; letter-spacing: 0.04em; font-weight: 600; } /* — Evidence sources */ .pv-report-sources { padding: 8px 0; border-bottom: 1px solid rgba(245, 240, 232, 0.05); } .pv-report-sources-list { list-style: none; padding: 0; margin: 6px 0 0 0; display: flex; flex-direction: column; gap: 4px; } .pv-report-source-item { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 4px 0; } .pv-report-source-link { color: #06b6d4; font-size: 10px; text-decoration: none; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; flex: 1; } .pv-report-source-link:hover { text-decoration: underline; } .pv-report-source-stance { font-size: 9px; font-weight: 700; letter-spacing: 0.06em; color: #5c554e; flex-shrink: 0; } /* — Explanation / Claim */ .pv-report-explanation { padding: 8px 0; border-bottom: 1px solid rgba(245, 240, 232, 0.05); } .pv-report-explanation-text { margin: 6px 0 0; font-size: 10px; color: #a89f94; line-height: 1.5; font-style: italic; } /* — Full analysis link */ .pv-report-full-link { display: block; margin-top: 10px; text-align: center; color: #dc2626; font-size: 10px; font-weight: 700; letter-spacing: 0.08em; text-decoration: none; text-transform: uppercase; padding: 6px; border: 1px solid rgba(220, 38, 38, 0.3); border-radius: 4px; transition: background 0.15s ease; } .pv-report-full-link:hover { background: rgba(220, 38, 38, 0.08); }