/* Fraud Protect (jonspire.com/fraud). Builds on styles.css tokens. Owned and developed by Jonspire. */
.fp { --ok-c: #1f7a4d; --mid-c: #b8904a; --warn-c: #c46a1c; --bad-c: #a8322d; background: var(--ivory); }
.fp-top { position: sticky; top: 0; z-index: 20; background: rgba(15, 31, 58, .97); backdrop-filter: blur(8px); }
.fp-top-in { display: flex; align-items: center; gap: 18px; min-height: 64px; }
.fp-brand { display: flex; align-items: center; gap: 10px; color: #fff; text-decoration: none; font-family: var(--serif); font-size: 1.45rem; }
.fp-brand b { color: var(--gold-light); font-weight: 700; }
.fp-nav { display: flex; gap: 18px; margin-left: auto; }
.fp-nav a { color: #d7dcea; text-decoration: none; font-size: .92rem; }
.fp-nav a:hover { color: #fff; }
@media (max-width: 860px) { .fp-nav { display: none; } .fp-plan-btn { margin-left: auto; } }

.fp-hero { background: radial-gradient(1200px 500px at 85% -10%, #2a4270 0%, transparent 60%), linear-gradient(160deg, var(--navy) 0%, var(--navy-2) 100%); color: #fff; padding: 56px 0 70px; }
.fp-hero-grid { display: grid; grid-template-columns: 1fr 1.05fr; gap: 44px; align-items: center; }
@media (max-width: 920px) { .fp-hero-grid { grid-template-columns: 1fr; gap: 28px; } }
.fp-hero h1 { color: #fff; font-size: clamp(2.4rem, 5.4vw, 3.9rem); }
.fp-hero h1 em { color: var(--gold-light); }
.fp-lead { color: #d7dcea; font-size: 1.08rem; max-width: 36em; }
.fp-badges { list-style: none; padding: 0; margin: 18px 0 0; display: flex; flex-wrap: wrap; gap: 8px; }
.fp-badges li { border: 1px solid rgba(217, 183, 122, .45); color: var(--cream); border-radius: 999px; padding: 5px 12px; font-size: .84rem; }

.fp-card { background: var(--paper); border: 1px solid var(--line); border-radius: 14px; padding: 22px; box-shadow: var(--shadow); color: var(--ink); }
.fp-scanner { display: grid; gap: 12px; }
.fp-kinds { display: flex; flex-wrap: wrap; gap: 6px; }
.fp-kind { border: 1px solid var(--line); background: var(--ivory); color: var(--navy); border-radius: 999px; padding: 6px 12px; font: 500 .84rem var(--sans); cursor: pointer; transition: all .15s; }
.fp-kind:hover { border-color: var(--gold); }
.fp-kind[aria-selected="true"] { background: var(--navy); color: #fff; border-color: var(--navy); }
.fp-scanner textarea { width: 100%; border: 1px solid var(--line); border-radius: 10px; padding: 12px 14px; font: 1rem/1.5 var(--sans); resize: vertical; min-height: 150px; background: #fff; color: var(--ink); }
.fp-scanner textarea:focus { outline: 3px solid rgba(184, 144, 74, .35); border-color: var(--gold); }
.fp-row { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.fp-file { cursor: pointer; }
.fp-count { margin-left: auto; color: var(--muted); }
.fp-go { width: 100%; font-size: 1.05rem; padding: 14px; }
.fp-quota { margin: 0; color: var(--navy); font-weight: 600; text-align: center; }
.fp-kbd { margin: 0; color: var(--muted); text-align: center; }
@media (hover: none) { .fp-kbd { display: none; } }
.fp-shot { position: relative; width: max-content; max-width: 100%; }
.fp-shot img { max-height: 160px; border-radius: 8px; border: 1px solid var(--line); }
.fp-x { position: absolute; top: -8px; right: -8px; width: 26px; height: 26px; border-radius: 50%; border: 0; background: var(--navy); color: #fff; cursor: pointer; font-size: 1rem; }

.fp-results { display: grid; gap: 16px; padding: 34px 0 10px; }
.fp-scanning { display: flex; gap: 26px; align-items: center; }
.fp-radar { width: 92px; height: 92px; flex: none; border-radius: 50%; border: 3px solid var(--line); border-top-color: var(--gold); animation: fp-spin 1s linear infinite; }
@keyframes fp-spin { to { transform: rotate(360deg); } }
.fp-stages { list-style: none; padding: 0; margin: 0; display: grid; gap: 6px; }
.fp-stages li { color: #a3aab8; padding-left: 26px; position: relative; transition: color .2s; }
.fp-stages li::before { content: ""; position: absolute; left: 0; top: .45em; width: 12px; height: 12px; border-radius: 50%; border: 2px solid #c9ced8; }
.fp-stages li.on { color: var(--navy); font-weight: 600; }
.fp-stages li.on::before { border-color: var(--gold); background: var(--gold); animation: fp-pulse 1s ease-in-out infinite; }
.fp-stages li.done { color: var(--ok-c); }
.fp-stages li.done::before { border-color: var(--ok-c); background: var(--ok-c); }
@keyframes fp-pulse { 50% { transform: scale(1.35); opacity: .6; } }

.fp-verdict { display: grid; grid-template-columns: 170px 1fr; gap: 24px; align-items: center; border-top: 6px solid var(--c, var(--navy)); }
.fp-verdict.ok { --c: var(--ok-c); } .fp-verdict.mid { --c: var(--mid-c); } .fp-verdict.warn { --c: var(--warn-c); } .fp-verdict.bad { --c: var(--bad-c); }
.fp-verdict h2 { color: var(--c); margin-bottom: .3em; }
@media (max-width: 640px) { .fp-verdict { grid-template-columns: 1fr; justify-items: center; text-align: center; } .fp-meta { justify-content: center; } .fp-scanning { flex-direction: column; } }
.fp-gauge { width: 160px; height: 160px; }
.fp-gauge circle { fill: none; stroke-width: 11; transform: rotate(-90deg); transform-origin: 60px 60px; }
.fp-gauge .trk { stroke: #eef0f4; }
.fp-gauge .bar { stroke-linecap: round; transition: stroke-dashoffset 1.1s cubic-bezier(.2, .7, .2, 1); }
.fp-gauge.ok .bar { stroke: var(--ok-c); } .fp-gauge.mid .bar { stroke: var(--mid-c); } .fp-gauge.warn .bar { stroke: var(--warn-c); } .fp-gauge.bad .bar { stroke: var(--bad-c); }
.fp-gauge text { font: 700 30px var(--sans); fill: var(--navy); }
.fp-gauge text.sub { font: 500 11px var(--sans); fill: var(--muted); }
.fp-meta { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 10px; }
.pill { display: inline-block; background: var(--ivory); border: 1px solid var(--line); border-radius: 999px; padding: 3px 10px; font-size: .8rem; color: var(--navy); }
.pill.ok { background: #e7f4ec; border-color: #b9dfc8; color: var(--ok-c); }
.pill.bad { background: #f8e7e6; border-color: #e8bcb9; color: var(--bad-c); }
.fp-summary { font-size: 1.05rem; margin: 0; }
.fp-card h3 { font-size: 1.35rem; margin-bottom: .6em; }
.fp-flag { border: 1px solid var(--line); border-left: 4px solid var(--c, var(--line)); border-radius: 8px; padding: 10px 14px; margin-top: 8px; background: #fff; }
.fp-flag.high { --c: var(--bad-c); } .fp-flag.medium { --c: var(--warn-c); } .fp-flag.low { --c: var(--mid-c); }
.fp-flag summary { cursor: pointer; display: flex; gap: 10px; align-items: center; font-weight: 600; color: var(--navy); }
.fp-flag p { margin: 8px 0 0; }
.sev { font-size: .7rem; text-transform: uppercase; letter-spacing: .08em; padding: 2px 8px; border-radius: 4px; color: #fff; background: var(--c); flex: none; }
.fp-entity { border-top: 1px solid var(--line); padding: 10px 0; }
.fp-ehead { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.fp-ehead code { word-break: break-all; font-size: .9rem; }
.fp-entity ul { margin: 6px 0 0; padding-left: 20px; color: var(--muted); font-size: .93rem; }
.fp-todo { margin: 0; padding-left: 22px; display: grid; gap: 6px; }
.fp-verify { margin: 0; padding-left: 20px; }
.fp-ex pre { white-space: pre-wrap; font-size: .85rem; background: var(--ivory); padding: 12px; border-radius: 8px; }
.fp-ex summary, .fp-checks summary { cursor: pointer; font-weight: 600; color: var(--navy); }
.fp-checks ul { list-style: none; padding: 0; columns: 2; font-size: .9rem; }
.fp-checks .ok { color: var(--ok-c); } .fp-checks .skip { color: var(--muted); }
.fp-actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.fp-paywall { text-align: center; display: grid; gap: 10px; justify-items: center; }

.fp-alt { background: #fff; }
.fp-steps { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 16px; counter-reset: s; }
.fp-steps li { background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 20px; counter-increment: s; display: grid; gap: 6px; }
.fp-steps li::before { content: counter(s); width: 34px; height: 34px; border-radius: 50%; background: var(--navy); color: var(--gold-light); display: grid; place-items: center; font-weight: 700; }
.fp-steps b { font-family: var(--serif); font-size: 1.3rem; color: var(--navy); }
.fp-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 14px; }
.fp-grid article { border: 1px solid var(--line); border-radius: 12px; padding: 18px; background: var(--ivory); }
.fp-grid h3 { font-size: 1.3rem; }
.fp-grid p { margin: 0; font-size: .94rem; color: var(--muted); }
.fp-history { list-style: none; padding: 0; display: grid; gap: 8px; }
.fp-history li { display: flex; gap: 14px; align-items: center; background: #fff; border: 1px solid var(--line); border-left: 4px solid var(--c, var(--line)); border-radius: 8px; padding: 10px 14px; }
.fp-history li.ok { --c: var(--ok-c); } .fp-history li.mid { --c: var(--mid-c); } .fp-history li.warn { --c: var(--warn-c); } .fp-history li.bad { --c: var(--bad-c); }
.fp-history .num { font-size: 1.5rem; color: var(--c); min-width: 2.2ch; }
.fp-report { display: grid; gap: 12px; }
.fp-prices { display: grid; grid-template-columns: repeat(auto-fit, minmax(270px, 1fr)); gap: 18px; max-width: 820px; margin-inline: auto; }
.fp-prices .fp-card { display: grid; gap: 10px; align-content: start; }
.fp-best { border: 2px solid var(--gold); background: #fdf8ef; }
.fp-pro-logo { width: 100%; max-width: 300px; height: auto; margin: -4px auto 2px; mix-blend-mode: multiply; }
.fp-price { font: 700 2.4rem var(--serif); color: var(--navy); margin: 0; }
.fp-price small { font-size: 1rem; color: var(--muted); }
.fp-faq { border-bottom: 1px solid var(--line); padding: 14px 0; }
.fp-faq summary { cursor: pointer; font-weight: 600; color: var(--navy); }
.fp-faq p { margin: 10px 0 0; }
.fp-foot { background: var(--navy); color: #c9cfdd; padding: 34px 0; }
.fp-foot a { color: var(--gold-light); }
.fp-foot b { color: #fff; }
.fp-toast { position: fixed; left: 50%; bottom: 24px; transform: translateX(-50%); background: var(--navy); color: #fff; padding: 10px 18px; border-radius: 8px; z-index: 60; box-shadow: var(--shadow); max-width: calc(100% - 32px); }
.fp .muted { color: var(--muted); } .fp .small { font-size: .92rem; } .fp .tiny { font-size: .8rem; }
@media (prefers-reduced-motion: reduce) { .fp-radar, .fp-stages li.on::before { animation: none; } .fp-gauge .bar { transition: none; } }
.fp-owner { margin: 8px 0; }
.fp-owner summary { cursor: pointer; color: var(--gold-light); width: max-content; }
.fp-owner input { flex: 1; min-width: 200px; padding: 8px 10px; border-radius: 6px; border: 1px solid var(--navy-3); background: var(--navy-2); color: #fff; }
.fp-acct { background: transparent; color: #fff; border: 1px solid rgba(255, 255, 255, .45); }
.fp-acct:hover { background: rgba(255, 255, 255, .1); }
.fp-danger { margin-top: 6px; }
.fp-danger summary { cursor: pointer; color: var(--muted); width: max-content; }
.fp-prices .fp-card .btn + .btn { margin-top: -2px; }
.fp-install { background: transparent; color: #fff; border: 1px solid rgba(255, 255, 255, .45); }
.fp-install:hover { background: rgba(255, 255, 255, .1); }
