/* NBP Documenti e firme: usa le variabili --nb-* del tema se presenti. */
.nbpd, .nbpd-doc {
	--d-ink: var(--nb-ink, #15233b);
	--d-muted: var(--nb-muted, #4e5c74);
	--d-line: var(--nb-line, #c9d2dc);
	--d-soft: var(--nb-soft, #e8edf2);
	--d-tag: var(--nb-tag, #f4c53d);
	--d-go: var(--nb-go, #16643f);
	--d-warn: var(--nb-warn, #b3312a);
	color: var(--d-ink);
}
.nbpd { max-width: 46rem; }
.nbpd *, .nbpd *::before, .nbpd *::after { box-sizing: border-box; }
.nbpd [hidden] { display: none !important; }

.nbpd-switch { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 1.5rem; }
.nbpd-switch a {
	padding: .55rem 1rem;
	border: 2px solid var(--d-ink);
	border-radius: 2rem;
	color: var(--d-ink);
	font-weight: 700;
	text-decoration: none;
}
.nbpd-switch a[aria-current="page"] { background: var(--d-ink); color: #fff; }

.nbpd-title { margin: 0 0 .75rem; font-size: clamp(1.7rem, 4.5vw, 2.5rem); font-weight: 800; line-height: 1.1; }
.nbpd-intro { margin: 0 0 1.5rem; }
.nbpd-linkbtn { appearance: none; background: none; border: 0; padding: 0; font: inherit; color: var(--d-ink); text-decoration: underline; cursor: pointer; font-weight: 700; }

.nbpd-box { margin: 0 0 1.25rem; padding: 1.25rem; border: 2px solid var(--d-ink); border-radius: .5rem; background: #fff; min-width: 0; }
.nbpd-box legend { padding: 0 .4rem; font-weight: 800; font-size: 1.1rem; }
.nbpd-field { display: block; margin: 0 0 1rem; font-weight: 700; }
.nbpd-field small { font-weight: 400; color: var(--d-muted); }
.nbpd-field input, .nbpd-field select, .nbpd-field textarea {
	display: block;
	width: 100%;
	margin-top: .35rem;
	padding: .75rem .9rem;
	font: inherit;
	font-weight: 400;
	color: var(--d-ink);
	background: #fff;
	border: 2px solid var(--d-line);
	border-radius: .4rem;
}
.nbpd-field input:focus, .nbpd-field select:focus, .nbpd-field textarea:focus { border-color: var(--d-ink); outline: 3px solid var(--d-tag); outline-offset: 1px; }
.nbpd-radios { display: flex; flex-wrap: wrap; gap: 1.25rem; margin: 0 0 1rem; font-weight: 600; }
.nbpd-radios input { accent-color: var(--d-ink); width: 1.15rem; height: 1.15rem; vertical-align: -.15rem; }
.nbpd-price { margin: 0; }

.nbpd-read { margin: 0 0 1.25rem; border: 2px solid var(--d-line); border-radius: .5rem; background: #fff; }
.nbpd-read summary { padding: 1rem 1.25rem; font-weight: 800; cursor: pointer; }
.nbpd-scroll { max-height: 22rem; overflow: auto; padding: 0 1.25rem 1rem; border-top: 1px solid var(--d-line); }
.nbpd-scroll:focus-visible { outline: 3px solid var(--d-tag); }
.nbpd-read .nbpd-small { padding: 0 1.25rem 1rem; margin: 0; }

.nbpd-doc h3 { margin: 1.4rem 0 .4rem; font-size: 1.1rem; font-weight: 800; }
.nbpd-doc p, .nbpd-doc li { font-size: 1rem; line-height: 1.6; }
.nbpd-doc ul { padding-left: 1.2rem; }

.nbpd-check { display: flex; gap: .7rem; align-items: flex-start; margin: 0 0 .9rem; font-size: .98rem; cursor: pointer; }
.nbpd-check input { flex: none; width: 1.35rem; height: 1.35rem; margin: .15rem 0 0; accent-color: var(--d-ink); }
.nbpd-req { font-style: normal; font-size: .82rem; font-weight: 700; color: var(--d-warn); white-space: nowrap; }

.nbpd-pad { position: relative; height: 12rem; margin: .5rem 0 .5rem; border: 2px dashed var(--d-ink); border-radius: .4rem; background: #fff; touch-action: none; }
.nbpd-pad::after { content: ""; position: absolute; left: 1.25rem; right: 1.25rem; bottom: 2.5rem; border-bottom: 1px solid var(--d-line); pointer-events: none; }
.nbpd-pad canvas { display: block; width: 100%; height: 100%; cursor: crosshair; touch-action: none; }

.nbpd-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 3.4rem;
	padding: .9rem 1.6rem;
	border: 2px solid var(--d-ink);
	border-radius: .4rem;
	background: var(--d-ink);
	color: #fff !important;
	font: inherit;
	font-size: 1.1rem;
	font-weight: 800;
	text-decoration: none !important;
	cursor: pointer;
}
.nbpd-btn:disabled { opacity: .65; cursor: progress; }
.nbpd-btn--go { background: var(--d-go); border-color: var(--d-go); }
.nbpd-btn--ghost { background: #fff; color: var(--d-ink) !important; }
.nbpd-btn:focus-visible, .nbpd-switch a:focus-visible, .nbpd-linkbtn:focus-visible { outline: 3px solid var(--d-tag); outline-offset: 3px; }
.nbpd-form > .nbpd-btn { width: 100%; }
.nbpd-error { margin: 1rem 0 0; font-weight: 700; color: var(--d-warn); }
.nbpd-small { font-size: .92rem; color: var(--d-muted); }

.nbpd-result { outline: none; }
.nbpd-done { padding: 1.5rem; border-left: 6px solid var(--d-go); background: #fff; border-radius: 0 .5rem .5rem 0; }
.nbpd-done h3 { margin: 0 0 .5rem; font-size: 1.5rem; }
.nbpd-actions { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 1rem; }

.nbpd-print { display: none; }

@media print {
	.nb-top, .nb-foot, .nb-mobilebar, .nb-skip, .nb-page-title,
	.nbpd-switch, .nbpd-noprint, .nbpd-form, .nbpd-result, noscript { display: none !important; }
	.nbpd-print { display: block; font-size: 10.5pt; color: #000; }
	.nbpd-title { font-size: 16pt; margin-bottom: .5rem; }
	.nbpd-print p { margin: 0 0 .55rem; }
	.nbpd-print .nbpd-doc h3, .nbpd-print h3 { font-size: 11pt; margin: .9rem 0 .3rem; break-after: avoid; }
	.nbpd-print .nbpd-doc p, .nbpd-print .nbpd-doc li { font-size: 10pt; line-height: 1.45; }
	.nb-sec { padding: 0 !important; }
}
