.bdps {
	--bdps-accent: #1a56db;
	--bdps-accent-ink: #fff;
	--bdps-good: #12a150;
	--bdps-avg: #e08600;
	--bdps-poor: #e5412d;
	--bdps-line: rgba(127, 127, 127, .3);
	--bdps-soft: rgba(127, 127, 127, .09);
	--bdps-radius: 10px;
	--bdps-c1: #1a56db; --bdps-c2: #7c3aed; --bdps-c3: #0e9aa7; --bdps-c4: #e08600; --bdps-c5: #c0267b; --bdps-c6: #8a8f98;
	max-width: 860px;
	margin: 0 auto;
	font: inherit;
	color: inherit;
	line-height: 1.5;
}
.bdps *, .bdps *::before, .bdps *::after { box-sizing: border-box; }
.bdps [hidden] { display: none !important; }
.bdps-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ---------- Form ---------- */
.bdps-label { display: block; margin: 0 0 .4rem; font-weight: 600; }
.bdps-row { display: flex; gap: .6rem; }
.bdps-input {
	flex: 1 1 auto; min-width: 0; margin: 0; padding: .85rem 1rem;
	font: inherit; font-size: 1.1rem; color: inherit; background: transparent;
	border: 2px solid var(--bdps-line); border-radius: var(--bdps-radius);
}
.bdps-input:focus-visible, .bdps-btn:focus-visible, .bdps-link:focus-visible,
.bdps-seg input:focus-visible + span, .bdps-result summary:focus-visible {
	outline: 3px solid var(--bdps-accent); outline-offset: 2px;
}
.bdps-input:focus { border-color: var(--bdps-accent); }
.bdps-btn {
	flex: 0 0 auto; margin: 0; padding: .85rem 1.6rem; font: inherit; font-weight: 600; cursor: pointer;
	color: var(--bdps-accent-ink); background: var(--bdps-accent);
	border: 2px solid var(--bdps-accent); border-radius: var(--bdps-radius);
}
.bdps-btn:hover { filter: brightness(1.1); }
.bdps-btn[disabled] { opacity: .55; cursor: not-allowed; filter: none; }

.bdps-seg { display: inline-flex; gap: 0; margin: .9rem 0 0; padding: 3px; border: 1px solid var(--bdps-line); border-radius: 999px; }
.bdps-seg label { position: relative; margin: 0; cursor: pointer; }
.bdps-seg input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.bdps-seg span { display: block; padding: .35rem 1.1rem; border-radius: 999px; font-size: .95rem; }
.bdps-seg input:checked + span { background: var(--bdps-accent); color: var(--bdps-accent-ink); font-weight: 600; }
.bdps-turnstile { margin-top: .9rem; min-height: 0; }
.bdps-tabs { margin: 1rem 0 0; }
.bdps-tabs button { margin: 0; padding: .35rem 1.1rem; font: inherit; font-size: .95rem; color: inherit; background: none; border: 0; border-radius: 999px; cursor: pointer; }
.bdps-tabs button[aria-pressed="true"] { background: var(--bdps-accent); color: var(--bdps-accent-ink); font-weight: 600; }
.bdps-tabs button:focus-visible { outline: 3px solid var(--bdps-accent); outline-offset: 2px; }

/* ---------- Avanzamento ---------- */
.bdps-progress { margin-top: 1.5rem; padding: 1.25rem; background: var(--bdps-soft); border-radius: var(--bdps-radius); }
.bdps-bar { height: 6px; overflow: hidden; background: var(--bdps-line); border-radius: 3px; }
.bdps-bar span { display: block; width: 35%; height: 100%; background: var(--bdps-accent); border-radius: 3px; animation: bdps-slide 1.4s ease-in-out infinite; }
@keyframes bdps-slide { 0% { transform: translateX(-100%); } 100% { transform: translateX(300%); } }
.bdps-progress-text { margin: .8rem 0 .2rem; }
.bdps-link { padding: 0; font: inherit; font-size: .9rem; color: inherit; text-decoration: underline; background: none; border: 0; cursor: pointer; }

