/*!
 * Brandlogee SEO Audit — report stylesheet (v0.7+).
 * Modern professional aesthetic: Inter typography, 8px spacing grid,
 * refined slate palette, accessible contrast, stable hover states.
 */

/* ==========================================================================
   Design tokens
   ========================================================================== */
.bsa-report {
	/* Spacing scale (8px grid) */
	--bsa-s-1: 4px;
	--bsa-s-2: 8px;
	--bsa-s-3: 12px;
	--bsa-s-4: 16px;
	--bsa-s-5: 24px;
	--bsa-s-6: 32px;
	--bsa-s-7: 48px;
	--bsa-s-8: 64px;

	/* Neutrals */
	--bsa-bg:          #FFFFFF;
	--bsa-bg-subtle:   #F8FAFC;
	--bsa-bg-muted:    #F1F5F9;
	--bsa-text:        #0F172A;
	--bsa-text-2:      #334155;
	--bsa-text-3:      #64748B;
	--bsa-text-4:      #94A3B8;
	--bsa-border:      #E2E8F0;
	--bsa-border-soft: #F1F5F9;
	--bsa-border-strong:#CBD5E1;

	/* Brand */
	--bsa-brand:       #2563EB;
	--bsa-brand-tint:  rgba(37, 99, 235, 0.08);

	/* Status (semantic) */
	--bsa-pass:        #10B981;
	--bsa-pass-bg:     #ECFDF5;
	--bsa-pass-text:   #047857;
	--bsa-pass-border: #A7F3D0;

	--bsa-warn:        #F59E0B;
	--bsa-warn-bg:     #FFFBEB;
	--bsa-warn-text:   #B45309;
	--bsa-warn-border: #FCD34D;

	--bsa-fail:        #EF4444;
	--bsa-fail-bg:     #FEF2F2;
	--bsa-fail-text:   #B91C1C;
	--bsa-fail-border: #FECACA;

	--bsa-info:        #6366F1;
	--bsa-info-bg:     #EEF2FF;
	--bsa-info-text:   #4338CA;
	--bsa-info-border: #C7D2FE;

	/* Severity colors */
	--bsa-sev-critical: #DC2626;
	--bsa-sev-high:     #EA580C;
	--bsa-sev-medium:   #D97706;
	--bsa-sev-low:      #0284C7;

	/* Shadow scale */
	--bsa-shadow-xs: 0 1px 1px rgba(15, 23, 42, 0.03);
	--bsa-shadow-sm: 0 1px 2px rgba(15, 23, 42, 0.05);
	--bsa-shadow-md: 0 2px 4px rgba(15, 23, 42, 0.04), 0 1px 2px rgba(15, 23, 42, 0.05);
	--bsa-shadow-lg: 0 8px 24px rgba(15, 23, 42, 0.06), 0 2px 4px rgba(15, 23, 42, 0.04);

	/* Radius */
	--bsa-r-sm: 6px;
	--bsa-r:    8px;
	--bsa-r-md: 10px;
	--bsa-r-lg: 14px;
	--bsa-r-xl: 18px;

	/* Easing */
	--bsa-ease: cubic-bezier(0.4, 0, 0.2, 1);
}

/* ==========================================================================
   Base
   ========================================================================== */
.bsa-report {
	max-width: 1120px;
	margin: var(--bsa-s-6) auto;
	padding: 0 var(--bsa-s-4);
	font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	font-feature-settings: 'cv02', 'cv11', 'ss01', 'ss03';
	color: var(--bsa-text);
	line-height: 1.55;
	font-size: 15px;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

.bsa-report-empty {
	text-align: center;
	padding: var(--bsa-s-7) var(--bsa-s-4);
	background: var(--bsa-bg-subtle);
	border: 1px solid var(--bsa-border);
	border-radius: var(--bsa-r-lg);
	color: var(--bsa-text-3);
}

.bsa-report h2 {
	font-size: 17px;
	font-weight: 700;
	letter-spacing: -0.011em;
	color: var(--bsa-text);
	margin: 0 0 var(--bsa-s-4);
	padding-bottom: var(--bsa-s-3);
	border-bottom: 1px solid var(--bsa-border);
	display: flex;
	align-items: center;
	gap: var(--bsa-s-2);
}

/* ==========================================================================
   Toolbar (action bar)
   ========================================================================== */
.bsa-toolbar {
	display: flex;
	justify-content: flex-end;
	gap: var(--bsa-s-2);
	margin-bottom: var(--bsa-s-4);
}

.bsa-toolbar-btn {
	display: inline-flex;
	align-items: center;
	gap: var(--bsa-s-2);
	padding: 10px 18px;
	min-height: 44px;
	font-family: inherit;
	font-size: 14px;
	font-weight: 600;
	color: #FFFFFF;
	background: var(--bsa-brand);
	border: 1px solid transparent;
	border-radius: var(--bsa-r);
	cursor: pointer;
	box-shadow: var(--bsa-shadow-sm);
	transition: background 180ms var(--bsa-ease), box-shadow 180ms var(--bsa-ease), transform 80ms var(--bsa-ease);
}

.bsa-toolbar-btn:hover {
	filter: brightness(1.08);
	box-shadow: var(--bsa-shadow-md);
}

.bsa-toolbar-btn:focus-visible {
	outline: 3px solid var(--bsa-brand-tint);
	outline-offset: 2px;
}

.bsa-toolbar-btn:active {
	transform: translateY(1px);
}

.bsa-toolbar-btn-alt {
	background: transparent;
	color: var(--bsa-text);
	border: 1px solid var(--bsa-border-strong);
	text-decoration: none;
}

.bsa-toolbar-btn-alt:hover {
	background: var(--bsa-bg-subtle);
	filter: none;
}

a.bsa-toolbar-btn { text-decoration: none; }

/* ==========================================================================
   Report header (gauge + meta + severity strip)
   ========================================================================== */
.bsa-rep-header {
	display: grid;
	grid-template-columns: 240px 1fr;
	gap: var(--bsa-s-6);
	align-items: center;
	padding: var(--bsa-s-6);
	background: var(--bsa-bg);
	border: 1px solid var(--bsa-border);
	border-radius: var(--bsa-r-xl);
	box-shadow: var(--bsa-shadow-md);
	margin-bottom: var(--bsa-s-5);
	position: relative;
	overflow: hidden;
}

.bsa-rep-header::before {
	content: '';
	position: absolute;
	top: 0; left: 0; right: 0;
	height: 3px;
	background: linear-gradient(90deg, var(--bsa-brand), color-mix(in srgb, var(--bsa-brand) 70%, white));
}

@media (max-width: 760px) {
	.bsa-rep-header {
		grid-template-columns: 1fr;
		text-align: center;
		padding: var(--bsa-s-5);
	}
}

/* Gauge */
.bsa-rep-gauge {
	position: relative;
	width: 200px;
	height: 200px;
	margin: 0 auto;
}

.bsa-gauge-svg {
	width: 100%;
	height: 100%;
	display: block;
	filter: drop-shadow(0 4px 8px rgba(15, 23, 42, 0.04));
}

.bsa-gauge-bg {
	fill: none;
	stroke: var(--bsa-border-soft);
	stroke-width: 12;
}

.bsa-gauge-fg {
	fill: none;
	stroke-width: 12;
	stroke-linecap: round;
	transition: stroke-dasharray 800ms var(--bsa-ease), stroke 200ms var(--bsa-ease);
}

.bsa-gauge-text {
	font-size: 48px;
	font-weight: 800;
	letter-spacing: -0.02em;
	fill: var(--bsa-text);
	font-family: inherit;
}

.bsa-rep-gauge-meta {
	position: absolute;
	left: 0; right: 0;
	bottom: 30px;
	text-align: center;
	pointer-events: none;
}

.bsa-rep-gauge-label {
	font-size: 11px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--bsa-text-3);
}

