/*
 * NODO Opportunità — frontend 1.10.0
 * Fasi 9-10: ricerca laterale e temi chiaro/scuro/automatico.
 */

.nodo-op-theme {
	--nodo-op-accent: var(--nodo-op-accent-light, #1f4f74);
	--nodo-op-accent-rgb: var(--nodo-op-accent-light-rgb, 31, 79, 116);
	--nodo-op-accent-contrast: var(--nodo-op-accent-light-contrast, #ffffff);
	--nodo-op-bg: #f6f7f8;
	--nodo-op-surface: #ffffff;
	--nodo-op-surface-alt: #f0f3f5;
	--nodo-op-text: #17212b;
	--nodo-op-muted: #607080;
	--nodo-op-border: #dbe1e6;
	--nodo-op-border-strong: #c9d1d8;
	--nodo-op-input-bg: #ffffff;
	--nodo-op-input-text: #17212b;
	--nodo-op-shadow: 0 12px 34px rgba(20, 32, 43, .08);
	--nodo-op-shadow-hover: 0 18px 42px rgba(20, 32, 43, .13);
	--nodo-op-danger: #a72b24;
	--nodo-op-danger-bg: #fff3f2;
	--nodo-op-warning: #8a5a00;
	--nodo-op-warning-bg: #fff8e6;
	--nodo-op-success: #247443;
	--nodo-op-success-bg: #edf8f1;
	--nodo-op-radius: 14px;
	color: var(--nodo-op-text);
	color-scheme: light;
	box-sizing: border-box;
	width: 100%;
	padding: clamp(16px, 3vw, 28px);
	border: 1px solid var(--nodo-op-border);
	border-radius: 16px;
	background: var(--nodo-op-bg);
}

.nodo-op-theme-dark {
	--nodo-op-accent: var(--nodo-op-accent-dark, #70b8e8);
	--nodo-op-accent-rgb: var(--nodo-op-accent-dark-rgb, 112, 184, 232);
	--nodo-op-accent-contrast: var(--nodo-op-accent-dark-contrast, #12181e);
	--nodo-op-bg: #11161b;
	--nodo-op-surface: #1a2128;
	--nodo-op-surface-alt: #222b34;
	--nodo-op-text: #eef3f6;
	--nodo-op-muted: #aebbc6;
	--nodo-op-border: #35414b;
	--nodo-op-border-strong: #46535e;
	--nodo-op-input-bg: #141b21;
	--nodo-op-input-text: #f4f7f9;
	--nodo-op-shadow: 0 14px 38px rgba(0, 0, 0, .26);
	--nodo-op-shadow-hover: 0 18px 48px rgba(0, 0, 0, .38);
	--nodo-op-danger: #ffaaa4;
	--nodo-op-danger-bg: #351e1d;
	--nodo-op-warning: #ffd27b;
	--nodo-op-warning-bg: #342a17;
	--nodo-op-success: #8bd7a4;
	--nodo-op-success-bg: #183124;
	color-scheme: dark;
}

@media (prefers-color-scheme: dark) {
	.nodo-op-theme-auto {
		--nodo-op-accent: var(--nodo-op-accent-dark, #70b8e8);
		--nodo-op-accent-rgb: var(--nodo-op-accent-dark-rgb, 112, 184, 232);
		--nodo-op-accent-contrast: var(--nodo-op-accent-dark-contrast, #12181e);
		--nodo-op-bg: #11161b;
		--nodo-op-surface: #1a2128;
		--nodo-op-surface-alt: #222b34;
		--nodo-op-text: #eef3f6;
		--nodo-op-muted: #aebbc6;
		--nodo-op-border: #35414b;
		--nodo-op-border-strong: #46535e;
		--nodo-op-input-bg: #141b21;
		--nodo-op-input-text: #f4f7f9;
		--nodo-op-shadow: 0 14px 38px rgba(0, 0, 0, .26);
		--nodo-op-shadow-hover: 0 18px 48px rgba(0, 0, 0, .38);
		--nodo-op-danger: #ffaaa4;
		--nodo-op-danger-bg: #351e1d;
		--nodo-op-warning: #ffd27b;
		--nodo-op-warning-bg: #342a17;
		--nodo-op-success: #8bd7a4;
		--nodo-op-success-bg: #183124;
		color-scheme: dark;
	}
}

.nodo-op-theme *,
.nodo-op-theme *::before,
.nodo-op-theme *::after {
	box-sizing: border-box;
}

.nodo-op-theme a {
	color: var(--nodo-op-accent);
}

.nodo-op-wrap,
.nodo-op-submit-shell,
.nodo-op-my,
.nodo-op-single-shell {
	width: 100%;
	font-size: 15px;
	line-height: 1.55;
}

/* Layout archivio e sidebar */
.nodo-op-layout {
	display: grid;
	grid-template-columns: minmax(250px, 300px) minmax(0, 1fr);
	gap: 30px;
	align-items: start;
}

.nodo-op-sidebar {
	min-width: 0;
}

.nodo-op-filter-details {
	position: sticky;
	top: 28px;
	border: 1px solid var(--nodo-op-border);
	border-radius: var(--nodo-op-radius);
	background: var(--nodo-op-surface);
	box-shadow: var(--nodo-op-shadow);
	overflow: hidden;
}

.nodo-op-filter-details > summary {
	display: none;
	align-items: center;
	gap: 9px;
	padding: 15px 17px;
	font-weight: 800;
	cursor: pointer;
	list-style: none;
	color: var(--nodo-op-text);
}

.nodo-op-filter-details > summary::-webkit-details-marker {
	display: none;
}

.nodo-op-filter-count {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 24px;
	height: 24px;
	margin-left: auto;
	padding: 0 7px;
	border-radius: 999px;
	background: var(--nodo-op-accent);
	color: var(--nodo-op-accent-contrast);
	font-size: 12px;
}

.nodo-op-filters {
	display: grid;
	gap: 15px;
	padding: 21px;
	margin: 0;
	background: var(--nodo-op-surface);
}

.nodo-op-filter-heading {
	padding-bottom: 15px;
	border-bottom: 1px solid var(--nodo-op-border);
}

.nodo-op-filter-heading strong,
.nodo-op-filter-heading span {
	display: block;
}

.nodo-op-filter-heading strong {
	font-size: 17px;
	line-height: 1.3;
}

.nodo-op-filter-heading span {
	margin-top: 3px;
	color: var(--nodo-op-muted);
	font-size: 13px;
}

.nodo-op-filters label,
.nodo-op-field label,
.nodo-op-report label {
	display: block;
	margin-bottom: 6px;
	color: var(--nodo-op-text);
	font-size: 13px;
	font-weight: 750;
}

.nodo-op-filters input,
.nodo-op-filters select,
.nodo-op-submit-form input,
.nodo-op-submit-form select,
.nodo-op-submit-form textarea,
.nodo-op-report input,
.nodo-op-report select,
.nodo-op-report textarea {
	width: 100%;
	min-height: 44px;
	padding: 10px 12px;
	border: 1px solid var(--nodo-op-border-strong);
	border-radius: 9px;
	background: var(--nodo-op-input-bg);
	color: var(--nodo-op-input-text);
	font: inherit;
	line-height: 1.35;
	transition: border-color .16s ease, box-shadow .16s ease, background .16s ease;
}

.nodo-op-filters input::placeholder,
.nodo-op-submit-form input::placeholder,
.nodo-op-submit-form textarea::placeholder,
.nodo-op-report input::placeholder,
.nodo-op-report textarea::placeholder {
	color: var(--nodo-op-muted);
	opacity: .78;
}

.nodo-op-filters input:focus,
.nodo-op-filters select:focus,
.nodo-op-submit-form input:focus,
.nodo-op-submit-form select:focus,
.nodo-op-submit-form textarea:focus,
.nodo-op-report input:focus,
.nodo-op-report select:focus,
.nodo-op-report textarea:focus,
.nodo-op-button:focus-visible,
.nodo-op-preview-close:focus-visible,
.nodo-op-filter-details > summary:focus-visible {
	outline: none;
	border-color: var(--nodo-op-accent);
	box-shadow: 0 0 0 3px rgba(var(--nodo-op-accent-rgb), .2);
}

.nodo-op-filter-actions {
	display: grid;
	grid-template-columns: 1fr;
	gap: 9px;
	padding-top: 3px;
}

.nodo-op-results {
	min-width: 0;
}

.nodo-op-topline {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 18px;
	margin: 0 0 21px;
	padding-bottom: 16px;
	border-bottom: 1px solid var(--nodo-op-border);
}

.nodo-op-topline p,
.nodo-op-topline h2 {
	margin: 0;
}

.nodo-op-results-label {
	display: block;
	margin-bottom: 2px;
	color: var(--nodo-op-muted);
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .09em;
	text-transform: uppercase;
}

/* Pulsanti */
.nodo-op-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 42px;
	padding: 9px 16px;
	border: 1px solid var(--nodo-op-border-strong);
	border-radius: 9px;
	background: var(--nodo-op-surface);
	color: var(--nodo-op-text) !important;
	font-weight: 750;
	line-height: 1.25;
	text-align: center;
	text-decoration: none !important;
	cursor: pointer;
	transition: transform .15s ease, border-color .15s ease, background .15s ease, box-shadow .15s ease;
}

.nodo-op-button:hover {
	border-color: var(--nodo-op-accent);
	background: rgba(var(--nodo-op-accent-rgb), .07);
	transform: translateY(-1px);
}

.nodo-op-button-primary {
	border-color: var(--nodo-op-accent);
	background: var(--nodo-op-accent);
	color: var(--nodo-op-accent-contrast) !important;
	box-shadow: 0 7px 18px rgba(var(--nodo-op-accent-rgb), .2);
}

.nodo-op-button-primary:hover {
	background: var(--nodo-op-accent);
	color: var(--nodo-op-accent-contrast) !important;
	box-shadow: 0 10px 24px rgba(var(--nodo-op-accent-rgb), .28);
	filter: brightness(1.06);
}

.nodo-op-button-quiet {
	background: transparent;
}

/* Griglia e card */
.nodo-op-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 22px;
}

.nodo-op-card {
	display: flex;
	min-width: 0;
	min-height: 100%;
	flex-direction: column;
	overflow: hidden;
	border: 1px solid var(--nodo-op-border);
	border-radius: var(--nodo-op-radius);
	background: var(--nodo-op-surface);
	box-shadow: var(--nodo-op-shadow);
	transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.nodo-op-card:hover {
	border-color: rgba(var(--nodo-op-accent-rgb), .42);
	box-shadow: var(--nodo-op-shadow-hover);
	transform: translateY(-3px);
}

.nodo-op-card-image {
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	background: linear-gradient(135deg, rgba(var(--nodo-op-accent-rgb), .16), var(--nodo-op-surface-alt));
	text-decoration: none;
}

.nodo-op-card-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .35s ease;
}

.nodo-op-card:hover .nodo-op-card-image img {
	transform: scale(1.025);
}

.nodo-op-card-placeholder {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 74px;
	height: 74px;
	border: 1px solid rgba(var(--nodo-op-accent-rgb), .2);
	border-radius: 50%;
	background: rgba(var(--nodo-op-accent-rgb), .1);
}

.nodo-op-card-placeholder .dashicons {
	width: auto;
	height: auto;
	font-size: 38px;
	color: var(--nodo-op-accent);
}

.nodo-op-card-body {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	padding: 19px;
}

.nodo-op-badges {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-bottom: 12px;
}

.nodo-op-badge,
.nodo-op-badges > span {
	display: inline-flex;
	align-items: center;
	min-height: 25px;
	padding: 4px 8px;
	border: 1px solid transparent;
	border-radius: 999px;
	background: rgba(var(--nodo-op-accent-rgb), .1);
	color: var(--nodo-op-text);
	font-size: 11px;
	font-weight: 800;
	line-height: 1.2;
}

.nodo-op-badge-category {
	border-color: rgba(var(--nodo-op-accent-rgb), .18);
	color: var(--nodo-op-accent);
}

.nodo-op-badge-fee-free,
.nodo-op-status-always_open {
	background: var(--nodo-op-success-bg) !important;
	color: var(--nodo-op-success) !important;
}

.nodo-op-badge-fee-paid,
.nodo-op-status-expiring,
.nodo-op-status-today {
	background: var(--nodo-op-warning-bg) !important;
	color: var(--nodo-op-warning) !important;
}

.nodo-op-status-expired {
	background: var(--nodo-op-danger-bg) !important;
	color: var(--nodo-op-danger) !important;
}

.nodo-op-badge-web,
.nodo-op-badge-fee-unknown {
	background: var(--nodo-op-surface-alt) !important;
	color: var(--nodo-op-muted) !important;
}

.nodo-op-card h3 {
	display: -webkit-box;
	overflow: hidden;
	min-height: 2.55em;
	margin: 0 0 8px;
	font-size: clamp(18px, 2vw, 21px);
	line-height: 1.27;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
}

.nodo-op-card h3 a,
.nodo-op-card-link {
	color: var(--nodo-op-text) !important;
	text-decoration: none !important;
}

.nodo-op-card h3 a:hover,
.nodo-op-card-link:hover {
	color: var(--nodo-op-accent) !important;
}

.nodo-op-organizer {
	display: flex;
	align-items: center;
	gap: 6px;
	margin: 0 0 11px;
	color: var(--nodo-op-muted);
	font-size: 13px;
	font-weight: 700;
}

.nodo-op-organizer .dashicons,
.nodo-op-card-meta .dashicons {
	width: 17px;
	height: 17px;
	font-size: 17px;
	color: var(--nodo-op-accent);
}

.nodo-op-excerpt {
	display: -webkit-box;
	overflow: hidden;
	margin: 0 0 16px;
	color: var(--nodo-op-muted);
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
}

.nodo-op-card-meta {
	display: grid;
	gap: 7px;
	margin: auto 0 16px;
	padding-top: 14px;
	border-top: 1px solid var(--nodo-op-border);
	color: var(--nodo-op-muted);
	font-size: 13px;
}

.nodo-op-card-meta > span {
	display: flex;
	align-items: flex-start;
	gap: 7px;
}

.nodo-op-card-meta strong {
	color: var(--nodo-op-text);
}

.nodo-op-card-link {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	align-self: flex-start;
	font-weight: 800;
}

/* Stati vuoti, avvisi e paginazione */
.nodo-op-empty,
.nodo-op-login,
.nodo-op-notice,
.nodo-op-access-notice {
	padding: 17px;
	border: 1px solid var(--nodo-op-border);
	border-radius: 10px;
	background: var(--nodo-op-surface-alt);
	color: var(--nodo-op-text);
}

.nodo-op-empty {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 250px;
	flex-direction: column;
	gap: 8px;
	text-align: center;
}

.nodo-op-empty > .dashicons {
	width: auto;
	height: auto;
	font-size: 38px;
	color: var(--nodo-op-accent);
}

.nodo-op-empty strong {
	font-size: 20px;
}

.nodo-op-empty p {
	margin: 0 0 8px;
	color: var(--nodo-op-muted);
}

.nodo-op-success {
	border-left: 4px solid var(--nodo-op-success);
	background: var(--nodo-op-success-bg);
}

.nodo-op-error {
	border-left: 4px solid var(--nodo-op-danger);
	background: var(--nodo-op-danger-bg);
}

.nodo-op-pagination ul {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 8px;
	list-style: none;
	margin: 30px 0 0;
	padding: 0;
}

.nodo-op-pagination a,
.nodo-op-pagination span.page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	height: 40px;
	padding: 0 10px;
	border: 1px solid var(--nodo-op-border);
	border-radius: 8px;
	background: var(--nodo-op-surface);
	color: var(--nodo-op-text) !important;
	text-decoration: none !important;
}

.nodo-op-pagination a:hover {
	border-color: var(--nodo-op-accent);
}

.nodo-op-pagination .current {
	border-color: var(--nodo-op-accent) !important;
	background: var(--nodo-op-accent) !important;
	color: var(--nodo-op-accent-contrast) !important;
}

/* Form pubblico */
.nodo-op-submit-shell {
	max-width: 1000px;
}

.nodo-op-submit-form {
	max-width: 1000px;
	padding: clamp(20px, 4vw, 32px);
	border: 1px solid var(--nodo-op-border);
	border-radius: var(--nodo-op-radius);
	background: var(--nodo-op-surface);
	box-shadow: var(--nodo-op-shadow);
}

.nodo-op-submit-form textarea,
.nodo-op-report textarea {
	min-height: 120px;
	resize: vertical;
}

.nodo-op-form-intro {
	margin-bottom: 24px;
	padding-bottom: 20px;
	border-bottom: 1px solid var(--nodo-op-border);
}

.nodo-op-form-intro h2 {
	margin: 0 0 7px;
	color: var(--nodo-op-text);
}

.nodo-op-form-intro p {
	margin: 0;
	color: var(--nodo-op-muted);
}

.nodo-op-form-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 19px;
}

.nodo-op-field-full {
	grid-column: 1 / -1;
}

.nodo-op-field small {
	display: block;
	margin-top: 6px;
	color: var(--nodo-op-muted);
}

.nodo-op-check {
	display: flex !important;
	align-items: flex-start;
	gap: 10px;
	margin: 22px 0;
	color: var(--nodo-op-text);
}

.nodo-op-check input {
	flex: 0 0 auto;
	width: auto;
	min-height: auto;
	margin-top: 4px;
}

.nodo-op-no-deadline {
	margin: 10px 0 0;
	font-weight: 650;
}

.nodo-op-deadline-field input[type="date"][disabled] {
	opacity: .55;
	cursor: not-allowed;
}

.nodo-op-form-summary {
	margin: 0 0 22px;
	padding: 15px 17px;
	border: 1px solid var(--nodo-op-danger);
	border-left-width: 4px;
	border-radius: 9px;
	background: var(--nodo-op-danger-bg);
	color: var(--nodo-op-text);
}

.nodo-op-form-summary strong,
.nodo-op-form-summary p {
	display: block;
}

.nodo-op-form-summary p {
	margin: 5px 0 0;
}

.nodo-op-field-invalid > input,
.nodo-op-field-invalid > select,
.nodo-op-field-invalid > textarea,
.nodo-op-responsibility.nodo-op-field-invalid {
	border-color: var(--nodo-op-danger);
	box-shadow: 0 0 0 2px rgba(179, 38, 30, .10);
}

.nodo-op-field-error {
	display: block;
	margin-top: 7px;
	color: var(--nodo-op-danger) !important;
	font-size: 13px;
	font-weight: 800;
	line-height: 1.4;
}

.nodo-op-responsibility-error {
	margin: -14px 0 20px;
}

.nodo-op-form-actions {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 22px;
}

.nodo-op-preview-button {
	border-color: rgba(var(--nodo-op-accent-rgb), .45);
	background: rgba(var(--nodo-op-accent-rgb), .07);
	color: var(--nodo-op-accent) !important;
}

/* Anteprima */
.nodo-op-preview {
	position: relative;
	margin-top: 24px;
	padding: 20px;
	border: 1px solid rgba(var(--nodo-op-accent-rgb), .3);
	border-radius: var(--nodo-op-radius);
	background: rgba(var(--nodo-op-accent-rgb), .045);
}

.nodo-op-preview[hidden] {
	display: none !important;
}

.nodo-op-preview::after {
	content: '';
	position: absolute;
	inset: 0;
	border-radius: inherit;
	background: transparent;
	pointer-events: none;
	transition: background .18s ease;
}

.nodo-op-preview-stale::after {
	background: rgba(var(--nodo-op-accent-rgb), .08);
}

.nodo-op-preview-heading {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 16px;
	margin-bottom: 16px;
}

.nodo-op-preview-heading h3 {
	margin: 2px 0 0;
	font-size: 20px;
}

.nodo-op-preview-eyebrow {
	display: block;
	color: var(--nodo-op-accent);
	font-size: 12px;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.nodo-op-preview-close {
	position: relative;
	z-index: 2;
	width: 36px;
	height: 36px;
	padding: 0;
	border: 1px solid var(--nodo-op-border-strong);
	border-radius: 999px;
	background: var(--nodo-op-surface);
	color: var(--nodo-op-text);
	font-size: 24px;
	line-height: 1;
	cursor: pointer;
}

.nodo-op-preview-card {
	display: grid;
	grid-template-columns: minmax(180px, 32%) 1fr;
	overflow: hidden;
	border: 1px solid var(--nodo-op-border);
	border-radius: 11px;
	background: var(--nodo-op-surface);
	box-shadow: var(--nodo-op-shadow);
}

.nodo-op-preview-image-wrap {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 230px;
	overflow: hidden;
	background: var(--nodo-op-surface-alt);
}

.nodo-op-preview-image {
	width: 100%;
	height: 100%;
	min-height: 230px;
	object-fit: cover;
}

.nodo-op-preview-placeholder {
	width: auto;
	height: auto;
	font-size: 48px;
	color: var(--nodo-op-accent);
}

.nodo-op-preview-content {
	padding: 20px;
}

.nodo-op-preview-badges {
	display: flex;
	flex-wrap: wrap;
	gap: 7px;
	margin-bottom: 12px;
}

.nodo-op-preview-badges span {
	padding: 4px 8px;
	border-radius: 999px;
	background: rgba(var(--nodo-op-accent-rgb), .11);
	font-size: 12px;
	font-weight: 700;
}

.nodo-op-preview-content h3 {
	margin: 0 0 8px;
	font-size: 22px;
	line-height: 1.25;
}

.nodo-op-preview-content p {
	margin: 0 0 13px;
}

.nodo-op-preview-organizer {
	color: var(--nodo-op-muted);
	font-weight: 700;
}

.nodo-op-preview-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 14px;
	color: var(--nodo-op-muted);
	font-size: 14px;
	font-weight: 600;
}

.nodo-op-preview-meta span:empty {
	display: none;
}

.nodo-op-preview-note,
.nodo-op-preview-noscript {
	margin: 13px 0 0;
	color: var(--nodo-op-muted);
	font-size: 13px;
}

/* Area personale */
.nodo-op-my-list {
	overflow: hidden;
	border: 1px solid var(--nodo-op-border);
	border-radius: 11px;
	background: var(--nodo-op-surface);
	box-shadow: var(--nodo-op-shadow);
}

.nodo-op-my-row {
	display: flex;
	justify-content: space-between;
	gap: 20px;
	padding: 17px;
	border-bottom: 1px solid var(--nodo-op-border);
}

.nodo-op-my-row:last-child {
	border-bottom: 0;
}

.nodo-op-my-row span {
	display: block;
	margin-top: 4px;
	color: var(--nodo-op-muted);
	font-size: 14px;
}

.nodo-op-my-actions {
	display: flex;
	align-items: center;
	gap: 12px;
}

.nodo-op-my-actions form {
	margin: 0;
}

.nodo-op-my-actions button {
	padding: 0;
	border: 0;
	background: none;
	color: var(--nodo-op-danger);
	cursor: pointer;
}

/* Pagina singola */

.nodo-op-single-shell :where(h1, h2, h3, h4, h5, h6, p, li, blockquote, table, th, td) {
	color: var(--nodo-op-text);
}

.nodo-op-single-shell :where(hr) {
	border-color: var(--nodo-op-border);
}

.nodo-op-single-shell img {
	max-width: 100%;
	height: auto;
}


.nodo-op-detail-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 12px;
	margin-bottom: 18px;
}

.nodo-op-detail-grid > div {
	padding: 15px;
	border: 1px solid var(--nodo-op-border);
	border-radius: 10px;
	background: var(--nodo-op-surface-alt);
}

.nodo-op-detail-grid span,
.nodo-op-detail-grid strong {
	display: block;
}

.nodo-op-detail-grid span {
	margin-bottom: 4px;
	color: var(--nodo-op-muted);
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .06em;
	text-transform: uppercase;
}

.nodo-op-detail-grid strong {
	color: var(--nodo-op-text);
}

.nodo-op-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-bottom: 22px;
}

