/**
 * ConsentFlow - banner e pannello preferenze.
 * Superfici a colori espliciti (non ereditano dal tema), leggibili ovunque.
 */
#cf-root,
.cf-ph{
	--cf-accent:#0a6f59;
	--cf-ink:#1c2024;
	--cf-ink-2:#51586b;
	--cf-card:#ffffff;
	--cf-line:rgba(0,0,0,.12);
	--cf-on-accent:#ffffff;
}#cf-root{
	font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}#cf-root .cf-hidden{display:none !important;}

/* Card banner */
#cf-root .cf-card{
	position:fixed; z-index:2147483000;
	background:var(--cf-card); color:var(--cf-ink);
	border:1px solid var(--cf-line); border-radius:var(--cf-radius,16px);
	box-shadow:0 12px 40px rgba(0,0,0,.18);
	padding:1.1rem 1.25rem;
	display:flex; gap:1.1rem; align-items:center; flex-wrap:wrap;
}#cf-root .cf-pos-bottom{left:1rem; right:1rem; bottom:1rem; max-width:none;}#cf-root .cf-pos-box{left:1rem; bottom:1rem; max-width:420px; flex-direction:column; align-items:stretch;}
@media(min-width:1024px){#cf-root .cf-pos-bottom{left:50%; right:auto; transform:translateX(-50%); width:min(1040px,calc(100% - 2rem));}
}#cf-root .cf-banner__body{flex:1 1 340px; min-width:0;}#cf-root .cf-title{font-size:1.05rem; font-weight:700; margin:0 0 .3rem; color:var(--cf-ink); line-height:1.2;}#cf-root .cf-msg{font-size:.9rem; line-height:1.5; color:var(--cf-ink-2); margin:0;}#cf-root .cf-link{color:var(--cf-accent); text-decoration:underline; font-weight:600; margin-left:.15rem;}#cf-root .cf-actions{display:flex; gap:.5rem; flex-wrap:wrap; align-items:center;}#cf-root .cf-pos-box .cf-actions{margin-top:.4rem;}#cf-root .cf-btn{
	cursor:pointer; border-radius:10px; font-weight:700; font-size:.9rem;
	padding:.6rem 1.05rem; line-height:1.2; border:1.5px solid transparent; white-space:nowrap;
}#cf-root .cf-btn--primary{background:var(--cf-accent); color:var(--cf-on-accent);}#cf-root .cf-btn--primary:hover{filter:brightness(.94);}#cf-root .cf-btn--ghost{background:transparent; color:var(--cf-ink); border-color:var(--cf-line);}#cf-root .cf-btn--ghost:hover{border-color:var(--cf-accent); color:var(--cf-accent);}

/* Modale preferenze */
#cf-root .cf-modal{
	position:fixed; inset:0; z-index:2147483001;
	background:rgba(15,20,25,.55);
	display:flex; align-items:center; justify-content:center; padding:1rem;
}#cf-root .cf-modal__panel{
	background:var(--cf-card); color:var(--cf-ink);
	border-radius:calc(var(--cf-radius,16px) + 2px); max-width:520px; width:100%;
	max-height:85vh; overflow:auto; padding:1.6rem 1.6rem 1.3rem; position:relative;
	box-shadow:0 24px 60px rgba(0,0,0,.3);
}#cf-root .cf-close{
	position:absolute; top:.8rem; right:.9rem; border:0; background:transparent;
	font-size:1.5rem; line-height:1; cursor:pointer; color:var(--cf-ink-2);
}#cf-root .cf-cats{display:flex; flex-direction:column; gap:.6rem; margin:1rem 0 1.2rem;}#cf-root .cf-cat{
	display:block; border:1px solid var(--cf-line); border-radius:12px;
	padding:.85rem 1rem; cursor:pointer;
}#cf-root .cf-cat__head{display:flex; align-items:center; justify-content:space-between; gap:1rem;}#cf-root .cf-cat__label{font-weight:700; color:var(--cf-ink);}#cf-root .cf-cat__desc{display:block; font-size:.84rem; color:var(--cf-ink-2); margin-top:.25rem; line-height:1.45;}