.bsa-score-good .bsa-gauge-fg { stroke: var(--bsa-pass); }
.bsa-score-mid  .bsa-gauge-fg { stroke: var(--bsa-warn); }
.bsa-score-bad  .bsa-gauge-fg { stroke: var(--bsa-fail); }
.bsa-score-none .bsa-gauge-fg { stroke: var(--bsa-text-4); }

.bsa-score-good .bsa-gauge-text { fill: var(--bsa-pass-text); }
.bsa-score-mid  .bsa-gauge-text { fill: var(--bsa-warn-text); }
.bsa-score-bad  .bsa-gauge-text { fill: var(--bsa-fail-text); }

/* Header info */
.bsa-rep-info {
	min-width: 0;
}

.bsa-rep-url {
	font-size: 22px;
	font-weight: 700;
	letter-spacing: -0.02em;
	color: var(--bsa-text);
	word-break: break-word;
	line-height: 1.25;
}

.bsa-rep-final {
	font-size: 13px;
	color: var(--bsa-text-3);
	margin-top: var(--bsa-s-1);
}

.bsa-rep-final code {
	background: var(--bsa-bg-muted);
	padding: 2px 6px;
	border-radius: var(--bsa-r-sm);
	font-family: 'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
	font-size: 12px;
	color: var(--bsa-text-2);
}

.bsa-rep-stats {
	display: flex;
	gap: var(--bsa-s-5);
	margin-top: var(--bsa-s-3);
	color: var(--bsa-text-3);
	font-size: 13px;
	flex-wrap: wrap;
}

.bsa-rep-stats strong {
	color: var(--bsa-text);
	font-weight: 600;
}

/* Severity strip */
.bsa-sev-strip {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: var(--bsa-s-2);
	margin-top: var(--bsa-s-5);
}

.bsa-sev {
	padding: var(--bsa-s-3) var(--bsa-s-3);
	border-radius: var(--bsa-r);
	text-align: center;
	color: #FFFFFF;
	background: var(--bsa-text-3);
	position: relative;
	overflow: hidden;
}

.bsa-sev-critical { background: var(--bsa-sev-critical); }
.bsa-sev-high     { background: var(--bsa-sev-high); }
.bsa-sev-medium   { background: var(--bsa-sev-medium); }
.bsa-sev-low      { background: var(--bsa-sev-low); }
.bsa-sev-total    { background: linear-gradient(135deg, #1E293B, #0F172A); }

.bsa-sev-count {
	font-size: 24px;
	font-weight: 800;
	letter-spacing: -0.02em;
	line-height: 1;
}

.bsa-sev-name {
	font-size: 10px;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	margin-top: var(--bsa-s-1);
	opacity: 0.92;
	font-weight: 600;
}

/* ==========================================================================
   Section
   ========================================================================== */
.bsa-section {
	margin-bottom: var(--bsa-s-6);
}

/* ==========================================================================
   Category cards
   ========================================================================== */
.bsa-cat-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(155px, 1fr));
	gap: var(--bsa-s-3);
}

.bsa-cat-card {
	display: block;
	padding: var(--bsa-s-4);
	background: var(--bsa-bg);
	border: 1px solid var(--bsa-border);
	border-radius: var(--bsa-r-lg);
	text-align: center;
	text-decoration: none;
	color: inherit;
	cursor: pointer;
	transition:
		border-color 180ms var(--bsa-ease),
		box-shadow 180ms var(--bsa-ease),
		background 180ms var(--bsa-ease);
}

.bsa-cat-card:hover {
	border-color: var(--bsa-border-strong);
	box-shadow: var(--bsa-shadow-md);
	background: var(--bsa-bg-subtle);
}

.bsa-cat-card:focus-visible {
	outline: 3px solid var(--bsa-brand-tint);
	outline-offset: 2px;
}

.bsa-cat-score {
	font-size: 32px;
	font-weight: 800;
	letter-spacing: -0.025em;
	line-height: 1;
	color: var(--bsa-text);
}

.bsa-cat-name {
	font-size: 13px;
	font-weight: 600;
	margin-top: var(--bsa-s-2);
	color: var(--bsa-text-2);
}