.nodo-op-disclaimer {
	margin: 28px 0 18px;
	padding: 15px;
	border: 1px solid rgba(var(--nodo-op-accent-rgb), .25);
	border-left: 4px solid var(--nodo-op-accent);
	border-radius: 8px;
	background: rgba(var(--nodo-op-accent-rgb), .07);
	color: var(--nodo-op-text);
}

.nodo-op-link-warning {
	margin: 16px 0;
	padding: 12px 14px;
	border: 1px solid var(--nodo-op-warning);
	border-radius: 8px;
	background: var(--nodo-op-warning-bg);
	color: var(--nodo-op-warning);
	font-size: 14px;
	line-height: 1.5;
}

.nodo-op-report {
	margin: 18px 0;
	padding: 15px;
	border: 1px solid var(--nodo-op-border);
	border-radius: 10px;
	background: var(--nodo-op-surface);
}

.nodo-op-report summary {
	color: var(--nodo-op-text);
	font-weight: 750;
	cursor: pointer;
}

.nodo-op-report form {
	display: grid;
	gap: 14px;
	margin-top: 16px;
}

/* Accesso */
.nodo-op-access-notice {
	margin: 0 0 20px;
	border-left-width: 4px;
}

.nodo-op-access-notice strong {
	display: block;
	margin-bottom: 5px;
}