/* Toggle (checkbox come switch) */
#cf-root .cf-toggle{appearance:none; -webkit-appearance:none; position:relative; width:42px; height:24px; border-radius:999px; background:#cfd4dc; cursor:pointer; flex:0 0 auto; transition:background .15s ease; margin:0;}#cf-root .cf-toggle:checked{background:var(--cf-accent);}#cf-root .cf-toggle:disabled{opacity:.55; cursor:not-allowed;}#cf-root .cf-toggle::after{content:""; position:absolute; top:3px; left:3px; width:18px; height:18px; border-radius:50%; background:#fff; transition:transform .15s ease;}#cf-root .cf-toggle:checked::after{transform:translateX(18px);}

/* Bottone riapri (floating) */
#cf-root .cf-reopen{
	position:fixed; left:1rem; bottom:1rem; z-index:2147482000;
	width:44px; height:44px; border-radius:50%; border:1px solid var(--cf-line);
	background:var(--cf-card); cursor:pointer; font-size:1.2rem; line-height:1;
	box-shadow:0 6px 20px rgba(0,0,0,.18);
}

/* Focus visibile */
#cf-root :focus-visible{outline:3px solid var(--cf-accent); outline-offset:2px; border-radius:8px;}

/* Dark mode */
@media (prefers-color-scheme: dark){#cf-root, .cf-ph{--cf-ink:#eef1f6; --cf-ink-2:#aab3c2; --cf-card:#1c2230; --cf-line:rgba(255,255,255,.14);}#cf-root .cf-btn--ghost{color:var(--cf-ink);}#cf-root .cf-toggle{background:#3a4252;}
}

/* Nota GPC nel banner */
#cf-root .cf-gpc{
	margin:.5rem 0 0; font-size:.8rem; color:var(--cf-ink-2);
	padding:.4rem .6rem; border-left:3px solid var(--cf-accent);
	background:rgba(0,0,0,.04); border-radius:0 8px 8px 0;
}
@media (prefers-color-scheme: dark){#cf-root .cf-gpc{background:rgba(255,255,255,.06);}
}

/* Consent receipt nella modale */
#cf-root .cf-receipt{
	margin:.9rem 0 0; font-size:.75rem; color:var(--cf-ink-2);
	display:flex; align-items:center; gap:.4rem; flex-wrap:wrap;
}#cf-root .cf-receipt code{
	font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:.72rem;
	background:rgba(0,0,0,.05); border-radius:6px; padding:.15rem .45rem;
	color:var(--cf-ink); word-break:break-all;
}
@media (prefers-color-scheme: dark){#cf-root .cf-receipt code{background:rgba(255,255,255,.08);}
}

/* Placeholder "accetta e carica" per embed bloccati.
   Superficie neutra elegante: si adatta a chiaro/scuro, mai invadente. */
.cf-ph{
	display:flex; align-items:center; justify-content:center;
	width:100%; min-height:220px; box-sizing:border-box;
	border-radius:var(--cf-radius,16px); border:1px dashed var(--cf-line);
	background:
		radial-gradient(ellipse at 30% 20%, rgba(0,0,0,.05), transparent 60%),
		var(--cf-card);
	color:var(--cf-ink); text-align:center; padding:1.4rem;
	margin:0 0 .4rem;
}.cf-ph__inner{max-width:380px; display:flex; flex-direction:column; align-items:center; gap:.45rem;}.cf-ph__icon{
	width:52px; height:52px; border-radius:50%;
	background:var(--cf-accent); color:var(--cf-on-accent);
	display:inline-flex; align-items:center; justify-content:center;
	font-size:1.15rem; padding-left:4px; margin-bottom:.3rem;
	box-shadow:0 6px 20px rgba(0,0,0,.18);
}.cf-ph__title{font-size:1rem; font-weight:800; color:var(--cf-ink);}.cf-ph__msg{margin:0; font-size:.85rem; line-height:1.5; color:var(--cf-ink-2);}.cf-ph__btn{margin-top:.5rem;}