.bsa-cat-meta {
	font-size: 10px;
	color: var(--bsa-text-4);
	margin-top: var(--bsa-s-1);
	text-transform: uppercase;
	letter-spacing: 0.06em;
	font-weight: 500;
}

.bsa-cat-bar {
	margin-top: var(--bsa-s-3);
	height: 5px;
	background: var(--bsa-border-soft);
	border-radius: 999px;
	overflow: hidden;
}

.bsa-cat-bar span {
	display: block;
	height: 100%;
	border-radius: 999px;
	background: var(--bsa-text-4);
	transition: width 700ms var(--bsa-ease), background 200ms var(--bsa-ease);
}

.bsa-cat-card.bsa-score-good .bsa-cat-score    { color: var(--bsa-pass-text); }
.bsa-cat-card.bsa-score-mid  .bsa-cat-score    { color: var(--bsa-warn-text); }
.bsa-cat-card.bsa-score-bad  .bsa-cat-score    { color: var(--bsa-fail-text); }
.bsa-cat-card.bsa-score-none .bsa-cat-score    { color: var(--bsa-text-4); }
.bsa-cat-card.bsa-score-good .bsa-cat-bar span { background: var(--bsa-pass); }
.bsa-cat-card.bsa-score-mid  .bsa-cat-bar span { background: var(--bsa-warn); }
.bsa-cat-card.bsa-score-bad  .bsa-cat-bar span { background: var(--bsa-fail); }

/* ==========================================================================
   PageSpeed Insights
   ========================================================================== */
.bsa-psi-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--bsa-s-4);
}

@media (max-width: 760px) {
	.bsa-psi-grid { grid-template-columns: 1fr; }
}

.bsa-psi-card {
	background: var(--bsa-bg);
	border: 1px solid var(--bsa-border);
	border-radius: var(--bsa-r-lg);
	padding: var(--bsa-s-5);
	box-shadow: var(--bsa-shadow-xs);
}

.bsa-psi-empty,
.bsa-psi-error {
	background: var(--bsa-bg-subtle);
}

.bsa-psi-strategy {
	display: flex;
	align-items: center;
	gap: var(--bsa-s-2);
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--bsa-text-2);
	margin-bottom: var(--bsa-s-4);
}

.bsa-psi-strategy svg {
	color: var(--bsa-text-3);
}

.bsa-psi-no-data {
	font-size: 13px;
	color: var(--bsa-text-4);
	margin: 0;
}

.bsa-psi-scores {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: var(--bsa-s-2);
	margin-bottom: var(--bsa-s-4);
}

.bsa-psi-score {
	text-align: center;
	padding: var(--bsa-s-3) var(--bsa-s-2);
	border-radius: var(--bsa-r-md);
	background: var(--bsa-bg-subtle);
	border: 1px solid var(--bsa-border-soft);
}

.bsa-psi-score-value {
	font-size: 24px;
	font-weight: 800;
	letter-spacing: -0.02em;
	line-height: 1;
}

.bsa-psi-score-label {
	font-size: 10px;
	color: var(--bsa-text-3);
	margin-top: var(--bsa-s-1);
	text-transform: uppercase;
	letter-spacing: 0.06em;
	font-weight: 600;
}

.bsa-psi-score.bsa-score-good { background: var(--bsa-pass-bg);   border-color: var(--bsa-pass-border); }
.bsa-psi-score.bsa-score-good .bsa-psi-score-value { color: var(--bsa-pass-text); }
.bsa-psi-score.bsa-score-mid  { background: var(--bsa-warn-bg);   border-color: var(--bsa-warn-border); }
.bsa-psi-score.bsa-score-mid  .bsa-psi-score-value { color: var(--bsa-warn-text); }
.bsa-psi-score.bsa-score-bad  { background: var(--bsa-fail-bg);   border-color: var(--bsa-fail-border); }
.bsa-psi-score.bsa-score-bad  .bsa-psi-score-value { color: var(--bsa-fail-text); }
.bsa-psi-score.bsa-score-none .bsa-psi-score-value { color: var(--bsa-text-4); }

.bsa-psi-cwv-title {
	font-size: 10px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--bsa-text-3);
	margin: var(--bsa-s-3) 0 var(--bsa-s-2);
}

.bsa-psi-cwv {
	display: grid;
	grid-template-columns: repeat(6, minmax(0, 1fr));
	gap: var(--bsa-s-1);
}

