.bpc-widget {
	--bpc-ink: #10192b;
	--bpc-ink-soft: #4a5568;
	--bpc-line: #d8dee6;
	--bpc-bg: #f6f7f9;
	--bpc-panel: #ffffff;
	--bpc-pass: #17804f;
	--bpc-pass-bg: #e6f4ec;
	--bpc-warn: #a35b00;
	--bpc-warn-bg: #fbf0dc;
	--bpc-fail: #b0301f;
	--bpc-fail-bg: #fbe8e4;
	--bpc-neutral: #5a6473;
	/* BITSmart brand amber. Amber is bright, so button text is dark (not white)
	   and text-coloured links use a darker gold (--bpc-accent-text) that stays
	   readable on a white background. To revert to the DMARC checker's blue,
	   set --bpc-accent:#1b4d8f; --bpc-accent-hover:#163f74; --bpc-accent-btn-ink:#fff;
	   --bpc-accent-text:#1b4d8f. */
	--bpc-accent: #f7b008;
	--bpc-accent-hover: #e0a006;
	--bpc-accent-btn-ink: #1f2937;
	--bpc-accent-text: #9a6a00;
	--bpc-mono: ui-monospace, SFMono-Regular, "SF Mono", Consolas, "Liberation Mono", Menlo, monospace;
	--bpc-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	max-width: 640px;
	margin: 0 auto;
	font-family: var(--bpc-sans);
	color: var(--bpc-ink);
	box-sizing: border-box;
}
.bpc-widget *, .bpc-widget *::before, .bpc-widget *::after { box-sizing: inherit; }

.bpc-card { background: var(--bpc-panel); border: 1px solid var(--bpc-line); border-radius: 10px; padding: 28px; }
.bpc-eyebrow { font-family: var(--bpc-mono); font-size: 12px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--bpc-ink-soft); margin: 0 0 6px; }
.bpc-title { font-size: 20px; font-weight: 700; margin: 0 0 8px; line-height: 1.3; }
.bpc-intro { color: var(--bpc-ink-soft); font-size: 14px; line-height: 1.6; margin: 0 0 16px; }

.bpc-textarea {
	width: 100%; min-height: 200px; resize: vertical;
	font-family: var(--bpc-mono); font-size: 13px; line-height: 1.55;
	padding: 12px 14px; border: 1px solid var(--bpc-line); border-radius: 6px;
	background: var(--bpc-bg); color: var(--bpc-ink);
}
.bpc-textarea:focus { outline: 2px solid var(--bpc-accent); outline-offset: 1px; background: var(--bpc-panel); }

/* "How do I get the full source" help panel */
.bpc-help { margin: 0 0 14px; border: 1px solid var(--bpc-line); border-radius: 6px; background: var(--bpc-bg); }
.bpc-help-summary { cursor: pointer; padding: 11px 14px; font-size: 13px; font-weight: 600; color: var(--bpc-accent-text); list-style: none; user-select: none; }
.bpc-help-summary::-webkit-details-marker { display: none; }
.bpc-help-summary::before { content: "＋ "; font-family: var(--bpc-mono); }
.bpc-help[open] .bpc-help-summary::before { content: "－ "; }
.bpc-help-body { padding: 2px 14px 12px; border-top: 1px solid var(--bpc-line); }
.bpc-help-item { padding: 10px 0; border-bottom: 1px dashed var(--bpc-line); }
.bpc-help-item:last-of-type { border-bottom: none; }
.bpc-help-client { font-size: 13px; font-weight: 700; color: var(--bpc-ink); margin-bottom: 3px; }
.bpc-help-steps { font-size: 13px; line-height: 1.6; color: var(--bpc-ink-soft); }
.bpc-help-steps b { color: var(--bpc-ink); font-weight: 600; }
.bpc-help-mobile { font-size: 12.5px; line-height: 1.6; color: var(--bpc-ink-soft); margin: 10px 0 0; }

