/* Recesso Digitale EU — storefront styles */
.rde-app{
	--rde-accent:#1a1a1a;
	--rde-accent-text:#fff;
	--rde-border:#e2e2e2;
	--rde-muted:#666;
	--rde-radius:10px;
	max-width:640px;
	margin:0 auto;
	font-size:15px;
	line-height:1.5;
	color:#1a1a1a;
}
.rde-app *{box-sizing:border-box}
.rde-card{
	border:1px solid var(--rde-border);
	border-radius:var(--rde-radius);
	padding:24px;
	background:#fff;
}
.rde-step__title{font-size:18px;font-weight:600;margin:0 0 16px}
.rde-field{margin:0 0 14px}
.rde-field label{display:block;font-weight:600;margin:0 0 6px;font-size:14px}
.rde-field input[type=text],
.rde-field input[type=email],
.rde-field textarea{
	width:100%;
	padding:10px 12px;
	border:1px solid var(--rde-border);
	border-radius:8px;
	font-size:15px;
	font-family:inherit;
}
.rde-field textarea{min-height:84px;resize:vertical}
.rde-hint{color:var(--rde-muted);font-size:13px;margin:4px 0 0}
.rde-btn{
	display:inline-block;
	border:none;
	cursor:pointer;
	padding:11px 18px;
	border-radius:8px;
	font-size:15px;
	font-weight:600;
	background:var(--rde-accent);
	color:var(--rde-accent-text);
}
.rde-btn[disabled]{opacity:.55;cursor:not-allowed}
.rde-btn--ghost{background:transparent;color:var(--rde-accent);border:1px solid var(--rde-border)}
.rde-actions{display:flex;gap:10px;align-items:center;margin-top:18px;flex-wrap:wrap}
.rde-link{background:none;border:none;color:var(--rde-accent);cursor:pointer;text-decoration:underline;padding:0;font-size:14px}
.rde-items{list-style:none;margin:0;padding:0}
.rde-item{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:12px;
	padding:12px 0;
	border-bottom:1px solid var(--rde-border);
}
.rde-item__main{display:flex;align-items:center;gap:10px}
.rde-item__title{font-weight:600}
.rde-item__meta{color:var(--rde-muted);font-size:13px}
.rde-qty{width:64px;padding:6px 8px;border:1px solid var(--rde-border);border-radius:6px;text-align:center}
.rde-consent{display:flex;gap:10px;align-items:flex-start;margin:14px 0}
.rde-consent input{margin-top:3px}
.rde-privacy{font-size:13px;color:var(--rde-muted);border:1px solid var(--rde-border);border-radius:8px;padding:12px;margin:12px 0;max-height:160px;overflow:auto}
.rde-alert{padding:11px 14px;border-radius:8px;font-size:14px;margin:0 0 14px}
.rde-alert--error{background:#fdecec;color:#a11}
.rde-alert--warn{background:#fff6e5;color:#8a5d00}
.rde-alert--ok{background:#eaf7ec;color:#1d6b29}
.rde-code{
	font-family:monospace;
	font-size:22px;
	font-weight:700;
	letter-spacing:1px;
	background:#f5f5f5;
	border:1px dashed var(--rde-border);
	border-radius:8px;
	padding:14px;
	text-align:center;
	margin:12px 0;
}
.rde-app__disclaimer{font-size:12px;color:var(--rde-muted);margin:14px 0 0;text-align:center}
.rde-status-grid{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;margin:14px 0}
.rde-status-grid dt{font-weight:600}
.rde-status-grid dd{margin:0}
.rde-badge{display:inline-block;padding:3px 10px;border-radius:999px;font-size:13px;font-weight:600;background:#eee}
.rde-badge--in_esame{background:#eef2ff;color:#3b46c4}
.rde-badge--accettata{background:#eaf7ec;color:#1d6b29}
.rde-badge--rifiutata{background:#fdecec;color:#a11}
.rde-badge--completata{background:#e9f0f4;color:#1f5468}
.rde-spinner{display:inline-block;width:18px;height:18px;border:2px solid rgba(0,0,0,.2);border-top-color:var(--rde-accent);border-radius:50%;animation:rde-spin .7s linear infinite;vertical-align:middle}
@keyframes rde-spin{to{transform:rotate(360deg)}}

/* Floating button + modal */
.rde-fab{
	position:fixed;
	bottom:22px;
	z-index:9998;
	border:none;
	cursor:pointer;
	padding:12px 18px;
	border-radius:999px;
	font-size:15px;
	font-weight:600;
	background:#1a1a1a;
	color:#fff;
	box-shadow:0 6px 20px rgba(0,0,0,.25);
}
.rde-fab--right{right:22px}
.rde-fab--left{left:22px}
.rde-modal{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center}
.rde-modal[hidden]{display:none}
.rde-modal__backdrop{position:absolute;inset:0;background:rgba(0,0,0,.5)}
.rde-modal__dialog{position:relative;background:#fff;border-radius:12px;padding:26px;max-width:680px;width:92%;max-height:90vh;overflow:auto;z-index:1}
.rde-modal__close{position:absolute;top:10px;right:14px;background:none;border:none;font-size:26px;line-height:1;cursor:pointer;color:#666}

/* Pulsante recesso nel footer (placement: footer | both) */
.rde-footer-cta {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 16px;
	flex-wrap: wrap;
	padding: 18px 16px;
	background: #f5f6f4;
	border-top: 1px solid #e6e6e6;
	text-align: center;
}
.rde-footer-cta__text { font-size: 14px; color: #555; }
.rde-footer-btn {
	display: inline-block;
	padding: 11px 24px;
	border: 0;
	border-radius: 30px;
	cursor: pointer;
	font-weight: 700;
	font-size: 14px;
	line-height: 1.2;
	background: #1a1a1a;
	color: #fff;
	transition: filter .15s ease;
}
.rde-footer-btn:hover { filter: brightness(1.08); }