@media (max-width: 760px) {
	.bsa-psi-cwv { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

.bsa-cwv-card {
	text-align: center;
	padding: var(--bsa-s-2);
	border-radius: var(--bsa-r-sm);
	background: var(--bsa-bg-subtle);
	border: 1px solid var(--bsa-border-soft);
}

.bsa-cwv-value {
	font-size: 14px;
	font-weight: 700;
	letter-spacing: -0.01em;
	line-height: 1.1;
	font-variant-numeric: tabular-nums;
}

.bsa-cwv-label {
	font-size: 10px;
	color: var(--bsa-text-3);
	margin-top: var(--bsa-s-1);
	text-transform: uppercase;
	letter-spacing: 0.06em;
	font-weight: 600;
}

.bsa-cwv-card.bsa-score-good { background: var(--bsa-pass-bg); border-color: var(--bsa-pass-border); color: var(--bsa-pass-text); }
.bsa-cwv-card.bsa-score-mid  { background: var(--bsa-warn-bg); border-color: var(--bsa-warn-border); color: var(--bsa-warn-text); }
.bsa-cwv-card.bsa-score-bad  { background: var(--bsa-fail-bg); border-color: var(--bsa-fail-border); color: var(--bsa-fail-text); }
.bsa-cwv-card.bsa-score-none { color: var(--bsa-text-4); }

.bsa-cwv-card.bsa-score-good .bsa-cwv-value,
.bsa-cwv-card.bsa-score-mid  .bsa-cwv-value,
.bsa-cwv-card.bsa-score-bad  .bsa-cwv-value { color: inherit; }

/* ==========================================================================
   Crawled pages
   ========================================================================== */
.bsa-pages-wrap {
	overflow-x: auto;
	border: 1px solid var(--bsa-border);
	border-radius: var(--bsa-r-lg);
	background: var(--bsa-bg);
	box-shadow: var(--bsa-shadow-xs);
}

.bsa-pages {
	width: 100%;
	border-collapse: collapse;
	font-size: 13px;
}

.bsa-pages thead th {
	text-align: left;
	background: var(--bsa-bg-subtle);
	color: var(--bsa-text-3);
	font-weight: 600;
	font-size: 10px;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	padding: var(--bsa-s-3) var(--bsa-s-4);
	border-bottom: 1px solid var(--bsa-border);
}

.bsa-pages tbody td {
	padding: var(--bsa-s-3) var(--bsa-s-4);
	border-bottom: 1px solid var(--bsa-border-soft);
	color: var(--bsa-text-2);
	vertical-align: top;
}

.bsa-pages tbody tr:last-child td { border-bottom: none; }
.bsa-pages tbody tr:hover         { background: var(--bsa-bg-subtle); }

.bsa-page-url {
	max-width: 360px;
	word-break: break-all;
	font-family: 'JetBrains Mono', ui-monospace, monospace;
	font-size: 12px;
}

.bsa-page-url a {
	color: var(--bsa-brand);
	text-decoration: none;
}

.bsa-page-url a:hover { text-decoration: underline; }

.bsa-page-fail td:nth-child(2)  { color: var(--bsa-fail-text); font-weight: 700; }
.bsa-page-redir td:nth-child(2) { color: var(--bsa-warn-text); font-weight: 700; }
.bsa-page-ok td:nth-child(2)    { color: var(--bsa-pass-text); font-weight: 700; }
.bsa-page-err td:nth-child(2)   { color: var(--bsa-text-4); }
.bsa-page-fail td               { background: rgba(239, 68, 68, 0.03); }

/* ==========================================================================
   Findings
   ========================================================================== */
.bsa-cat-block {
	margin-bottom: var(--bsa-s-5);
	scroll-margin-top: var(--bsa-s-4);
}

.bsa-cat-block-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--bsa-s-4);
	margin-bottom: var(--bsa-s-3);
	padding-bottom: var(--bsa-s-2);
	border-bottom: 1px solid var(--bsa-border-soft);
}

.bsa-cat-block-head h3 {
	display: flex;
	align-items: center;
	gap: var(--bsa-s-2);
	font-size: 15px;
	font-weight: 700;
	letter-spacing: -0.01em;
	margin: 0;
	color: var(--bsa-text);
}

.bsa-cat-dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--bsa-text-4);
}

.bsa-cat-dot.bsa-score-good { background: var(--bsa-pass); }
.bsa-cat-dot.bsa-score-mid  { background: var(--bsa-warn); }
.bsa-cat-dot.bsa-score-bad  { background: var(--bsa-fail); }

.bsa-cat-block-score {
	font-size: 15px;
	font-weight: 700;
	letter-spacing: -0.01em;
	color: var(--bsa-text-2);
	font-variant-numeric: tabular-nums;
}

.bsa-cat-block-score small {
	font-weight: 500;
	color: var(--bsa-text-4);
}

.bsa-findings {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: var(--bsa-s-2);
}

.bsa-finding {
	display: flex;
	align-items: flex-start;
	gap: var(--bsa-s-3);
	padding: var(--bsa-s-3) var(--bsa-s-4);
	background: var(--bsa-bg);
	border: 1px solid var(--bsa-border);
	border-left-width: 3px;
	border-radius: var(--bsa-r);
	transition: box-shadow 180ms var(--bsa-ease), border-color 180ms var(--bsa-ease);
}

.bsa-finding:hover {
	box-shadow: var(--bsa-shadow-sm);
}

.bsa-status-pass { border-left-color: var(--bsa-pass); }
.bsa-status-fail { border-left-color: var(--bsa-fail); background: linear-gradient(to right, var(--bsa-fail-bg), var(--bsa-bg) 40%); }
.bsa-status-warn { border-left-color: var(--bsa-warn); background: linear-gradient(to right, var(--bsa-warn-bg), var(--bsa-bg) 40%); }
.bsa-status-info { border-left-color: var(--bsa-info); }

/* Finding status icon (SVG circle background) */
.bsa-finding-status {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	color: #FFFFFF;
	flex-shrink: 0;
	margin-top: 2px;
}

.bsa-finding-status svg {
	width: 12px;
	height: 12px;
}

.bsa-status-pass .bsa-finding-status { background: var(--bsa-pass); }
.bsa-status-fail .bsa-finding-status { background: var(--bsa-fail); }
.bsa-status-warn .bsa-finding-status { background: var(--bsa-warn); }
.bsa-status-info .bsa-finding-status { background: var(--bsa-info); }

.bsa-finding-body {
	flex: 1;
	min-width: 0;
}

.bsa-finding-head {
	display: flex;
	gap: var(--bsa-s-2);
	align-items: center;
	flex-wrap: wrap;
	font-size: 11px;
	margin-bottom: var(--bsa-s-1);
}

.bsa-finding-id {
	background: var(--bsa-bg-muted);
	color: var(--bsa-text-2);
	padding: 2px 8px;
	border-radius: var(--bsa-r-sm);
	font-family: 'JetBrains Mono', ui-monospace, monospace;
	font-size: 11px;
	font-weight: 500;
}

.bsa-finding-sev {
	padding: 2px 9px;
	border-radius: 999px;
	font-weight: 700;
	font-size: 10px;
	text-transform: uppercase;
	letter-spacing: 0.06em;
}

.bsa-finding .bsa-sev-critical { background: rgba(220, 38, 38, 0.10); color: var(--bsa-sev-critical); }
.bsa-finding .bsa-sev-high     { background: rgba(234, 88, 12, 0.10); color: var(--bsa-sev-high); }
.bsa-finding .bsa-sev-medium   { background: rgba(217, 119, 6, 0.10); color: var(--bsa-sev-medium); }
.bsa-finding .bsa-sev-low      { background: rgba(2, 132, 199, 0.10); color: var(--bsa-sev-low); }
.bsa-finding .bsa-sev-info     { background: var(--bsa-bg-muted);     color: var(--bsa-text-3); }