/* ---------- Errore ---------- */
.bdps-error { margin-top: 1.5rem; padding: 1rem 1.25rem; border-left: 4px solid var(--bdps-poor); background: var(--bdps-soft); border-radius: 0 var(--bdps-radius) var(--bdps-radius) 0; }

/* ---------- Risultati ---------- */
.bdps-result { margin-top: 2rem; }
.bdps-title { margin: 0; font-size: 1.6rem; line-height: 1.2; overflow-wrap: anywhere; }
.bdps-title:focus { outline: none; }
.bdps-meta { margin: .3rem 0 0; opacity: .75; font-size: .95rem; }
.bdps-meta a { color: inherit; }
.bdps-h { margin: 2.5rem 0 .3rem; font-size: 1.25rem; line-height: 1.25; }
.bdps-sub { margin: 0 0 1rem; opacity: .75; font-size: .95rem; max-width: 62ch; }

.bdps-scores { display: grid; grid-template-columns: auto 1fr; gap: 2rem 3rem; align-items: center; margin-top: 1.5rem; }
.bdps-small { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.bdps-gauge { margin: 0; text-align: center; }
.bdps-gauge svg { display: block; width: 100%; height: auto; margin: 0 auto; }
.bdps-gauge--big svg { width: 170px; }
.bdps-gauge--sm svg { max-width: 92px; }
.bdps-gauge figcaption { margin-top: .3rem; font-size: .9rem; }
.bdps-gauge--big figcaption { font-size: 1.05rem; font-weight: 600; }
.bdps-track { fill: none; stroke: var(--bdps-line); stroke-width: 9; }
.bdps-val { fill: none; stroke-width: 9; stroke-linecap: round; transform: rotate(-90deg); transform-origin: 50% 50%; transition: stroke-dashoffset 1s cubic-bezier(.2, .7, .2, 1); }
.bdps-num { fill: currentColor; font-size: 30px; font-weight: 700; text-anchor: middle; dominant-baseline: central; }
.is-good { stroke: var(--bdps-good); }
.is-average { stroke: var(--bdps-avg); }
.is-poor { stroke: var(--bdps-poor); }
.is-none { stroke: var(--bdps-line); }
.bdps-legend { grid-column: 1 / -1; margin: 0; font-size: .85rem; opacity: .7; }

/* Metriche con scala a tre zone */
.bdps-metrics { margin: 0; padding: 0; list-style: none; }
.bdps-metric { padding: 1rem 0; border-top: 1px solid var(--bdps-line); }
.bdps-metric:last-child { border-bottom: 1px solid var(--bdps-line); }
.bdps-mhead { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; flex-wrap: wrap; }
.bdps-mname { font-weight: 600; }
.bdps-mdesc { margin-left: .5rem; opacity: .75; font-size: .92rem; }
.bdps-mval { font-size: 1.15rem; font-weight: 700; white-space: nowrap; }
.bdps-rate { margin-left: .5rem; font-size: .85rem; font-weight: 600; }
.bdps-rate.is-good { color: var(--bdps-good); stroke: none; }
.bdps-rate.is-average { color: var(--bdps-avg); stroke: none; }
.bdps-rate.is-poor { color: var(--bdps-poor); stroke: none; }
.bdps-scale { position: relative; display: flex; height: 8px; margin: .75rem 7px .2rem; border-radius: 4px; }
.bdps-scale i { display: block; height: 100%; opacity: .4; }
.bdps-scale i:first-child { border-radius: 4px 0 0 4px; background: var(--bdps-good); }
.bdps-scale i:nth-child(2) { background: var(--bdps-avg); }
.bdps-scale i:last-child { flex: 1; border-radius: 0 4px 4px 0; background: var(--bdps-poor); }
.bdps-pin { position: absolute; top: 50%; width: 18px; height: 18px; margin: -9px 0 0 -9px; border-radius: 50%; border: 3px solid var(--bdps-line); background: currentColor; box-shadow: 0 0 0 2px var(--bdps-bg, #fff); }
.bdps-pin.is-good { border-color: var(--bdps-good); }
.bdps-pin.is-average { border-color: var(--bdps-avg); }
.bdps-pin.is-poor { border-color: var(--bdps-poor); }
.bdps-note { padding: 1rem 1.25rem; background: var(--bdps-soft); border-radius: var(--bdps-radius); }

/* Fasi / composizione: barra segmentata + legenda */
.bdps-phases { display: flex; height: 14px; margin: 1rem 0 .6rem; overflow: hidden; border-radius: 7px; background: var(--bdps-line); }
.bdps-phases span { display: block; height: 100%; min-width: 2px; }
.bdps-c1 { background: var(--bdps-c1); } .bdps-c2 { background: var(--bdps-c2); } .bdps-c3 { background: var(--bdps-c3); }
.bdps-c4 { background: var(--bdps-c4); } .bdps-c5 { background: var(--bdps-c5); } .bdps-c6 { background: var(--bdps-c6); }
.bdps-legend2 { margin: 0 0 1rem; padding: 0; list-style: none; }
.bdps-legend2 li { display: flex; align-items: baseline; gap: .6rem; padding: .25rem 0; }
.bdps-legend2 li span { flex: 1 1 auto; }
.bdps-legend2 strong { white-space: nowrap; }
.bdps-sw { flex: 0 0 auto; display: inline-block; width: 11px; height: 11px; border-radius: 3px; transform: translateY(1px); }
.bdps-tight { margin-bottom: .4rem; }
.bdps-bul { margin: 0 0 1rem 1.2rem; padding: 0; }
.bdps-bul li { margin: .2rem 0; }
.bdps-result code { padding: .1rem .35rem; font-size: .88em; background: var(--bdps-soft); border-radius: 4px; overflow-wrap: anywhere; }
.bdps-stats { display: flex; flex-wrap: wrap; gap: 1rem 2.5rem; margin: 0 0 1rem; padding: 0; list-style: none; }
.bdps-stats li { display: flex; flex-direction: column; }
.bdps-stat-n { font-size: 1.6rem; font-weight: 700; line-height: 1.2; }

/* Problemi con file coinvolti */
.bdps-finds { border-bottom: 1px solid var(--bdps-line); }
.bdps-result .bdps-find { margin: 0; border-top: 1px solid var(--bdps-line); }
.bdps-find summary { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; padding: .9rem 0; }
.bdps-ftitle { font-weight: 600; }
.bdps-fimpact { font-weight: 700; white-space: nowrap; }
.bdps-rows { margin: 0 0 1rem; padding: 0; list-style: none; }
.bdps-rrow { padding: .45rem 0; }
.bdps-rhead { display: flex; justify-content: space-between; gap: 1rem; font-size: .93rem; }
.bdps-rlabel { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bdps-rval { white-space: nowrap; font-weight: 600; }
.bdps-rnote { margin: .3rem 0 0; font-size: .85rem; opacity: .75; }

/* Opportunità (barra riga) */
.bdps-opps { margin: 0; padding: 0; list-style: none; }
.bdps-opp { padding: .8rem 0; border-top: 1px solid var(--bdps-line); }
.bdps-opp:last-child { border-bottom: 1px solid var(--bdps-line); }
.bdps-ohead { display: flex; justify-content: space-between; gap: 1rem; }
.bdps-osave { font-weight: 700; white-space: nowrap; }
.bdps-obar { height: 5px; margin-top: .5rem; background: var(--bdps-soft); border-radius: 3px; }
.bdps-obar span { display: block; height: 100%; background: var(--bdps-accent); border-radius: 3px; }

.bdps-result details { margin-top: 1.5rem; }
.bdps-result summary { cursor: pointer; font-weight: 600; }
.bdps-diag { margin: .75rem 0 0; padding: 0; list-style: none; }
.bdps-diag li { display: flex; justify-content: space-between; gap: 1rem; padding: .5rem 0; border-top: 1px solid var(--bdps-line); }
.bdps-diag span { opacity: .75; white-space: nowrap; }

.bdps-foot { display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; margin-top: 2.5rem; font-size: .88rem; opacity: .85; }
.bdps-foot p { margin: 0; }

@media (max-width: 640px) {
	.bdps-row { flex-direction: column; }
	.bdps-btn { width: 100%; }
	.bdps-scores { grid-template-columns: 1fr; justify-items: center; gap: 1.5rem; }
	.bdps-small { width: 100%; }
	.bdps-mdesc { display: block; margin: 0; }
}
@media (prefers-reduced-motion: reduce) {
	.bdps-bar span { animation: none; width: 100%; opacity: .5; }
	.bdps-val { transition: none; }
}

/* ---------- Esportazione per l'IA ---------- */
.bdps-ai { margin-top: 1.5rem; padding: 1.1rem 1.25rem; background: var(--bdps-soft); border: 1px solid var(--bdps-line); border-radius: var(--bdps-radius); }
.bdps-ai p { margin: .25rem 0 0; font-size: .95rem; }
.bdps-ai-btns { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem 1rem; margin-top: .9rem; }
.bdps-ai-btns .bdps-btn { padding: .6rem 1.2rem; }
.bdps-btn--ghost { color: inherit; background: transparent; border-color: var(--bdps-line); }
.bdps-btn--ghost:hover { border-color: var(--bdps-accent); filter: none; }
.bdps-ai a.bdps-link { color: inherit; }
.bdps-ai-status { min-height: 1.3em; margin: .6rem 0 0; font-size: .9rem; font-weight: 600; }
.bdps-ai-text { width: 100%; margin-top: .6rem; padding: .7rem; font: .85rem/1.45 ui-monospace, SFMono-Regular, Menlo, monospace; color: inherit; background: transparent; border: 1px solid var(--bdps-line); border-radius: 8px; }

/* Descrizioni, avvio, controlli falliti */
.bdps-start { margin: .4rem 0 0 1.2rem; padding: 0; }
.bdps-start li { margin: .2rem 0; }
.bdps-fdesc { margin: 0 0 .6rem; font-size: .92rem; opacity: .85; }
.bdps-more summary { cursor: pointer; font-weight: 600; }
.bdps-diag2 { margin: .75rem 0 0; padding: 0; list-style: none; }
.bdps-diag2 li { padding: .6rem 0; border-top: 1px solid var(--bdps-line); }
.bdps-diag2 .bdps-ex { display: block; margin-top: .3rem; font-size: .82rem; white-space: pre-wrap; }

/* Avviso redirect */
.bdps-redirect { margin-top: 1.25rem; padding: 1rem 1.25rem; border-left: 4px solid var(--bdps-avg); background: var(--bdps-soft); border-radius: 0 var(--bdps-radius) var(--bdps-radius) 0; }
.bdps-redirect p { margin: 0 0 .8rem; }
.bdps-redirect .bdps-btn { padding: .5rem 1.1rem; }

/* Avviso: risultato dalla cache */
.bdps-cachenote { margin-top: 1.25rem; padding: 1rem 1.25rem; border-left: 4px solid var(--bdps-accent); background: var(--bdps-soft); border-radius: 0 var(--bdps-radius) var(--bdps-radius) 0; }
.bdps-cachenote p { margin: 0; }
.bdps-cachenote .bdps-btn { margin-top: .8rem; padding: .5rem 1.1rem; }

/* Il widget anti-bot compare al primo tocco: riservo lo spazio per evitare spostamenti del layout */
.bdps[data-sitekey]:not([data-sitekey=""]) .bdps-turnstile { min-height: 65px; }