.bpc-form-row { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.bpc-input { flex: 1 1 200px; font-family: var(--bpc-mono); font-size: 15px; padding: 11px 13px; border: 1px solid var(--bpc-line); border-radius: 6px; background: var(--bpc-bg); color: var(--bpc-ink); }
.bpc-input:focus { outline: 2px solid var(--bpc-accent); outline-offset: 1px; background: var(--bpc-panel); }

.bpc-actions { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; margin-top: 14px; }
.bpc-btn { font-family: var(--bpc-sans); font-size: 15px; font-weight: 600; padding: 11px 20px; border-radius: 6px; border: none; background: var(--bpc-accent); color: var(--bpc-accent-btn-ink); cursor: pointer; }
.bpc-btn:hover { background: var(--bpc-accent-hover); }
.bpc-btn:disabled { opacity: 0.6; cursor: default; }
.bpc-btn-secondary { background: transparent; color: var(--bpc-accent-text); border: 1px solid var(--bpc-line); }
.bpc-btn-secondary:hover { background: var(--bpc-bg); border-color: var(--bpc-accent); }
.bpc-hint { font-family: var(--bpc-mono); font-size: 12px; color: var(--bpc-ink-soft); margin-left: auto; }

.bpc-error { color: var(--bpc-fail); font-size: 13px; margin-top: 10px; }

/* Risk readout — dark panel, big score coloured by band */
.bpc-readout {
	display: flex; align-items: center; gap: 20px;
	background: var(--bpc-ink); border-radius: 8px; padding: 20px 22px; margin: 0 0 22px;
	position: relative; overflow: hidden;
}
.bpc-readout::after {
	content: ""; position: absolute; left: 0; right: 0; top: 0; height: 2px;
	background: linear-gradient(90deg, transparent, rgba(255,255,255,0.5), transparent);
	animation: bpc-scan 2.6s linear infinite;
}
@media (prefers-reduced-motion: reduce) { .bpc-readout::after { animation: none; } }
@keyframes bpc-scan { 0% { transform: translateX(-100%); } 100% { transform: translateX(100%); } }

.bpc-score { font-family: var(--bpc-mono); font-size: 40px; font-weight: 700; line-height: 1; color: #fff; min-width: 78px; text-align: center; }
.bpc-score small { display: block; font-size: 11px; font-weight: 400; letter-spacing: 0.04em; color: #c9d2e0; margin-top: 4px; }
.bpc-readout[data-band="HIGH"]  .bpc-score { color: #f0705a; }
.bpc-readout[data-band="SUSP"]  .bpc-score { color: #f0a25a; }
.bpc-readout[data-band="LOW"]   .bpc-score { color: #f0c85a; }
.bpc-readout[data-band="CLEAN"] .bpc-score { color: #6fe3a5; }

.bpc-readout-meta { font-family: var(--bpc-mono); color: #c9d2e0; font-size: 13px; line-height: 1.6; }
.bpc-verdict { color: #fff; font-size: 15px; font-weight: 600; display: block; margin-bottom: 2px; }

.bpc-gate p { color: var(--bpc-ink-soft); font-size: 14px; line-height: 1.6; margin: 0 0 16px; }
.bpc-gate .bpc-form-row { margin-bottom: 10px; }
.bpc-gate-fields { display: flex; flex-direction: column; gap: 10px; }
.bpc-gate-fields .bpc-input { flex: 0 0 auto; width: 100%; }
/* Honeypot — visually hidden but reachable to bots */
.bpc-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.bpc-consent { font-size: 12px; color: var(--bpc-ink-soft); line-height: 1.6; margin: 4px 0 0; }

.bpc-summary { display: flex; gap: 14px; flex-wrap: wrap; font-size: 13px; color: var(--bpc-ink-soft); margin: 0 0 8px; }
.bpc-summary b { color: var(--bpc-ink); }

.bpc-checks { list-style: none; margin: 8px 0 0; padding: 0; border-top: 1px solid var(--bpc-line); }
.bpc-check-row { border-bottom: 1px solid var(--bpc-line); padding: 14px 0; }
.bpc-check-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.bpc-check-name { font-weight: 600; font-size: 14px; }
.bpc-pill { font-family: var(--bpc-mono); font-size: 11px; letter-spacing: 0.04em; text-transform: uppercase; padding: 3px 9px; border-radius: 100px; white-space: nowrap; flex-shrink: 0; }
.bpc-pill-high { color: var(--bpc-fail); background: var(--bpc-fail-bg); }
.bpc-pill-med { color: var(--bpc-warn); background: var(--bpc-warn-bg); }
.bpc-pill-low { color: var(--bpc-neutral); background: #eef0f3; }
.bpc-pill-ok { color: var(--bpc-pass); background: var(--bpc-pass-bg); }
.bpc-check-detail { margin: 8px 0 0; font-size: 13px; color: var(--bpc-ink-soft); line-height: 1.6; word-break: break-word; }
.bpc-check-detail code { font-family: var(--bpc-mono); font-size: 12px; background: var(--bpc-bg); border: 1px solid var(--bpc-line); border-radius: 4px; padding: 1px 5px; word-break: break-all; }

.bpc-loading { font-family: var(--bpc-mono); font-size: 13px; color: var(--bpc-ink-soft); padding: 20px 0; text-align: center; }

.bpc-cta { background: var(--bpc-bg); border: 1px solid var(--bpc-line); border-left: 3px solid var(--bpc-accent); border-radius: 6px; padding: 16px 18px; margin: 22px 0 0; }
.bpc-cta p { margin: 0 0 12px; font-size: 14px; line-height: 1.6; color: var(--bpc-ink); }
.bpc-cta .bpc-btn { display: inline-block; text-decoration: none; }
.bpc-cta.is-clean { border-left-color: var(--bpc-pass); }

.bpc-footer-note { font-size: 12px; color: var(--bpc-ink-soft); margin-top: 18px; text-align: center; line-height: 1.6; }

@media (max-width: 480px) {
	.bpc-card { padding: 20px 18px; }
	.bpc-score { font-size: 32px; min-width: 64px; }
	.bpc-hint { margin-left: 0; width: 100%; }
}