.bsa-finding-evidence {
	color: var(--bsa-text);
	font-size: 14px;
	line-height: 1.5;
	word-break: break-word;
}

.bsa-finding-fix {
	margin-top: var(--bsa-s-2);
	padding: var(--bsa-s-2) var(--bsa-s-3);
	background: var(--bsa-bg-muted);
	border-left: 3px solid var(--bsa-text-4);
	border-radius: 0 var(--bsa-r-sm) var(--bsa-r-sm) 0;
	font-size: 13px;
	line-height: 1.55;
	color: var(--bsa-text-2);
}

.bsa-finding-fix strong {
	color: var(--bsa-text);
	margin-right: var(--bsa-s-1);
	font-weight: 600;
}

.bsa-status-fail .bsa-finding-fix { border-left-color: var(--bsa-fail); background: rgba(239, 68, 68, 0.04); }
.bsa-status-warn .bsa-finding-fix { border-left-color: var(--bsa-warn); background: rgba(245, 158, 11, 0.05); }

/* ==========================================================================
   Metrics grid
   ========================================================================== */
.bsa-metrics {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
	gap: var(--bsa-s-2);
}

.bsa-metric-card {
	background: var(--bsa-bg);
	border: 1px solid var(--bsa-border);
	border-radius: var(--bsa-r-md);
	padding: var(--bsa-s-3) var(--bsa-s-3);
	text-align: center;
	box-shadow: var(--bsa-shadow-xs);
}

.bsa-metric-value {
	font-size: 20px;
	font-weight: 700;
	letter-spacing: -0.02em;
	color: var(--bsa-text);
	font-variant-numeric: tabular-nums;
	line-height: 1.1;
}

.bsa-metric-label {
	font-size: 10px;
	color: var(--bsa-text-3);
	text-transform: uppercase;
	letter-spacing: 0.06em;
	margin-top: var(--bsa-s-1);
	font-weight: 600;
}

/* ==========================================================================
   Headings outline
   ========================================================================== */
.bsa-headings {
	list-style: none;
	padding: var(--bsa-s-4);
	margin: 0;
	font-family: 'JetBrains Mono', ui-monospace, monospace;
	font-size: 13px;
	background: var(--bsa-bg-subtle);
	border: 1px solid var(--bsa-border);
	border-radius: var(--bsa-r);
}

.bsa-headings li {
	display: flex;
	gap: var(--bsa-s-3);
	margin: 3px 0;
}

.bsa-h-tag {
	color: var(--bsa-text-4);
	min-width: 26px;
	font-weight: 700;
}

.bsa-h-level-1 { padding-left: 0; }
.bsa-h-level-2 { padding-left: var(--bsa-s-4); }
.bsa-h-level-3 { padding-left: var(--bsa-s-6); }
.bsa-h-level-4 { padding-left: var(--bsa-s-7); }
.bsa-h-level-5 { padding-left: 64px; }
.bsa-h-level-6 { padding-left: 80px; }

.bsa-h-text { color: var(--bsa-text-2); }

/* ==========================================================================
   Social tags table
   ========================================================================== */
.bsa-social {
	width: 100%;
	border-collapse: collapse;
	font-size: 13px;
	background: var(--bsa-bg);
	border: 1px solid var(--bsa-border);
	border-radius: var(--bsa-r);
	overflow: hidden;
}

.bsa-social th,
.bsa-social td {
	padding: var(--bsa-s-3) var(--bsa-s-4);
	border-bottom: 1px solid var(--bsa-border-soft);
	text-align: left;
	vertical-align: top;
}

.bsa-social tr:last-child th,
.bsa-social tr:last-child td { border-bottom: none; }

.bsa-social th {
	width: 220px;
	color: var(--bsa-text-2);
	font-weight: 600;
	font-family: 'JetBrains Mono', ui-monospace, monospace;
	font-size: 12px;
	background: var(--bsa-bg-subtle);
}

.bsa-social td {
	color: var(--bsa-text-2);
	word-break: break-word;
}

/* ==========================================================================
   Errors + footer
   ========================================================================== */
.bsa-error-section pre {
	background: var(--bsa-fail-bg);
	border: 1px solid var(--bsa-fail-border);
	color: var(--bsa-fail-text);
	padding: var(--bsa-s-4);
	border-radius: var(--bsa-r);
	overflow-x: auto;
	font-size: 12px;
	font-family: 'JetBrains Mono', ui-monospace, monospace;
	line-height: 1.5;
}

.bsa-rep-footer {
	margin-top: var(--bsa-s-6);
	padding-top: var(--bsa-s-4);
	border-top: 1px solid var(--bsa-border);
	color: var(--bsa-text-4);
	text-align: center;
	font-size: 12px;
}

/* ==========================================================================
   Print-only PDF layout — hidden on screen
   ========================================================================== */
.bsa-pdf-only   { display: none; }
.bsa-screen-only{ display: block; }

/* ==========================================================================
   Print stylesheet — professional report aesthetic
   Cover page + numbered sections + finding cards + progress bars
   ========================================================================== */