.nodo-op-access-notice p {
	margin: 5px 0 0;
}

.nodo-op-access-notice.nodo-op-error {
	border-left-color: var(--nodo-op-danger);
}

.nodo-op-access-notice.nodo-op-warning {
	border-left-color: var(--nodo-op-warning);
	background: var(--nodo-op-warning-bg);
}

.nodo-op-access-notice.nodo-op-info {
	border-left-color: var(--nodo-op-accent);
}

.nodo-op-hp {
	position: absolute !important;
	left: -9999px !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

@media (max-width: 1160px) {
	.nodo-op-layout {
		grid-template-columns: minmax(230px, 270px) minmax(0, 1fr);
		gap: 22px;
	}

	.nodo-op-grid {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 860px) {
	.nodo-op-layout {
		grid-template-columns: 1fr;
	}

	.nodo-op-filter-details {
		position: static;
	}

	.nodo-op-filter-details > summary {
		display: flex;
	}

	.nodo-op-filter-details:not([open]) .nodo-op-filters {
		display: none;
	}

	.nodo-op-filter-details[open] > summary {
		border-bottom: 1px solid var(--nodo-op-border);
	}

	.nodo-op-topline {
		align-items: flex-start;
	}
}

@media (max-width: 700px) {
	.nodo-op-grid,
	.nodo-op-form-grid,
	.nodo-op-detail-grid,
	.nodo-op-preview-card {
		grid-template-columns: 1fr;
	}

	.nodo-op-field-full {
		grid-column: auto;
	}

	.nodo-op-topline,
	.nodo-op-my-row {
		align-items: stretch;
		flex-direction: column;
	}

	.nodo-op-topline .nodo-op-button,
	.nodo-op-form-actions .nodo-op-button {
		width: 100%;
	}

	.nodo-op-my-actions {
		flex-wrap: wrap;
	}

	.nodo-op-preview-image-wrap,
	.nodo-op-preview-image {
		min-height: 190px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.nodo-op-theme *,
	.nodo-op-theme *::before,
	.nodo-op-theme *::after {
		scroll-behavior: auto !important;
		transition-duration: .01ms !important;
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
	}
}

/* Fasi 11-12: template indipendenti e area personale */
.nodo-op-template-page{width:100%;max-width:1240px;margin:0 auto;padding:36px 20px 64px;box-sizing:border-box}
.nodo-op-single-template{max-width:980px;margin:0 auto}
.nodo-op-single-header{margin-bottom:22px}.nodo-op-single-header h1{margin:12px 0 0;font-size:clamp(2rem,5vw,3.4rem);line-height:1.08;color:var(--nodo-op-text)}
.nodo-op-back-link{display:inline-flex;align-items:center;text-decoration:none;color:var(--nodo-op-accent);font-weight:700}
.nodo-op-single-cover{margin:0 0 28px;border-radius:var(--nodo-op-radius-lg);overflow:hidden;background:var(--nodo-op-surface-alt)}
.nodo-op-single-cover img{display:block;width:100%;height:auto;max-height:560px;object-fit:cover}
.nodo-op-single-article{background:var(--nodo-op-surface);border:1px solid var(--nodo-op-border);border-radius:var(--nodo-op-radius-lg);padding:clamp(20px,4vw,48px);box-shadow:var(--nodo-op-shadow)}
.nodo-op-my-filters{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 20px}.nodo-op-my-filters a{padding:8px 13px;border:1px solid var(--nodo-op-border);border-radius:999px;text-decoration:none;color:var(--nodo-op-text);background:var(--nodo-op-surface)}
.nodo-op-my-filters a.is-active{background:var(--nodo-op-accent);border-color:var(--nodo-op-accent);color:var(--nodo-op-accent-text)}
.nodo-op-my-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.nodo-op-my-actions form{margin:0}.nodo-op-my-actions button{border:0;background:none;padding:0;color:var(--nodo-op-danger,#b42318);font:inherit;cursor:pointer}
@media(max-width:700px){.nodo-op-template-page{padding:20px 12px 44px}.nodo-op-single-article{padding:18px}.nodo-op-my-row{align-items:flex-start;flex-direction:column}.nodo-op-my-actions{width:100%}}