@media print {
	@page {
		size: A4;
		margin: 16mm 15mm 18mm 15mm;
	}

	@page :first {
		/* Cover page uses tighter margins for full-bleed feel */
		margin: 0;
	}

	html, body {
		background: #FFFFFF !important;
		color: #0F172A !important;
		-webkit-print-color-adjust: exact;
		print-color-adjust: exact;
	}

	#wpadminbar,
	header[role="banner"],
	nav, aside, footer,
	.site-header, .site-footer,
	.wp-block-template-part,
	.bsa-no-print,
	.bsa-screen-only {
		display: none !important;
	}

	.bsa-pdf-only {
		display: block !important;
		font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
		color: #0F172A;
		font-size: 9.5pt;
		line-height: 1.5;
	}

	.bsa-report {
		max-width: 100%;
		margin: 0;
		padding: 0;
		background: #FFFFFF !important;
		box-shadow: none !important;
		border: none !important;
	}

	/* ================== COVER PAGE ================== */
	.bsa-pdf-cover {
		position: relative;
		min-height: 297mm;          /* A4 height */
		padding: 22mm 18mm 18mm;
		page-break-after: always;
		display: flex;
		flex-direction: column;
		background:
			radial-gradient(circle at 100% 0%, rgba(37, 99, 235, 0.04), transparent 40%),
			radial-gradient(circle at 0% 100%, rgba(37, 99, 235, 0.03), transparent 40%),
			#FFFFFF;
	}

	.bsa-pdf-cover-stripe {
		position: absolute;
		top: 0; left: 0; right: 0;
		height: 5mm;
		background: linear-gradient(90deg, var(--bsa-brand, #2563EB), color-mix(in srgb, var(--bsa-brand, #2563EB) 70%, #FFFFFF));
	}

	.bsa-pdf-cover-top { margin-bottom: 18mm; }

	.bsa-pdf-cover-body { flex: 1; }

	.bsa-pdf-cover-kicker {
		font-size: 8pt;
		font-weight: 700;
		text-transform: uppercase;
		letter-spacing: 0.32em;
		color: var(--bsa-brand, #2563EB);
		margin-bottom: 4mm;
	}

	.bsa-pdf-mega-title {
		font-size: 36pt;
		font-weight: 800;
		margin: 0 0 3mm;
		color: #0F172A;
		letter-spacing: -0.03em;
		line-height: 1.05;
		word-break: break-word;
	}

	.bsa-pdf-cover-url {
		font-size: 13pt;
		color: var(--bsa-brand, #2563EB);
		margin: 0 0 2mm;
		word-break: break-all;
		font-weight: 500;
	}

	.bsa-pdf-cover-date {
		font-size: 10pt;
		color: #64748B;
		margin-bottom: 18mm;
	}

	/* Big gauge on cover */
	.bsa-pdf-cover-gauge {
		width: 70mm;
		height: 70mm;
		margin: 4mm 0 6mm;
		position: relative;
	}

	.bsa-pdf-cover-gauge .bsa-gauge-svg {
		width: 100%;
		height: 100%;
	}

	.bsa-pdf-cover-gauge .bsa-gauge-bg { stroke-width: 10; }
	.bsa-pdf-cover-gauge .bsa-gauge-fg { stroke-width: 10; }
	.bsa-pdf-cover-gauge .bsa-gauge-text { font-size: 42pt; }

	.bsa-pdf-cover-grade {
		position: absolute;
		left: 0; right: 0;
		bottom: 7mm;
		text-align: center;
		font-size: 9pt;
		font-weight: 700;
		text-transform: uppercase;
		letter-spacing: 0.12em;
		color: #475569;
	}

	/* Cover pill strip */
	.bsa-pdf-cover-pills {
		display: grid;
		grid-template-columns: repeat(4, 1fr);
		gap: 3mm;
		margin-top: 8mm;
	}

	.bsa-pdf-cover-pill {
		padding: 5mm 4mm;
		border-radius: 3mm;
		text-align: center;
		color: #FFFFFF;
	}

	.bsa-pdf-cover-pill.bsa-pdf-pill-fail { background: linear-gradient(135deg, #EF4444, #B91C1C); }
	.bsa-pdf-cover-pill.bsa-pdf-pill-warn { background: linear-gradient(135deg, #F59E0B, #B45309); }
	.bsa-pdf-cover-pill.bsa-pdf-pill-pass { background: linear-gradient(135deg, #10B981, #047857); }
	.bsa-pdf-cover-pill.bsa-pdf-pill-info { background: linear-gradient(135deg, #475569, #1E293B); }

	.bsa-pdf-pill-n {
		font-size: 22pt;
		font-weight: 800;
		line-height: 1;
		letter-spacing: -0.02em;
	}
	.bsa-pdf-pill-l {
		font-size: 8pt;
		text-transform: uppercase;
		letter-spacing: 0.08em;
		margin-top: 2mm;
		opacity: 0.92;
		font-weight: 600;
	}

	.bsa-pdf-cover-foot {
		font-size: 8.5pt;
		color: #64748B;
		padding-top: 6mm;
		border-top: 0.5pt solid #E2E8F0;
		text-align: center;
		margin-top: 4mm;
	}

	/* ================== BRAND STRIP (used inside sections too) ================== */
	.bsa-pdf-brand-strip {
		font-size: 7.5pt;
		font-weight: 700;
		text-transform: uppercase;
		letter-spacing: 0.28em;
		color: var(--bsa-brand, #2563EB);
	}

	/* ================== SECTION HEADERS (numbered) ================== */
	.bsa-pdf-section {
		margin-bottom: 8mm;
	}

	.bsa-pdf-page-break {
		page-break-before: always;
	}

	.bsa-pdf-sec-head {
		display: grid;
		grid-template-columns: 14mm 1fr auto;
		align-items: center;
		gap: 4mm;
		margin-bottom: 6mm;
		padding-bottom: 4mm;
		border-bottom: 1.5pt solid var(--bsa-brand, #2563EB);
		page-break-after: avoid;
	}

	.bsa-pdf-sec-num {
		font-size: 24pt;
		font-weight: 800;
		color: var(--bsa-brand, #2563EB);
		letter-spacing: -0.04em;
		line-height: 1;
		font-variant-numeric: tabular-nums;
	}

	.bsa-pdf-sec-titles {
		min-width: 0;
	}

	.bsa-pdf-sec-titles h2 {
		font-size: 18pt;
		font-weight: 800;
		margin: 0 0 1mm;
		color: #0F172A;
		letter-spacing: -0.02em;
		line-height: 1.1;
	}

	.bsa-pdf-sec-sub {
		font-size: 8.5pt;
		color: #64748B;
		font-weight: 500;
	}

	.bsa-pdf-mini { font-weight: 600; }
	.bsa-pdf-mini-fail { color: #B91C1C; }
	.bsa-pdf-mini-warn { color: #B45309; }
	.bsa-pdf-mini-pass { color: #047857; }

	/* Per-section score badge in the header */
	.bsa-pdf-sec-score {
		text-align: center;
		padding: 3mm 5mm;
		border-radius: 3mm;
		min-width: 18mm;
		color: #FFFFFF;
	}
	.bsa-pdf-sec-score.bsa-score-good { background: linear-gradient(135deg, #10B981, #047857); }
	.bsa-pdf-sec-score.bsa-score-mid  { background: linear-gradient(135deg, #F59E0B, #B45309); }
	.bsa-pdf-sec-score.bsa-score-bad  { background: linear-gradient(135deg, #EF4444, #B91C1C); }
	.bsa-pdf-sec-score.bsa-score-none { background: linear-gradient(135deg, #64748B, #1E293B); }

	.bsa-pdf-sec-score-n {
		font-size: 20pt;
		font-weight: 800;
		line-height: 1;
		letter-spacing: -0.02em;
	}
	.bsa-pdf-sec-score-l {
		font-size: 7pt;
		text-transform: uppercase;
		letter-spacing: 0.1em;
		opacity: 0.9;
		margin-top: 1mm;
		font-weight: 600;
	}

	.bsa-pdf-h3 {
		font-size: 10pt;
		font-weight: 700;
		text-transform: uppercase;
		letter-spacing: 0.08em;
		color: #475569;
		margin: 5mm 0 2mm;
		page-break-after: avoid;
	}

	/* ================== TABLES ================== */
	.bsa-pdf-table {
		width: 100%;
		border-collapse: collapse;
		font-size: 9.5pt;
	}

	.bsa-pdf-table thead th {
		font-size: 7pt;
		font-weight: 700;
		text-transform: uppercase;
		letter-spacing: 0.1em;
		color: #94A3B8;
		padding: 2mm 4mm 2mm 0;
		text-align: left;
		border-bottom: 1pt solid #CBD5E1;
		vertical-align: bottom;
	}

	.bsa-pdf-table thead th.bsa-pdf-r {
		text-align: right;
		padding-right: 0;
	}

	.bsa-pdf-table tbody td {
		padding: 2.5mm 4mm 2.5mm 0;
		border-bottom: 0.5pt solid #F1F5F9;
		vertical-align: middle;
		color: #0F172A;
	}

	.bsa-pdf-table tbody td.bsa-pdf-r {
		text-align: right;
		padding-right: 0;
		font-variant-numeric: tabular-nums;
	}

	.bsa-pdf-table tbody tr:last-child td { border-bottom: none; }

	.bsa-pdf-num  { color: var(--bsa-brand, #2563EB); font-weight: 700; font-size: 11pt; }
	.bsa-pdf-fail { color: #B91C1C; font-weight: 700; }
	.bsa-pdf-warn { color: #B45309; font-weight: 700; }
	.bsa-pdf-pass { color: #047857; font-weight: 700; }

	/* ================== CATEGORY PROGRESS BAR TABLE ================== */
	.bsa-pdf-bars tbody td { padding: 3mm 4mm 3mm 0; }

	.bsa-pdf-bar-cell { width: 50%; }

	.bsa-pdf-bar {
		height: 5mm;
		background: #F1F5F9;
		border-radius: 1mm;
		overflow: hidden;
	}

	.bsa-pdf-bar-fill {
		height: 100%;
		border-radius: 1mm;
		background: #94A3B8;
	}

	.bsa-pdf-bar-row.bsa-score-good .bsa-pdf-bar-fill { background: linear-gradient(90deg, #10B981, #059669); }
	.bsa-pdf-bar-row.bsa-score-mid  .bsa-pdf-bar-fill { background: linear-gradient(90deg, #F59E0B, #D97706); }
	.bsa-pdf-bar-row.bsa-score-bad  .bsa-pdf-bar-fill { background: linear-gradient(90deg, #EF4444, #DC2626); }
	.bsa-pdf-bar-row.bsa-score-good .bsa-pdf-num      { color: #047857; }
	.bsa-pdf-bar-row.bsa-score-mid  .bsa-pdf-num      { color: #B45309; }
	.bsa-pdf-bar-row.bsa-score-bad  .bsa-pdf-num      { color: #B91C1C; }

	/* ================== LIGHTHOUSE / CWV CARDS ================== */
	.bsa-pdf-lh-row {
		display: grid;
		grid-template-columns: repeat(4, 1fr);
		gap: 3mm;
		margin-bottom: 4mm;
	}

	.bsa-pdf-lh-card {
		padding: 4mm 3mm;
		border-radius: 2mm;
		text-align: center;
		border: 0.5pt solid #E2E8F0;
		background: #FFFFFF;
	}

	.bsa-pdf-lh-card.bsa-score-good { background: #ECFDF5; border-color: #A7F3D0; }
	.bsa-pdf-lh-card.bsa-score-mid  { background: #FFFBEB; border-color: #FCD34D; }
	.bsa-pdf-lh-card.bsa-score-bad  { background: #FEF2F2; border-color: #FECACA; }

	.bsa-pdf-lh-val {
		font-size: 16pt;
		font-weight: 800;
		line-height: 1;
		letter-spacing: -0.02em;
		color: #0F172A;
	}
	.bsa-pdf-lh-card.bsa-score-good .bsa-pdf-lh-val { color: #047857; }
	.bsa-pdf-lh-card.bsa-score-mid  .bsa-pdf-lh-val { color: #B45309; }
	.bsa-pdf-lh-card.bsa-score-bad  .bsa-pdf-lh-val { color: #B91C1C; }

	.bsa-pdf-lh-lbl {
		font-size: 7.5pt;
		text-transform: uppercase;
		letter-spacing: 0.08em;
		color: #64748B;
		margin-top: 2mm;
		font-weight: 600;
	}

	/* ================== KEY METRICS CARD GRID ================== */
	.bsa-pdf-metrics {
		display: grid;
		grid-template-columns: repeat(3, 1fr);
		gap: 3mm;
	}

	.bsa-pdf-metric-card {
		padding: 4mm;
		border: 0.5pt solid #E2E8F0;
		border-radius: 2mm;
		text-align: center;
		background: #F8FAFC;
	}

	.bsa-pdf-metric-v {
		font-size: 13pt;
		font-weight: 700;
		color: #0F172A;
		font-variant-numeric: tabular-nums;
		letter-spacing: -0.02em;
		line-height: 1.1;
	}
	.bsa-pdf-metric-l {
		font-size: 7.5pt;
		text-transform: uppercase;
		letter-spacing: 0.08em;
		color: #64748B;
		margin-top: 1.5mm;
		font-weight: 600;
	}

	/* ================== FINDING CARDS ================== */
	.bsa-pdf-find-list {
		list-style: none;
		margin: 0;
		padding: 0;
	}

	.bsa-pdf-find {
		display: grid;
		grid-template-columns: 2mm 1fr;
		gap: 4mm;
		padding: 3.5mm 0;
		border-bottom: 0.5pt solid #F1F5F9;
		page-break-inside: avoid;
	}

	.bsa-pdf-find:last-child {
		border-bottom: none;
	}

	.bsa-pdf-find-bar {
		width: 2mm;
		border-radius: 1mm;
		background: #94A3B8;
	}

	.bsa-pdf-find-pass .bsa-pdf-find-bar { background: #10B981; }
	.bsa-pdf-find-warn .bsa-pdf-find-bar { background: #F59E0B; }
	.bsa-pdf-find-fail .bsa-pdf-find-bar { background: #EF4444; }
	.bsa-pdf-find-info .bsa-pdf-find-bar { background: #64748B; }

	.bsa-pdf-find-body {
		min-width: 0;
	}

	.bsa-pdf-find-head {
		display: flex;
		align-items: baseline;
		gap: 3mm;
		margin-bottom: 1mm;
		flex-wrap: wrap;
	}

	.bsa-pdf-find-status {
		display: inline-block;
		font-weight: 800;
		font-size: 7pt;
		letter-spacing: 0.08em;
		padding: 1mm 2mm;
		border-radius: 1mm;
		min-width: 10mm;
		text-align: center;
	}
	.bsa-pdf-find-status.bsa-pdf-status-pass { background: #ECFDF5; color: #047857; }
	.bsa-pdf-find-status.bsa-pdf-status-warn { background: #FFFBEB; color: #B45309; }
	.bsa-pdf-find-status.bsa-pdf-status-fail { background: #FEF2F2; color: #B91C1C; }
	.bsa-pdf-find-status.bsa-pdf-status-info { background: #F1F5F9; color: #475569; }

	.bsa-pdf-find-name {
		font-size: 10pt;
		font-weight: 700;
		color: #0F172A;
		letter-spacing: -0.01em;
	}

	.bsa-pdf-find-evidence {
		font-size: 9pt;
		color: #334155;
		line-height: 1.5;
	}

	.bsa-pdf-find-fix {
		margin-top: 2mm;
		padding: 2.5mm 3.5mm;
		background: #F8FAFC;
		border-left: 1.5pt solid var(--bsa-brand, #2563EB);
		border-radius: 0 1mm 1mm 0;
		font-size: 8.5pt;
		color: #334155;
		line-height: 1.5;
	}

	.bsa-pdf-find-fix-label {
		display: inline-block;
		font-size: 7pt;
		font-weight: 800;
		text-transform: uppercase;
		letter-spacing: 0.1em;
		color: var(--bsa-brand, #2563EB);
		margin-right: 2mm;
	}

	.bsa-pdf-find-fail .bsa-pdf-find-fix { border-left-color: #EF4444; background: #FEF7F7; }
	.bsa-pdf-find-fail .bsa-pdf-find-fix-label { color: #B91C1C; }
	.bsa-pdf-find-warn .bsa-pdf-find-fix { border-left-color: #F59E0B; background: #FFFCF2; }
	.bsa-pdf-find-warn .bsa-pdf-find-fix-label { color: #B45309; }

	/* ================== HEADING STRUCTURE ================== */
	.bsa-pdf-h-block { margin-bottom: 5mm; }

	.bsa-pdf-h-level {
		font-size: 11pt;
		font-weight: 800;
		margin: 0 0 2mm;
		color: var(--bsa-brand, #2563EB);
		letter-spacing: -0.01em;
	}

	.bsa-pdf-cat-meta {
		font-weight: 500;
		color: #64748B;
		font-size: 0.9em;
	}

	.bsa-pdf-h-list {
		margin: 0 0 0 6mm;
		padding-left: 2mm;
		font-size: 9.5pt;
		color: #334155;
		line-height: 1.6;
	}
	.bsa-pdf-h-list li { margin: 0.5mm 0; }

	/* ================== SOCIAL TAGS ================== */
	.bsa-pdf-prop {
		font-family: 'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
		font-size: 9pt;
		font-weight: 600;
		color: var(--bsa-brand, #2563EB);
		white-space: nowrap;
	}

	/* ================== END FOOTER ================== */
	.bsa-pdf-end {
		margin-top: 12mm;
		padding-top: 4mm;
		border-top: 0.5pt solid #E2E8F0;
		font-size: 8pt;
		color: #94A3B8;
		text-align: center;
	}

	/* ================== STRIP HOVERS/ANIMATIONS ================== */
	.bsa-pdf-only *,
	.bsa-pdf-only *::before,
	.bsa-pdf-only *::after {
		transition: none !important;
		animation: none !important;
	}
}

/* ==========================================================================
   Reduced motion
   ========================================================================== */
@media (prefers-reduced-motion: reduce) {
	.bsa-gauge-fg,
	.bsa-cat-bar span,
	.bsa-cat-card,
	.bsa-toolbar-btn,
	.bsa-finding {
		transition: none !important;
	}
}
