/**
 * ITS Corsi Manager - Frontend CSS
 *
 * Scoped styles for:
 * - [its_corsi_catalogo] catalog and filters
 * - Single course template (/corsi/[slug]/)
 * - Contrasto leggibile per testo, controlli e stati interattivi
 * - Responsive breakpoints: Desktop, Tablet (768px), Mobile (320px)
 */

:root {
	--icm-primary: #F8485E; /* Colore ufficiale del marchio ITS */
	--icm-primary-secondary: #D8223B; /* Testo su bianco e stati con maggiore contrasto */
	--icm-primary-hover: var(--icm-primary-secondary);
	--icm-primary-on: #321519; /* Testo leggibile su #F8485E */
	--icm-action: #D8223B; /* Bianco leggibile sui pulsanti */
	--icm-action-hover: #A91931;
	--icm-accent-raw: var(--icm-primary);
	--icm-accent-soft: rgba(248, 72, 94, 0.12);
	--icm-accent-yellow: #B45309; /* High-contrast amber */
	--icm-text-heading: #1D1D1B; /* 17.5:1 on white */
	--icm-text-body: #2D3748; /* 10.5:1 on white */
	--icm-text-muted: #4A5568; /* 7.0:1 on white */
	--icm-bg-card: #FFFFFF;
	--icm-bg-subtle: #F8FAFC;
	--icm-border: #E2E8F0;
	--icm-border-strong: #CBD5E1;
	--icm-radius-sm: 6px;
	--icm-radius-md: 10px;
	--icm-radius-lg: 14px;
	--icm-shadow-card: 0 4px 12px rgba(0, 0, 0, 0.05);
	--icm-shadow-hover: 0 10px 24px rgba(248, 72, 94, 0.12);
	--icm-font-heading: 'itc-avant-garde-gothic-pro', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
	--icm-font-body: 'agenda-one', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}

/* ==========================================================================
   Global Reset & Accessibility Focus within ICM Containers
   ========================================================================== */

.icm-catalog-wrapper,
.icm-single-course-wrapper {
	box-sizing: border-box;
	font-family: var(--icm-font-body);
	font-weight: 400;
	color: var(--icm-text-body);
	line-height: 1.6;
	margin: 20px 0 60px;
}

.icm-catalog-wrapper *,
.icm-single-course-wrapper * {
	box-sizing: border-box;
}

.icm-catalog-wrapper a:focus-visible,
.icm-catalog-wrapper button:focus-visible,
.icm-catalog-wrapper input:focus-visible,
.icm-catalog-wrapper select:focus-visible,
.icm-single-course-wrapper a:focus-visible,
.icm-single-course-wrapper button:focus-visible {
	outline: 3px solid var(--icm-primary);
	outline-offset: 2px;
}

/* ==========================================================================
   Catalog: Filters & Status Selector
   ========================================================================== */

.icm-filters-form {
	background-color: var(--icm-bg-card);
	border: 1px solid var(--icm-border);
	border-radius: var(--icm-radius-lg);
	padding: 24px;
	margin-bottom: 30px;
	box-shadow: var(--icm-shadow-card);
}

.icm-status-tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-bottom: 24px;
	padding-bottom: 20px;
	border-bottom: 1px solid var(--icm-border);
}

.icm-biennio-filter-note {
	margin: -8px 0 20px;
	font-size: 15px;
	line-height: 1.5;
	color: var(--icm-text-body);
}

.icm-status-radio {
	cursor: pointer;
	position: relative;
	display: inline-flex;
	align-items: center;
	margin: 0;
	text-decoration: none;
}

.icm-status-radio input[type="radio"] {
	position: absolute;
	opacity: 0;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	border: 0;
}

.icm-status-radio span {
	display: inline-flex;
	align-items: center;
	padding: 10px 18px;
	border-radius: 9999px;
	font-family: var(--icm-font-heading);
	font-size: 14px;
	font-weight: 600;
	color: var(--icm-text-body);
	background-color: var(--icm-bg-subtle);
	border: 1px solid var(--icm-border);
	transition: all 0.2s ease;
	min-height: 44px;
}

.icm-status-radio:hover span {
	background-color: #EDF2F7;
	border-color: var(--icm-border-strong);
}

/* UNICA fonte dello stile selezionato: :checked */
.icm-status-radio input[type="radio"]:checked + span {
	background-color: var(--icm-action);
	color: #FFFFFF;
	border-color: var(--icm-action);
	box-shadow: 0 2px 8px rgba(248, 72, 94, 0.25);
}

.icm-status-radio.is-active span {
	background-color: var(--icm-action);
	color: #FFFFFF;
	border-color: var(--icm-action);
	box-shadow: 0 2px 8px rgba(248, 72, 94, 0.25);
}

.icm-status-radio:focus-visible {
	outline: 3px solid var(--icm-primary);
	outline-offset: 3px;
}

.icm-status-radio input[type="radio"]:focus-visible + span {
	outline: 3px solid var(--icm-primary);
	outline-offset: 3px;
	box-shadow: 0 0 0 4px rgba(248, 72, 94, 0.25);
}

.icm-status-radio input[type="radio"]:checked:focus-visible + span {
	outline: 3px solid #1D1D1B;
	outline-offset: 3px;
	box-shadow: 0 0 0 4px rgba(29, 29, 27, 0.25);
}

.icm-filters-row {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr)) auto;
	gap: 16px;
	align-items: flex-end;
}

.icm-filter-field {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.icm-filter-field label {
	font-family: var(--icm-font-heading);
	font-size: 13px;
	font-weight: 600;
	color: var(--icm-text-heading);
	letter-spacing: 0.02em;
}

.icm-select {
	height: 48px;
	padding: 8px 14px;
	font-size: 15px;
	color: var(--icm-text-body);
	background-color: #FFFFFF;
	border: 1px solid var(--icm-border-strong);
	border-radius: var(--icm-radius-sm);
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
	width: 100%;
}

.icm-select:focus {
	border-color: var(--icm-primary);
	outline: none;
	box-shadow: 0 0 0 3px rgba(248, 72, 94, 0.15);
}

.icm-filter-actions {
	display: flex;
	gap: 10px;
	align-items: center;
}

.icm-btn-filter {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 48px;
	padding: 0 24px;
	background-color: var(--icm-action);
	color: #FFFFFF;
	font-family: var(--icm-font-heading);
	font-size: 14px;
	font-weight: 600;
	border: none;
	border-radius: var(--icm-radius-sm);
	cursor: pointer;
	transition: background-color 0.2s ease, transform 0.1s ease;
	white-space: nowrap;
}

.icm-btn-filter:hover {
	background-color: var(--icm-action-hover);
	color: #FFFFFF;
}

.icm-btn-reset {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 48px;
	padding: 0 16px;
	font-family: var(--icm-font-heading);
	font-size: 14px;
	font-weight: 500;
	color: var(--icm-text-muted);
	background: transparent;
	border: 1px solid var(--icm-border);
	border-radius: var(--icm-radius-sm);
	text-decoration: none;
	transition: all 0.2s ease;
}

.icm-btn-reset:hover {
	color: var(--icm-text-heading);
	background-color: var(--icm-bg-subtle);
	border-color: var(--icm-border-strong);
}

/* Results Summary */
.icm-results-summary {
	margin-bottom: 20px;
	padding: 0 4px;
}

.icm-results-count {
	font-family: var(--icm-font-heading);
	font-size: 15px;
	font-weight: 600;
	color: var(--icm-text-muted);
}

/* ==========================================================================
   Catalog: Card Grid
   ========================================================================== */

.icm-cards-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 28px;
	margin-bottom: 40px;
}

.icm-catalog-section { margin-bottom: 48px; }
.icm-catalog-section-header { margin: 0 0 20px; }
.icm-catalog-section-header h2 { font-size: clamp(22px, 2.4vw, 30px); line-height: 1.25; margin: 0 0 6px; color: #1D1D1B; }
.icm-catalog-section-header p { font-size: 16px; line-height: 1.5; margin: 0; color: #475569; }
.icm-catalog-section-open .icm-cards-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.icm-catalog-section-open .icm-card { border: 2px solid var(--icm-primary); box-shadow: 0 10px 28px rgba(30, 41, 59, .12); }
.icm-catalog-section-open .icm-card-title { font-size: clamp(21px, 2vw, 26px); }
.icm-catalog-section-open .icm-card-media { aspect-ratio: 2 / 1; }
.icm-catalog-section-ongoing .icm-card, .icm-catalog-section-planned .icm-card { box-shadow: 0 2px 9px rgba(30, 41, 59, .06); }
.icm-biennio-group { background: #F1F5F9; border: 1px solid #D9E2EC; border-radius: 14px; padding: 24px; margin-bottom: 24px; }
.icm-biennio-group:nth-of-type(even) { background: #F8F5F2; }
.icm-biennio-group h3 { margin: 0 0 20px; font-size: 22px; color: #1E293B; }
.icm-biennio-group .icm-cards-grid { margin-bottom: 0; }
.icm-catalog-section-archive .icm-card-media { aspect-ratio: 2.2 / 1; }
.icm-catalog-section-archive .icm-card { box-shadow: none; }

.icm-card {
	display: flex;
	flex-direction: column;
	background: var(--icm-bg-card);
	border: 1px solid var(--icm-border);
	border-radius: var(--icm-radius-md);
	overflow: hidden;
	box-shadow: var(--icm-shadow-card);
	transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
	position: relative;
}

.icm-card:hover {
	transform: translateY(-4px);
	box-shadow: var(--icm-shadow-hover);
	border-color: rgba(248, 72, 94, 0.3);
}

.icm-card-media {
	position: relative;
	width: 100%;
	aspect-ratio: 16 / 9;
	background-color: #F1F5F9;
	overflow: hidden;
}

.icm-card-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.3s ease;
}

.icm-card:hover .icm-card-img {
	transform: scale(1.03);
}

.icm-card-fallback-media {
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	background: linear-gradient(135deg, #1D1D1B 0%, #374151 100%);
	color: #FFFFFF;
}

.icm-fallback-logo {
	font-family: var(--icm-font-heading);
	font-weight: 700;
	letter-spacing: 0.1em;
	font-size: 16px;
	opacity: 0.8;
}

.icm-media-badges {
	position: absolute;
	top: 12px;
	left: 12px;
	right: 12px;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	pointer-events: none;
	z-index: 2;
}

.icm-badge {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	font-family: var(--icm-font-heading);
	font-size: 12px;
	font-weight: 700;
	padding: 5px 10px;
	border-radius: 4px;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);
}

.icm-badge-svg {
	width: 12px;
	height: 12px;
	stroke: currentColor;
	flex-shrink: 0;
}

.icm-badge-demo {
	background-color: #FEF08A;
	color: #854D0E;
	border: 1px solid #CA8A04;
}

.icm-badge-open {
	background-color: #DCFCE7;
	color: #166534;
	border: 1px solid #86EFAC;
}

.icm-card-body {
	display: flex;
	flex-direction: column;
	flex-grow: 1;
	padding: 22px;
}

.icm-card-meta-top {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 12px;
}

.icm-pill {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	font-family: var(--icm-font-heading);
	font-size: 12px;
	font-weight: 600;
	padding: 3px 9px;
	border-radius: 9999px;
	white-space: nowrap;
}

.icm-pill-svg {
	width: 13px;
	height: 13px;
	stroke: currentColor;
	flex-shrink: 0;
}

.icm-pill-biennio {
	background-color: var(--icm-bg-subtle);
	color: var(--icm-text-body);
	border: 1px solid var(--icm-border);
}

.icm-pill-sede {
	background-color: var(--icm-accent-soft);
	color: var(--icm-primary-secondary);
	border: 1px solid rgba(248, 72, 94, 0.2);
}

.icm-pill-stato {
	background-color: #F1F5F9;
	color: var(--icm-text-muted);
}

.icm-pill-open {
	background-color: #DCFCE7;
	color: #166534;
	border: 1px solid #86EFAC;
	font-weight: 700;
}

.icm-card-title {
	font-family: var(--icm-font-heading);
	font-size: 18px;
	font-weight: 700;
	line-height: 1.35;
	margin: 0 0 8px 0;
}

.icm-card-title a {
	color: var(--icm-text-heading);
	text-decoration: none;
	transition: color 0.2s ease;
}

.icm-card-title a:hover {
	color: var(--icm-primary-secondary);
}

.icm-card-settore {
	font-family: var(--icm-font-heading);
	font-size: 13px;
	font-weight: 600;
	color: var(--icm-text-muted);
	margin-bottom: 12px;
}

.icm-card-abstract {
	font-size: 14px;
	line-height: 1.55;
	color: var(--icm-text-body);
	margin-bottom: 20px;
	flex-grow: 1;
}

.icm-card-abstract p {
	margin: 0;
}

.icm-card-footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding-top: 14px;
	border-top: 1px solid var(--icm-border);
	gap: 12px;
}

.icm-card-hours {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-family: var(--icm-font-heading);
	font-size: 13px;
	color: var(--icm-text-muted);
}

.icm-card-hours-svg {
	width: 15px;
	height: 15px;
	stroke: var(--icm-primary);
	flex-shrink: 0;
}

.icm-card-btn {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-family: var(--icm-font-heading);
	font-size: 14px;
	font-weight: 600;
	color: var(--icm-primary-secondary);
	text-decoration: none;
	padding: 8px 14px;
	border-radius: var(--icm-radius-sm);
	background-color: var(--icm-accent-soft);
	transition: all 0.2s ease;
	min-height: 40px;
}

.icm-card-btn:hover {
	background-color: var(--icm-action);
	color: #FFFFFF;
}

/* ==========================================================================
   Catalog: Pagination
   ========================================================================== */

.icm-pagination-nav {
	margin: 40px 0 20px;
	display: flex;
	justify-content: center;
}

.icm-pagination ul.page-numbers {
	display: flex;
	list-style: none;
	margin: 0;
	padding: 0;
	gap: 8px;
	flex-wrap: wrap;
	justify-content: center;
}

.icm-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	height: 44px;
	padding: 0 14px;
	font-family: var(--icm-font-heading);
	font-size: 15px;
	font-weight: 600;
	border-radius: var(--icm-radius-sm);
	color: var(--icm-text-body);
	background-color: var(--icm-bg-card);
	border: 1px solid var(--icm-border-strong);
	text-decoration: none;
	transition: all 0.2s ease;
}

.icm-pagination a.page-numbers:hover {
	background-color: var(--icm-bg-subtle);
	border-color: var(--icm-primary);
	color: var(--icm-primary-secondary);
}

.icm-pagination span.page-numbers.current {
	background-color: var(--icm-action);
	border-color: var(--icm-action);
	color: #FFFFFF;
	font-weight: 700;
}

/* No results block */
.icm-no-results {
	background: var(--icm-bg-card);
	border: 1px dashed var(--icm-border-strong);
	border-radius: var(--icm-radius-lg);
	padding: 48px 24px;
	text-align: center;
	margin: 20px 0 40px;
}

.icm-no-results-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 16px;
}

.icm-no-results-svg {
	width: 48px;
	height: 48px;
	stroke: var(--icm-border-strong);
	display: block;
}

.icm-no-results-title {
	font-family: var(--icm-font-heading);
	font-size: 20px;
	color: var(--icm-text-heading);
	margin: 0 0 8px 0;
}

.icm-no-results-desc {
	font-size: 15px;
	color: var(--icm-text-muted);
	max-width: 500px;
	margin: 0 auto 20px;
}

.icm-btn-reset-large {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 48px;
	padding: 0 28px;
	background-color: var(--icm-action);
	color: #FFFFFF;
	font-family: var(--icm-font-heading);
	font-size: 15px;
	font-weight: 600;
	border-radius: var(--icm-radius-sm);
	text-decoration: none;
	transition: background-color 0.2s ease;
}

.icm-btn-reset-large:hover {
	background-color: var(--icm-action-hover);
	color: #FFFFFF;
}

/* ==========================================================================
   Single Course View (/corsi/[slug]/)
   ========================================================================== */

.icm-single-course-wrapper {
	padding-top: 48px;
}

/* Banners (DEMO and Annullato) */
.icm-banner {
	display: flex;
	align-items: flex-start;
	gap: 16px;
	padding: 16px 20px;
	border-radius: var(--icm-radius-md);
	margin-bottom: 24px;
}

.icm-banner-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 26px;
	height: 26px;
	flex-shrink: 0;
	line-height: 1;
}

.icm-banner-icon svg {
	width: 24px;
	height: 24px;
	stroke: currentColor;
	display: block;
}

.icm-banner-demo .icm-banner-icon {
	color: #B45309;
}

.icm-banner-annullato .icm-banner-icon {
	color: #991B1B;
}

.icm-banner-text strong {
	font-family: var(--icm-font-heading);
	display: block;
	margin-bottom: 4px;
	font-size: 15px;
}

.icm-banner-text p {
	margin: 0;
	font-size: 14px;
	line-height: 1.5;
}

.icm-banner-demo {
	background-color: #FEF08A;
	border: 1px solid #CA8A04;
	color: #713F12; /* 8.2:1 contrast ratio */
}

.icm-banner-annullato {
	background-color: #FEE2E2;
	border: 1px solid #EF4444;
	color: #7F1D1D; /* 9.1:1 contrast ratio */
}

/* ==========================================================================
   Catalog Header: Recognizable & Proportionate (MITI Identity)
   ========================================================================== */

.icm-catalog-header {
	margin-bottom: 30px;
	padding: clamp(36px, 5vw, 72px) clamp(24px, 5vw, 64px);
	background: linear-gradient(115deg, #321519 0%, #961D30 62%, #F8485E 100%);
	border: 0;
	border-radius: var(--icm-radius-lg);
	box-shadow: 0 12px 28px rgba(30, 20, 26, .13);
	position: relative;
	overflow: hidden;
	isolation: isolate;
	background-clip: padding-box;
}

.icm-catalog-header-image { background-size: cover; background-position: center; }

.icm-catalog-eyebrow {
	display: inline-block;
	font-family: var(--icm-font-heading);
	font-size: 11px;
	font-weight: 800;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: #FFE1E5;
	margin-bottom: 8px;
}

.icm-catalog-main-title {
	font-family: var(--icm-font-heading);
	font-size: clamp(30px, 4vw, 48px);
	font-weight: 800;
	color: #FFFFFF;
	line-height: 1.25;
	margin: 0 0 8px 0;
}

.icm-catalog-lead {
	font-size: 17px;
	line-height: 1.6;
	color: #FFFFFF;
	margin: 0;
	max-width: 760px;
}

/* ==========================================================================
   Single Course View: Hero & Titlebar
   ========================================================================== */

.icm-hero-titlebar {
	margin-bottom: 36px;
	padding-bottom: 32px;
	border-bottom: 1px solid var(--icm-border);
}

.icm-hero-meta-strip {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
	margin-bottom: 16px;
}

.icm-hero-pills {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
}

.icm-hero-brand-tag {
	display: inline-flex;
	align-items: center;
	font-family: var(--icm-font-heading);
	font-size: 11px;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	background-color: var(--icm-primary);
	color: var(--icm-primary-on);
	padding: 4px 10px;
	border-radius: 4px;
}

.icm-pill-settore {
	background-color: #F1F5F9;
	color: #334155;
	border: 1px solid #CBD5E1;
	font-weight: 600;
}

.icm-hero-title {
	font-family: var(--icm-font-heading);
	font-size: 36px;
	font-weight: 800;
	color: var(--icm-text-heading);
	line-height: 1.2;
	margin: 0 0 12px 0;
	letter-spacing: -0.01em;
}

.icm-hero-subtitle {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 8px;
	margin-bottom: 24px;
	font-size: 17px;
	line-height: 1.5;
}

.icm-subtitle-tag {
	font-family: var(--icm-font-heading);
	font-size: 12px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--icm-primary-secondary);
}

.icm-subtitle-text {
	font-weight: 500;
	color: var(--icm-text-muted);
}

/* Informazioni Essenziali: Griglia Sintetica Hero */
.icm-hero-stats-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 16px;
	margin: 24px 0 28px;
}

.icm-hero-stat-card {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	background: var(--icm-bg-subtle);
	border: 1px solid var(--icm-border);
	border-radius: var(--icm-radius-md);
	padding: 18px 20px;
	transition: transform 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}

.icm-hero-stat-card:hover {
	border-color: rgba(248, 72, 94, 0.3);
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
	transform: translateY(-2px);
}

.icm-hero-stat-top {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-bottom: 8px;
	width: 100%;
}

.icm-hero-stat-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 22px;
	height: 22px;
	color: var(--icm-primary-secondary);
	flex-shrink: 0;
}

.icm-hero-stat-icon svg {
	width: 22px;
	height: 22px;
	stroke: currentColor;
	display: block;
}

.icm-hero-stat-label {
	font-size: 13px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--icm-text-muted);
	line-height: 1.4;
	opacity: 1;
	margin-bottom: 0;
}

.icm-hero-stat-value {
	font-family: var(--icm-font-heading);
	font-size: 18px;
	font-weight: 700;
	color: var(--icm-text-heading);
	line-height: 1.35;
	word-break: normal;
	overflow-wrap: break-word;
	opacity: 1;
	width: 100%;
}

.icm-hero-stat-sub {
	font-size: 15px;
	font-weight: 450;
	color: var(--icm-text-body);
	margin-top: 6px;
	line-height: 1.5;
	word-break: normal;
	overflow-wrap: break-word;
	opacity: 1;
	width: 100%;
}

/* Cover Media: Immagine Reale o Fallback Curato */
.icm-hero-media-wrapper {
	width: 100%;
	border-radius: var(--icm-radius-lg);
	overflow: hidden;
	box-shadow: var(--icm-shadow-card);
	margin-top: 24px;
}

.icm-course-return {
	background: var(--icm-bg-card);
	border-top: 1px solid var(--icm-border);
	padding: 10px 18px;
}

.icm-course-return a {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	min-height: 44px;
	color: var(--icm-primary-secondary);
	font-family: var(--icm-font-heading);
	font-size: 14px;
	font-weight: 700;
	text-decoration: none;
}

.icm-course-return a:hover {
	color: var(--icm-text-heading);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.icm-course-return-arrow {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	border-radius: 50%;
	background: var(--icm-accent-soft);
	font-family: sans-serif;
	font-size: 19px;
	line-height: 1;
}

.icm-hero-image-container {
	width: 100%;
	max-height: 480px;
	overflow: hidden;
	background: #000000;
}

.icm-hero-img {
	width: 100%;
	height: auto;
	max-height: 480px;
	object-fit: cover;
	display: block;
}

.icm-hero-fallback-banner {
	width: 100%;
	min-height: 200px;
	background: linear-gradient(135deg, #1D1D1B 0%, #2A2F35 60%, #3B1B25 100%);
	border-left: 6px solid var(--icm-primary);
	padding: 36px 32px;
	display: flex;
	align-items: center;
	position: relative;
	overflow: hidden;
}

.icm-fallback-content {
	position: relative;
	z-index: 2;
	max-width: 800px;
}

.icm-fallback-badge {
	display: inline-block;
	font-family: var(--icm-font-heading);
	font-size: 11px;
	font-weight: 800;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--icm-primary-on);
	background-color: var(--icm-primary);
	padding: 4px 10px;
	border-radius: 4px;
	margin-bottom: 12px;
}

.icm-fallback-title {
	font-family: var(--icm-font-heading);
	font-size: 24px;
	font-weight: 700;
	color: #FFFFFF;
	line-height: 1.3;
	margin-bottom: 8px;
}

.icm-fallback-note {
	font-size: 14px;
	color: rgba(255, 255, 255, 0.75);
}

/* Box di Evidenza per Titolo Rilasciato / Normativa */
.icm-highlight-box {
	background-color: var(--icm-bg-subtle);
	border-left: 4px solid var(--icm-primary);
	border-radius: 0 var(--icm-radius-sm) var(--icm-radius-sm) 0;
	padding: 14px 18px;
	margin: 16px 0;
}

.icm-highlight-label {
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--icm-primary-secondary);
	margin-bottom: 4px;
}

.icm-highlight-title {
	font-family: var(--icm-font-heading);
	font-size: 16px;
	font-weight: 700;
	color: var(--icm-text-heading);
	display: block;
}

/* Dati Ammissione nella Sidebar */
.icm-admissions-meta-list {
	margin-top: 18px;
	padding-top: 16px;
	border-top: 1px solid var(--icm-border);
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.icm-sidebar-meta-row {
	display: flex;
	flex-direction: column;
	gap: 4px;
	padding-bottom: 12px;
	border-bottom: 1px solid var(--icm-border);
}

.icm-sidebar-meta-row:last-child {
	border-bottom: none;
	padding-bottom: 0;
}

.icm-meta-row-label {
	font-size: 13px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--icm-text-muted);
	line-height: 1.4;
	opacity: 1;
}

.icm-meta-row-value {
	font-size: 16px;
	font-weight: 600;
	color: var(--icm-text-heading);
	line-height: 1.45;
	word-break: normal;
	overflow-wrap: break-word;
	opacity: 1;
}

/* Single Layout (2-Column Desktop Grid) */
.icm-single-layout {
	display: grid;
	grid-template-columns: 1fr 360px;
	gap: 40px;
	align-items: start;
}

.icm-single-main {
	min-width: 0;
}

.icm-single-abstract {
	margin-bottom: 28px;
}

.icm-lead-text {
	font-size: 18px;
	line-height: 1.65;
	color: var(--icm-text-body);
	margin: 0;
}

.icm-single-section {
	margin-bottom: 36px;
	padding-bottom: 32px;
	border-bottom: 1px solid var(--icm-border);
}

.icm-single-section:last-child {
	border-bottom: none;
}

.icm-section-title {
	display: flex;
	align-items: center;
	gap: 12px;
	font-family: var(--icm-font-heading);
	font-size: 22px;
	font-weight: 700;
	color: var(--icm-text-heading);
	margin: 0 0 18px 0;
}

.icm-title-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 26px;
	height: 26px;
	color: var(--icm-primary-secondary);
	flex-shrink: 0;
}

.icm-title-icon svg {
	width: 24px;
	height: 24px;
	stroke: currentColor;
	display: block;
}

.icm-typography-content {
	font-size: 16px;
	line-height: 1.7;
	color: var(--icm-text-body);
}

.icm-typography-content p {
	margin: 0 0 16px 0;
}

.icm-typography-content ul,
.icm-typography-content ol {
	margin: 0 0 16px 20px;
	padding: 0;
}

.icm-typography-content li {
	margin-bottom: 8px;
}

/* Document Downloads List */
.icm-doc-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.icm-doc-item {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 16px 20px;
	background-color: var(--icm-bg-subtle);
	border: 1px solid var(--icm-border);
	border-radius: var(--icm-radius-md);
	transition: border-color 0.2s ease, background-color 0.2s ease, box-shadow 0.2s ease;
}

.icm-doc-item:hover {
	border-color: rgba(248, 72, 94, 0.3);
	background-color: #FFFFFF;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
}

.icm-doc-meta {
	display: flex;
	align-items: center;
	gap: 12px;
	min-width: 0;
	flex: 1;
}

.icm-doc-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 26px;
	height: 26px;
	color: var(--icm-primary-secondary);
	flex-shrink: 0;
	line-height: 1;
}

.icm-doc-icon svg {
	width: 24px;
	height: 24px;
	stroke: currentColor;
	display: block;
}

.icm-doc-title {
	font-family: var(--icm-font-heading);
	font-size: 16px;
	font-weight: 600;
	color: var(--icm-text-heading);
	line-height: 1.4;
	overflow-wrap: break-word;
	word-break: normal;
	opacity: 1;
}

.icm-doc-size {
	font-size: 14px;
	font-weight: 500;
	color: var(--icm-text-muted);
	flex-shrink: 0;
	opacity: 1;
}

.icm-btn-download {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-family: var(--icm-font-heading);
	font-size: 14px;
	font-weight: 600;
	color: var(--icm-primary-secondary);
	background-color: #FFFFFF;
	border: 1px solid var(--icm-primary);
	padding: 6px 14px;
	border-radius: var(--icm-radius-sm);
	text-decoration: none;
	white-space: nowrap;
	transition: all 0.2s ease;
	min-height: 40px;
}

.icm-btn-download:hover {
	background-color: var(--icm-action);
	color: #FFFFFF;
}

/* ==========================================================================
   Single Course Sidebar Cards
   ========================================================================== */

.icm-single-sidebar {
	display: flex;
	flex-direction: column;
	gap: 24px;
}

.icm-sidebar-card {
	background-color: var(--icm-bg-card);
	border: 1px solid var(--icm-border);
	border-radius: var(--icm-radius-md);
	padding: 24px;
	box-shadow: var(--icm-shadow-card);
}

.icm-sidebar-card-title {
	font-family: var(--icm-font-heading);
	font-size: 18px;
	font-weight: 700;
	color: var(--icm-text-heading);
	margin: 0 0 16px 0;
	padding-bottom: 12px;
	border-bottom: 1px solid var(--icm-border);
}

/* Admissions Status Box */
.icm-status-alert {
	padding: 16px;
	border-radius: var(--icm-radius-sm);
	margin-bottom: 16px;
}

.icm-status-alert-open {
	background-color: #F0FDF4;
	border: 1px solid #BBF7D0;
}

.icm-status-alert-future {
	background-color: #EFF6FF;
	border: 1px solid #BFDBFE;
	color: #1E3A8A;
}

.icm-status-alert-closed {
	background-color: #F8FAFC;
	border: 1px solid var(--icm-border);
	color: var(--icm-text-muted);
}

.icm-status-alert strong {
	font-family: var(--icm-font-heading);
	display: block;
	margin-bottom: 6px;
	font-size: 17px;
	font-weight: 700;
	line-height: 1.35;
	opacity: 1;
}

.icm-status-alert p {
	margin: 0;
	font-size: 15px;
	font-weight: 450;
	line-height: 1.5;
	opacity: 1;
}

.icm-open-indicator {
	display: flex;
	align-items: center;
	gap: 8px;
	color: #166534;
	margin-bottom: 12px;
}

.icm-dot-pulse {
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background-color: #16A34A;
	display: inline-block;
	box-shadow: 0 0 0 0 rgba(22, 163, 74, 0.7);
	animation: icmPulse 1.8s infinite cubic-bezier(0.66, 0, 0, 1);
}

@keyframes icmPulse {
	to {
		box-shadow: 0 0 0 10px rgba(22, 163, 74, 0);
	}
}

.icm-deadline-box {
	background-color: #FFFFFF;
	border: 1px solid #DCFCE7;
	border-radius: var(--icm-radius-sm);
	padding: 14px 16px;
	margin-bottom: 14px;
}

.icm-deadline-label {
	display: block;
	font-size: 13px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--icm-text-muted);
	margin-bottom: 4px;
	line-height: 1.4;
	opacity: 1;
}

.icm-deadline-value {
	display: block;
	font-family: var(--icm-font-heading);
	font-size: 18px;
	font-weight: 700;
	color: var(--icm-text-heading);
	line-height: 1.35;
	opacity: 1;
}

.icm-proroga-tag {
	display: inline-block;
	margin-top: 6px;
	font-family: var(--icm-font-heading);
	font-size: 12px;
	font-weight: 600;
	color: #B45309;
	background-color: #FEF3C7;
	padding: 3px 8px;
	border-radius: 4px;
	text-transform: uppercase;
	letter-spacing: 0.03em;
}

.icm-btn-primary {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 48px;
	padding: 12px 18px;
	background-color: var(--icm-action);
	color: #FFFFFF;
	font-family: var(--icm-font-heading);
	font-size: 15px;
	font-weight: 600;
	border-radius: var(--icm-radius-sm);
	text-decoration: none;
	text-align: center;
	transition: background-color 0.2s ease;
}

.icm-btn-primary:hover {
	background-color: var(--icm-action-hover);
	color: #FFFFFF;
}

/* Technical Details List (DL / DT / DD) */
.icm-details-list {
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.icm-detail-item {
	display: flex;
	flex-direction: column;
	gap: 4px;
	padding-bottom: 14px;
	border-bottom: 1px solid var(--icm-border);
}

.icm-detail-item:last-child {
	border-bottom: none;
	padding-bottom: 0;
}

.icm-detail-item dt {
	font-family: var(--icm-font-heading);
	font-size: 13px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--icm-text-muted);
	line-height: 1.4;
	opacity: 1;
}

.icm-detail-item dd {
	margin: 0;
	font-size: 17px;
	font-weight: 600;
	color: var(--icm-text-heading);
	line-height: 1.4;
	word-break: normal;
	overflow-wrap: break-word;
	opacity: 1;
}

.icm-detail-sub {
	display: block;
	font-size: 15px;
	font-weight: 450;
	color: var(--icm-text-body);
	margin-top: 4px;
	line-height: 1.5;
	word-break: normal;
	overflow-wrap: break-word;
	opacity: 1;
}

/* ==========================================================================
   Responsive Breakpoints
   - Tablet: max-width 1023px
   - Mobile: max-width 767px down to 320px
   ========================================================================== */

@media (max-width: 1023px) {
	.icm-catalog-header {
		padding: 22px 24px;
	}

	.icm-catalog-main-title {
		font-size: 24px;
	}

	.icm-hero-title {
		font-size: 30px;
	}

	.icm-hero-stats-grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 12px;
	}

	.icm-filters-form {
		padding: 18px 20px;
		margin-bottom: 24px;
	}

	.icm-status-tabs {
		gap: 8px;
		margin-bottom: 16px;
		padding-bottom: 14px;
	}

	.icm-status-radio span {
		padding: 8px 14px;
		font-size: 13px;
		min-height: 40px;
	}

	.icm-cards-grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 20px;
	}

	.icm-filters-row {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 12px;
	}

	.icm-filter-field-order:nth-child(3) {
		grid-column: 1 / -1;
	}

	.icm-filter-actions {
		grid-column: 1 / -1;
		display: flex;
		flex-direction: row;
		justify-content: flex-start;
		gap: 10px;
	}

	.icm-single-layout {
		grid-template-columns: 1fr;
		gap: 32px;
	}

	.icm-single-sidebar {
		max-width: 600px;
	}
}

@media (max-width: 767px) {
	.icm-catalog-section-open .icm-cards-grid { grid-template-columns: 1fr; }
	.icm-biennio-group { padding: 16px; }
	.icm-catalog-header {
		padding: 18px 16px;
		margin-bottom: 20px;
	}

	.icm-catalog-main-title {
		font-size: 22px;
	}

	.icm-catalog-lead {
		font-size: 14px;
	}

	.icm-hero-titlebar {
		margin-bottom: 24px;
		padding-bottom: 20px;
	}

	.icm-hero-title {
		font-size: 24px;
		line-height: 1.25;
	}

	.icm-hero-subtitle {
		font-size: 15px;
		margin-bottom: 16px;
	}

	.icm-hero-stats-grid {
		grid-template-columns: 1fr;
		gap: 10px;
		margin: 16px 0 20px;
	}

	.icm-hero-stat-card {
		padding: 12px 14px;
	}

	.icm-hero-fallback-banner {
		padding: 24px 20px;
		min-height: 160px;
	}

	.icm-fallback-title {
		font-size: 18px;
	}

	.icm-filters-form {
		padding: 14px;
		margin-bottom: 20px;
	}

	.icm-status-tabs {
		display: grid;
		grid-template-columns: repeat(2, 1fr);
		gap: 8px;
		margin-bottom: 14px;
		padding-bottom: 12px;
	}

	.icm-status-radio {
		width: 100%;
		margin: 0;
	}

	.icm-status-radio span {
		width: 100%;
		justify-content: center;
		padding: 8px 10px;
		font-size: 13px;
		min-height: 40px;
		text-align: center;
	}

	.icm-filters-row {
		grid-template-columns: 1fr 1fr;
		gap: 10px;
	}

	.icm-filter-field {
		gap: 4px;
	}

	.icm-filter-field:nth-child(3),
	.icm-filter-field:nth-child(4) {
		grid-column: span 2;
	}

	.icm-select {
		height: 42px;
		font-size: 14px;
		padding: 6px 10px;
	}

	.icm-filter-actions {
		grid-column: span 2;
		display: flex;
		flex-direction: row;
		gap: 8px;
		width: 100%;
		margin-top: 4px;
	}

	.icm-btn-filter {
		flex: 2;
		height: 42px;
		padding: 0 16px;
		font-size: 13px;
	}

	.icm-btn-reset {
		flex: 1;
		height: 42px;
		padding: 0 12px;
		font-size: 13px;
	}

	.icm-cards-grid {
		grid-template-columns: 1fr;
		gap: 18px;
	}

	.icm-card-body {
		padding: 16px;
	}

	.icm-doc-item {
		flex-direction: column;
		align-items: flex-start;
		gap: 10px;
	}

	.icm-btn-download {
		width: 100%;
		justify-content: center;
		min-height: 42px;
	}
}

/* ==========================================================================
   WIZARD UNIFICATO CANDIDATURE E MANIFESTAZIONI D'INTERESSE [its_corsi_wizard]
   ========================================================================== */

.icm-wizard-container {
	max-width: 880px;
	margin: 30px auto 60px;
	padding: 0 20px;
	font-family: var(--icm-font-body, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);
	font-size: 16px;
	font-weight: 400;
	color: #0F172A;
	line-height: 1.5;
	box-sizing: border-box;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

.icm-wizard-container p {
	font-size: 16px;
	font-weight: 400;
	color: #1E293B;
	line-height: 1.55;
	opacity: 1;
}

.icm-wizard-container * {
	box-sizing: border-box;
}

/* Avviso Ambiente di Collaudo */
.icm-wizard-collaudo-notice {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	background-color: #FFFBEB;
	border: 1px solid #FDE68A;
	border-left: 5px solid #F59E0B;
	border-radius: var(--icm-radius-md, 8px);
	padding: 16px 20px;
	margin-bottom: 28px;
}

.icm-wizard-notice-icon {
	color: #B45309;
	flex-shrink: 0;
	margin-top: 2px;
}

.icm-wizard-notice-content strong {
	display: block;
	font-size: 15px;
	font-weight: 600;
	color: #92400E;
	margin-bottom: 4px;
}

.icm-wizard-notice-content p {
	font-size: 14.5px;
	font-weight: 450;
	line-height: 1.5;
	color: #78350F;
	margin: 0;
	opacity: 1;
}

.icm-notice-subtle {
	background-color: #F8FAFC;
	border: 1px solid #E2E8F0;
	border-left: 4px solid var(--icm-primary, #F8485E);
}

.icm-notice-subtle .icm-wizard-notice-icon {
	color: var(--icm-primary-secondary, #D8223B);
}

.icm-notice-subtle p {
	font-size: 14.5px;
	font-weight: 450;
	color: #1E293B;
	line-height: 1.5;
	opacity: 1;
}

/* Box Riepilogo Errori */
.icm-wizard-error-summary {
	background-color: #FEF2F2;
	border: 1px solid #FECACA;
	border-left: 5px solid #DC2626;
	border-radius: var(--icm-radius-md, 8px);
	padding: 16px 20px;
	margin-bottom: 28px;
}

.icm-wizard-error-header {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 8px;
}

.icm-wizard-error-icon {
	color: #DC2626;
	display: flex;
	align-items: center;
}

.icm-wizard-error-header strong {
	color: #991B1B;
	font-size: 15px;
	font-weight: 700;
}

.icm-wizard-error-list {
	margin: 0;
	padding-left: 28px;
	color: #B91C1C;
	font-size: 14px;
	line-height: 1.6;
}

.icm-wizard-error-list a {
	color: #B91C1C;
	text-decoration: underline;
}

.icm-wizard-error-list a:hover {
	color: #7F1D1D;
}

/* Header del Wizard */
.icm-wizard-header {
	text-align: center;
	margin-bottom: 36px;
}

.icm-wizard-title {
	font-family: var(--icm-font-heading, 'Raleway', sans-serif);
	font-size: 28px;
	font-weight: 700;
	color: var(--icm-text-heading, #1d1d1b);
	margin: 0 0 10px 0;
}

.icm-wizard-desc {
	font-size: 16px;
	color: #4B5563;
	max-width: 650px;
	margin: 0 auto;
	line-height: 1.5;
}

/* Griglia Scelta Modalità (Step 0) */
.icm-mode-cards-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 24px;
	margin-bottom: 32px;
}

.icm-mode-card {
	background: #FFFFFF;
	border: 2px solid #E2E8F0;
	border-radius: var(--icm-radius-lg, 12px);
	padding: 32px 28px;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	transition: all 0.25s ease;
	cursor: pointer;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
}

.icm-mode-card:hover,
.icm-mode-card:focus-visible {
	border-color: var(--icm-primary, #F8485E);
	box-shadow: 0 10px 28px rgba(248, 72, 94, 0.12);
	transform: translateY(-2px);
	outline: none;
}

.icm-mode-card-icon {
	color: var(--icm-primary-secondary, #D8223B);
	margin-bottom: 18px;
}

.icm-mode-tag {
	display: inline-block;
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	padding: 4px 10px;
	background-color: #F1F5F9;
	color: #475569;
	border-radius: 4px;
	margin-bottom: 12px;
}

.icm-tag-primary {
	background-color: #FEE2E2;
	color: var(--icm-primary-secondary, #D8223B);
}

.icm-mode-title {
	font-family: var(--icm-font-heading, 'Raleway', sans-serif);
	font-size: 20px;
	font-weight: 700;
	color: var(--icm-text-heading, #1d1d1b);
	margin: 0 0 12px 0;
	line-height: 1.3;
}

.icm-mode-desc {
	font-size: 15px;
	font-weight: 450;
	color: #1E293B;
	line-height: 1.55;
	margin: 0 0 18px 0;
	flex-grow: 1;
	opacity: 1;
}

.icm-mode-disclaimer {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	font-size: 13.5px;
	font-weight: 500;
	color: #78350F;
	background-color: #FEF3C7;
	border: 1px solid #FDE68A;
	border-radius: 6px;
	padding: 10px 12px;
	margin-bottom: 24px;
	line-height: 1.45;
	opacity: 1;
}

.icm-disclaimer-info {
	background-color: #EFF6FF;
	border-color: #BFDBFE;
	color: #1E3A8A;
}

.icm-disclaimer-icon {
	flex-shrink: 0;
	margin-top: 2px;
}

.icm-mode-card-action {
	margin-top: auto;
}

.icm-mode-card-action .icm-btn {
	width: 100%;
	justify-content: center;
	height: 46px;
	font-size: 14.5px;
}

/* Pulsanti Generici del Wizard */
.icm-btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-family: var(--icm-font-heading, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif);
	font-size: 15px;
	font-weight: 600;
	padding: 0 20px;
	height: 44px;
	min-height: 44px;
	border-radius: var(--icm-radius-sm, 6px);
	border: 1px solid transparent;
	cursor: pointer;
	text-decoration: none;
	transition: all 0.2s ease;
	line-height: 1;
	opacity: 1;
}

.icm-btn:disabled,
.icm-btn[disabled] {
	background-color: #E2E8F0 !important;
	border-color: #CBD5E1 !important;
	color: #94A3B8 !important;
	cursor: not-allowed !important;
	box-shadow: none !important;
	transform: none !important;
	opacity: 0.8 !important;
}

.icm-btn-primary {
	background-color: var(--icm-action, #D8223B);
	color: #FFFFFF !important;
	border-color: var(--icm-action, #D8223B);
	font-weight: 600;
}

.icm-btn-primary:hover:not(:disabled),
.icm-btn-primary:focus-visible:not(:disabled) {
	background-color: var(--icm-action-hover, #A91931);
	border-color: var(--icm-action-hover, #A91931);
	color: #FFFFFF !important;
}

.icm-btn-success {
	background-color: var(--icm-action, #D8223B);
	color: #FFFFFF !important;
	border-color: var(--icm-action, #D8223B);
	font-weight: 600;
}

.icm-btn-success:hover:not(:disabled),
.icm-btn-success:focus-visible:not(:disabled) {
	background-color: var(--icm-action-hover, #A91931);
	border-color: var(--icm-action-hover, #A91931);
	color: #FFFFFF !important;
}

.icm-btn-secondary {
	background-color: #FFFFFF;
	color: #1E293B !important;
	border: 1.5px solid #CBD5E1;
	font-weight: 600;
}

.icm-btn-secondary:hover,
.icm-btn-secondary:focus-visible {
	background-color: #F1F5F9;
	border-color: #94A3B8;
	color: #0F172A !important;
}

.icm-btn-outline {
	background-color: #FFFFFF;
	color: #1E293B !important;
	border: 1.5px solid #CBD5E1;
	font-weight: 600;
}

.icm-btn-outline:hover,
.icm-btn-outline:focus-visible {
	background-color: #F1F5F9;
	border-color: #94A3B8;
	color: #0F172A !important;
}

/* Sezione Progresso e Badge */
.icm-wizard-progress-section {
	background: #FFFFFF;
	border: 1px solid #E2E8F0;
	border-radius: var(--icm-radius-md, 8px);
	padding: 16px 20px;
	margin-bottom: 28px;
}

.icm-wizard-mode-badge-wrap {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding-bottom: 14px;
	margin-bottom: 16px;
	border-bottom: 1px solid #F1F5F9;
}

.icm-wizard-current-mode-label {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 13.5px;
	font-weight: 700;
	color: #1E293B;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

.icm-mode-dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background-color: #2563EB;
	display: inline-block;
}

.icm-dot-primary {
	background-color: var(--icm-primary, #F8485E);
}

.icm-wizard-btn-change-mode {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	background: none;
	border: none;
	font-size: 12.5px;
	color: #64748B;
	cursor: pointer;
	padding: 4px 8px;
	border-radius: 4px;
	transition: all 0.2s ease;
}

.icm-wizard-btn-change-mode:hover {
	color: var(--icm-primary-secondary, #D8223B);
	background-color: #FEF2F2;
}

/* Indicatore Step */
.icm-wizard-step-indicator {
	display: flex;
	justify-content: space-between;
	list-style: none;
	margin: 0;
	padding: 0;
	position: relative;
}

.icm-wizard-step-item {
	flex: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	position: relative;
}

.icm-wizard-step-item:not(:last-child)::after {
	content: '';
	position: absolute;
	top: 15px;
	left: 50%;
	width: 100%;
	height: 2px;
	background-color: #E2E8F0;
	z-index: 1;
}

.icm-wizard-step-item.icm-completed:not(:last-child)::after {
	background-color: #10B981;
}

.icm-step-circle {
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background-color: #F1F5F9;
	color: #64748B;
	font-size: 14px;
	font-weight: 700;
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
	z-index: 2;
	border: 2px solid #E2E8F0;
	margin-bottom: 8px;
	transition: all 0.2s ease;
}

.icm-wizard-step-item.icm-active .icm-step-circle {
	background-color: var(--icm-primary, #F8485E);
	border-color: var(--icm-primary, #F8485E);
	color: var(--icm-primary-on, #321519);
	box-shadow: 0 0 0 4px rgba(248, 72, 94, 0.15);
}

.icm-wizard-step-item.icm-completed .icm-step-circle {
	background-color: #10B981;
	border-color: #10B981;
	color: #FFFFFF;
}

.icm-step-label {
	font-size: 14px;
	font-weight: 600;
	color: #334155;
	max-width: 130px;
	line-height: 1.35;
}

.icm-wizard-step-item.icm-active .icm-step-label {
	color: var(--icm-text-heading, #1d1d1b);
	font-weight: 700;
}

/* Pannello Singolo Step */
.icm-wizard-step-panel {
	background: #FFFFFF;
	border: 1px solid #E2E8F0;
	border-radius: var(--icm-radius-lg, 12px);
	padding: 32px 36px;
	margin-bottom: 24px;
	box-shadow: 0 1px 4px rgba(0, 0, 0, 0.03);
}

.icm-wizard-step-header {
	margin-bottom: 28px;
	border-bottom: 1px solid #F1F5F9;
	padding-bottom: 16px;
}

.icm-step-title {
	font-family: var(--icm-font-heading, 'Raleway', sans-serif);
	font-size: 22px;
	font-weight: 700;
	color: var(--icm-text-heading, #1d1d1b);
	margin: 0 0 8px 0;
}

.icm-step-subtitle {
	font-size: 16px;
	font-weight: 450;
	color: #334155;
	margin: 0;
	line-height: 1.5;
	opacity: 1;
}

/* Elementi del Form */
.icm-form-group {
	margin-bottom: 20px;
}

.icm-label {
	display: block;
	font-size: 15px;
	font-weight: 600;
	color: #0F172A;
	margin-bottom: 6px;
	opacity: 1;
}

.icm-required {
	color: #DC2626;
	font-weight: 700;
}

.icm-optional {
	font-size: 13.5px;
	font-weight: 500;
	color: #475569;
}

.icm-field-hint {
	display: block;
	font-size: 14px;
	font-weight: 500;
	color: #334155;
	margin-top: 5px;
	line-height: 1.5;
	opacity: 1;
}

.icm-input,
.icm-select {
	width: 100%;
	height: 48px;
	min-height: 44px;
	padding: 10px 14px;
	font-size: 16px;
	font-weight: 400;
	font-family: inherit;
	color: #0F172A;
	background-color: #FFFFFF;
	border: 1px solid #CBD5E1;
	border-radius: var(--icm-radius-sm, 6px);
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
	outline: none;
	box-sizing: border-box;
	opacity: 1;
}

.icm-input:focus,
.icm-select:focus {
	border-color: var(--icm-primary, #F8485E);
	box-shadow: 0 0 0 3px rgba(248, 72, 94, 0.12);
}

.icm-input-uppercase {
	text-transform: uppercase;
}

.icm-input.icm-invalid,
.icm-select.icm-invalid {
	border-color: #DC2626;
	background-color: #FFF5F5;
}

.icm-error-msg,
.icm-field-error {
	display: block;
	color: #B91C1C;
	font-size: 14px;
	font-weight: 600;
	margin-top: 6px;
	line-height: 1.45;
}

.icm-form-grid-2 {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 18px;
}

.icm-form-grid-3 {
	display: grid;
	grid-template-columns: 1fr 1fr 1fr;
	gap: 16px;
}

.icm-checkbox-group {
	margin: 20px 0;
}

.icm-checkbox-label {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	font-size: 15px;
	color: #1E293B;
	line-height: 1.5;
	cursor: pointer;
}

.icm-checkbox-label input[type="checkbox"] {
	margin-top: 3px;
	width: 18px;
	height: 18px;
	min-width: 18px;
	accent-color: var(--icm-primary, #F8485E);
	flex-shrink: 0;
}

.icm-cf-unavailable {
	margin-top: 10px;
	font-size: 14px;
	font-weight: 600;
}

.icm-input:disabled {
	background-color: #F1F5F9;
	color: #64748B;
}

.icm-declarations-box .icm-checkbox-label,
.icm-modal-declarations .icm-checkbox-label {
	font-size: 16px;
	color: #0F172A;
	line-height: 1.55;
}

.icm-fieldset-card {
	background-color: #F8FAFC;
	border: 1px solid #E2E8F0;
	border-radius: var(--icm-radius-md, 8px);
	padding: 20px 22px;
	margin: 20px 0;
}

.icm-fieldset-title {
	font-family: var(--icm-font-heading, 'Raleway', sans-serif);
	font-size: 15px;
	font-weight: 700;
	color: #1E293B;
	margin: 0 0 16px 0;
	padding-bottom: 8px;
	border-bottom: 1px solid #E2E8F0;
}

/* Gestione Preferenze Corsi (Interesse) */
.icm-add-course-row {
	display: flex;
	gap: 12px;
	align-items: center;
}

.icm-add-course-row .icm-select {
	flex-grow: 1;
}

.icm-add-course-row .icm-btn {
	flex-shrink: 0;
	height: 46px;
}

.icm-preferences-wrapper {
	margin-top: 24px;
	border-top: 1px solid #F1F5F9;
	padding-top: 20px;
}

.icm-prefs-heading {
	font-size: 14px;
	font-weight: 700;
	color: #334155;
	margin: 0 0 12px 0;
	display: flex;
	align-items: center;
	gap: 8px;
}

.icm-prefs-count {
	font-size: 12.5px;
	font-weight: 500;
	color: #64748B;
}

.icm-preferences-empty {
	background: #F8FAFC;
	border: 1px dashed #CBD5E1;
	border-radius: var(--icm-radius-md, 8px);
	padding: 20px;
	text-align: center;
	color: #64748B;
	font-size: 14px;
}

.icm-preferences-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.icm-preference-item {
	display: flex;
	align-items: center;
	gap: 14px;
	background: #FFFFFF;
	border: 1px solid #E2E8F0;
	border-radius: var(--icm-radius-md, 8px);
	padding: 14px 18px;
	margin-bottom: 10px;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.02);
	transition: border-color 0.2s ease;
}

.icm-preference-item:hover {
	border-color: #CBD5E1;
}

.icm-pref-rank {
	background-color: #FEE2E2;
	color: var(--icm-primary-secondary, #D8223B);
	font-size: 12px;
	font-weight: 700;
	padding: 4px 8px;
	border-radius: 4px;
	white-space: nowrap;
	flex-shrink: 0;
}

.icm-pref-info {
	flex-grow: 1;
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.icm-pref-title {
	font-size: 14.5px;
	color: #1E293B;
	font-weight: 600;
}

.icm-pref-meta {
	font-size: 14px;
	font-weight: 500;
	color: #334155;
	opacity: 1;
}

.icm-pref-actions {
	display: flex;
	align-items: center;
	gap: 6px;
	flex-shrink: 0;
}

.icm-btn-icon {
	width: 34px;
	height: 34px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: #F8FAFC;
	border: 1px solid #CBD5E1;
	border-radius: 4px;
	color: #475569;
	cursor: pointer;
	transition: all 0.2s ease;
}

.icm-btn-icon:hover {
	background-color: #E2E8F0;
	color: #0F172A;
}

.icm-btn-remove-pref:hover {
	background-color: #FEE2E2;
	border-color: #FCA5A5;
	color: #DC2626;
}

.icm-btn-icon .icm-svg {
	width: 16px;
	height: 16px;
}

/* Radio Card Singolo Corso (Iscrizione) */
.icm-course-radio-grid {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.icm-course-radio-card {
	display: flex;
	align-items: flex-start;
	gap: 16px;
	background: #FFFFFF;
	border: 2px solid #E2E8F0;
	border-radius: var(--icm-radius-md, 8px);
	padding: 18px 20px;
	cursor: pointer;
	transition: all 0.2s ease;
}

.icm-course-radio-card:hover {
	border-color: #CBD5E1;
	background-color: #FAFAFA;
}

.icm-course-radio-card.icm-selected {
	border-color: var(--icm-primary, #F8485E);
	background-color: #FFF5F5;
}

.icm-course-radio-card input[type="radio"] {
	margin-top: 4px;
	width: 20px;
	height: 20px;
	accent-color: var(--icm-primary, #F8485E);
	flex-shrink: 0;
}

.icm-radio-card-body {
	flex-grow: 1;
}

.icm-radio-card-top {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-bottom: 8px;
}

.icm-radio-card-title {
	font-family: var(--icm-font-heading, 'Raleway', sans-serif);
	font-size: 17px;
	font-weight: 700;
	color: #1E293B;
	margin: 0 0 6px 0;
}

.icm-radio-card-meta {
	display: flex;
	align-items: center;
	gap: 16px;
	font-size: 14px;
	font-weight: 500;
	color: #334155;
	opacity: 1;
}

.icm-radio-card-meta .icm-meta-item {
	display: inline-flex;
	align-items: center;
	gap: 5px;
}

/* Riepilogo */
.icm-summary-box {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.icm-summary-section {
	background-color: #F8FAFC;
	border: 1px solid #E2E8F0;
	border-radius: var(--icm-radius-md, 8px);
	padding: 20px 24px;
}

.icm-summary-heading {
	font-family: var(--icm-font-heading, 'Raleway', sans-serif);
	font-size: 15px;
	font-weight: 700;
	color: #1E293B;
	margin: 0 0 14px 0;
	padding-bottom: 8px;
	border-bottom: 1px solid #E2E8F0;
}

.icm-summary-courses-list {
	margin: 0;
	padding-left: 20px;
	font-size: 14.5px;
	line-height: 1.8;
}

.icm-summary-highlight-course {
	background: #FFFFFF;
	border: 1px solid #E2E8F0;
	border-left: 4px solid var(--icm-primary, #F8485E);
	border-radius: 6px;
	padding: 14px 18px;
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.icm-summary-highlight-course strong {
	font-size: 16px;
	color: #1E293B;
}

.icm-summary-highlight-course span {
	font-size: 13.5px;
	color: #64748B;
}

.icm-summary-dl {
	display: grid;
	grid-template-columns: 180px 1fr;
	row-gap: 10px;
	column-gap: 16px;
	margin: 0;
}

.icm-summary-dl dt {
	font-size: 13.5px;
	font-weight: 600;
	color: #475569;
	text-transform: uppercase;
	letter-spacing: 0.03em;
}

.icm-summary-dl dd {
	font-size: 16px;
	color: #0F172A;
	margin: 0;
	font-weight: 500;
	line-height: 1.5;
}

/* Footer Navigazione */
.icm-wizard-footer-nav {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 16px;
	padding-top: 24px;
	border-top: 1px solid #E2E8F0;
	margin-top: 24px;
}

.icm-wizard-footer-nav .icm-btn {
	min-height: 44px;
	min-width: 140px;
	max-width: 240px;
	flex: 0 0 auto;
	justify-content: center;
}

.icm-wizard-footer-nav .icm-btn-primary {
	margin-left: auto;
}

.icm-wizard-footer-nav .icm-btn-outline + .icm-btn-primary,
.icm-wizard-footer-nav .icm-btn-outline + .icm-btn-submit {
	margin-left: 0;
}

/* Offset per scroll con header fisso e admin bar */
.icm-wizard-step-panel,
.icm-step-title,
.icm-step-indicator,
.icm-alert,
.icm-field-error,
.icm-error-msg,
.icm-summary-box,
.icm-wizard-container,
[tabindex="-1"] {
	scroll-margin-top: 130px;
}

.icm-spin {
	animation: icm-spin-kf 1s infinite linear;
}

@keyframes icm-spin-kf {
	0% { transform: rotate(0deg); }
	100% { transform: rotate(360deg); }
}

/* Schermata Finale Successo */
.icm-wizard-success-panel {
	background: #FFFFFF;
	border: 1px solid #E2E8F0;
	border-radius: var(--icm-radius-lg, 12px);
	padding: 48px 36px;
	text-align: center;
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.04);
}

.icm-success-icon-wrap {
	width: 72px;
	height: 72px;
	border-radius: 50%;
	background-color: #DCFCE7;
	color: #16A34A;
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0 auto 24px;
}

.icm-success-title {
	font-family: var(--icm-font-heading, 'Raleway', sans-serif);
	font-size: 26px;
	font-weight: 700;
	color: #1E293B;
	margin: 0 0 12px 0;
}

.icm-success-msg {
	font-size: 16px;
	color: #4B5563;
	max-width: 600px;
	margin: 0 auto 28px;
	line-height: 1.5;
}

.icm-receipt-card {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	background: #F8FAFC;
	border: 2px dashed #CBD5E1;
	border-radius: var(--icm-radius-md, 8px);
	padding: 20px 36px;
	margin: 0 auto 28px;
}

.icm-receipt-label {
	font-size: 13px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: #64748B;
	margin-bottom: 6px;
}

.icm-receipt-code {
	font-family: monospace;
	font-size: 26px;
	font-weight: 700;
	letter-spacing: 0.1em;
	color: var(--icm-primary-secondary, #D8223B);
	background: #FFFFFF;
	padding: 6px 18px;
	border-radius: 6px;
	border: 1px solid #E2E8F0;
	margin-bottom: 6px;
}

.icm-receipt-note {
	font-size: 12.5px;
	color: #64748B;
}

.icm-success-next-steps {
	max-width: 650px;
	margin: 0 auto 32px;
	background: #EFF6FF;
	border: 1px solid #BFDBFE;
	border-radius: var(--icm-radius-md, 8px);
	padding: 18px 24px;
	text-align: left;
}

.icm-success-next-steps h4 {
	font-size: 15px;
	font-weight: 700;
	color: #1E40AF;
	margin: 0 0 8px 0;
}

.icm-success-next-steps p {
	font-size: 14px;
	color: #1E3A8A;
	margin: 0;
	line-height: 1.5;
}

.icm-success-actions {
	display: flex;
	justify-content: center;
	gap: 16px;
}

/* ==========================================================================
   Responsive Breakpoints per il Wizard
   ========================================================================== */

@media (max-width: 768px) {
	.icm-wizard-container {
		padding: 0 14px;
		margin: 20px auto 40px;
	}

	.icm-mode-cards-grid {
		grid-template-columns: 1fr;
		gap: 16px;
	}

	.icm-mode-card {
		padding: 24px 20px;
	}

	.icm-form-grid-2,
	.icm-form-grid-3 {
		grid-template-columns: 1fr;
		gap: 14px;
	}

	.icm-wizard-step-panel {
		padding: 24px 20px;
	}

	.icm-wizard-step-indicator {
		gap: 8px;
	}

	.icm-step-label {
		display: none;
	}

	.icm-wizard-step-item:not(:last-child)::after {
		top: 15px;
	}

	.icm-add-course-row {
		flex-direction: column;
		align-items: stretch;
	}

	.icm-summary-dl {
		grid-template-columns: 1fr;
		row-gap: 4px;
	}

	.icm-summary-dl dd {
		margin-bottom: 12px;
	}

	.icm-receipt-card {
		width: 100%;
		padding: 16px 20px;
	}

	.icm-receipt-code {
		font-size: 20px;
		letter-spacing: 0.05em;
	}

	.icm-success-actions {
		flex-direction: column;
	}

	.icm-success-actions .icm-btn {
		width: 100%;
		justify-content: center;
	}

	.icm-wizard-footer-nav {
		gap: 12px;
	}

	.icm-wizard-footer-nav .icm-btn {
		min-width: 120px;
		max-width: none;
	}
}

@media (max-width: 480px) {
	.icm-wizard-footer-nav {
		flex-direction: row;
		gap: 12px;
	}

	.icm-wizard-footer-nav .icm-btn {
		flex: 1 1 auto;
		min-width: 0;
		padding: 0 10px;
		font-size: 14px;
		min-height: 44px;
	}
}

@media (max-width: 375px) {
	.icm-wizard-title {
		font-size: 22px;
	}

	.icm-step-title {
		font-size: 18px;
	}

	.icm-btn {
		padding: 0 12px;
		font-size: 13.5px;
		min-height: 44px;
	}

	.icm-preference-item {
		flex-direction: column;
		align-items: flex-start;
		gap: 10px;
	}

	.icm-pref-actions {
		width: 100%;
		justify-content: flex-end;
	}
}

/* ==========================================================================
   STEP 5B: STILI VERIFICA EMAIL, BOZZA AUTENTICATA E ALLEGATI PRIVATI
   ========================================================================== */

/* 1. Schermata Conferma Magic Link (Anti-Scanner) */
.icm-token-verify-container {
	max-width: 680px;
	margin: 40px auto;
}

.icm-token-verify-card {
	background: #ffffff;
	border: 1px solid var(--icm-border);
	border-radius: var(--icm-radius-lg);
	padding: 40px 36px;
	text-align: center;
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
}

.icm-token-verify-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 80px;
	height: 80px;
	border-radius: 50%;
	margin-bottom: 24px;
}

.icm-token-verify-icon.icm-icon-success {
	background: rgba(40, 167, 69, 0.12);
	color: #28a745;
}

.icm-token-verify-icon.icm-icon-error {
	background: rgba(220, 53, 69, 0.12);
	color: #dc3545;
}

.icm-token-verify-lead {
	font-size: 16px;
	line-height: 1.6;
	color: var(--icm-text-body);
	margin-bottom: 24px;
}

.icm-token-info-notice {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	background: #f8f9fa;
	border: 1px solid #e2e8f0;
	border-left: 4px solid var(--icm-primary);
	border-radius: var(--icm-radius-sm);
	padding: 16px 20px;
	text-align: left;
	margin-bottom: 28px;
}

.icm-token-info-notice .icm-notice-icon {
	color: var(--icm-primary-secondary);
	flex-shrink: 0;
	margin-top: 2px;
}

.icm-token-info-notice strong {
	display: block;
	font-size: 14px;
	margin-bottom: 4px;
	color: var(--icm-text-heading);
}

.icm-token-info-notice p {
	margin: 0;
	font-size: 13px;
	color: var(--icm-text-muted);
	line-height: 1.5;
}

.icm-token-actions {
	display: flex;
	gap: 12px;
	justify-content: center;
	flex-wrap: wrap;
}

.icm-btn-lg {
	padding: 14px 28px;
	font-size: 16px;
	min-height: 48px;
}

/* 2. Barra Recupero Magic Link ("Riprendi Candidatura") */
.icm-mode-recovery-bar {
	margin-top: 24px;
	border-top: 1px dashed var(--icm-border);
	padding-top: 20px;
	text-align: center;
}

.icm-btn-toggle-recovery {
	background: none;
	border: none;
	color: var(--icm-primary-secondary);
	font-size: 14px;
	font-weight: 500;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 8px 12px;
	border-radius: var(--icm-radius-sm);
	transition: background 0.15s ease;
}

.icm-btn-toggle-recovery:hover,
.icm-btn-toggle-recovery:focus {
	background: rgba(0, 0, 0, 0.04);
	text-decoration: underline;
}

.icm-recovery-panel {
	background: #f8fafc;
	border: 1px solid var(--icm-border);
	border-radius: var(--icm-radius-md);
	padding: 24px;
	margin-top: 16px;
	text-align: left;
	max-width: 520px;
	margin-left: auto;
	margin-right: auto;
}

.icm-recovery-desc {
	font-size: 14px;
	color: var(--icm-text-body);
	margin-bottom: 14px;
	line-height: 1.5;
}

.icm-recovery-input-row {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 10px;
}

.icm-recovery-input-row .icm-input {
	min-width: 0;
	width: 100%;
}

.icm-recovery-input-row .icm-btn {
	width: 100%;
	justify-content: center;
}

.icm-recovery-feedback {
	margin-top: 14px;
	padding: 12px 16px;
	border-radius: var(--icm-radius-sm);
	font-size: 13px;
	line-height: 1.5;
}

.icm-recovery-feedback.icm-feedback-success {
	background: #e6f7ec;
	border: 1px solid #c3e6cb;
	color: #155724;
}

.icm-recovery-feedback.icm-feedback-error {
	background: #fdf2f2;
	border: 1px solid #f5c6cb;
	color: #721c24;
}

/* 3. Dashboard Bozza (Draft Manager) */
.icm-draft-manager-container {
	max-width: 900px;
	margin: 30px auto;
}

.icm-draft-topbar {
	display: flex;
	justify-content: space-between;
	align-items: center;
	background: #ffffff;
	border: 1px solid var(--icm-border);
	border-radius: var(--icm-radius-md);
	padding: 16px 20px;
	margin-bottom: 24px;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
}

.icm-draft-user-info {
	display: flex;
	align-items: center;
	gap: 12px;
}

.icm-user-avatar {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: #F1F5F9;
	border: 1.5px solid #CBD5E1;
	color: var(--icm-primary-secondary, #D8223B);
	font-family: var(--icm-font-heading, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif);
	font-size: 15px;
	font-weight: 700;
	letter-spacing: 0.5px;
	flex-shrink: 0;
	user-select: none;
	box-sizing: border-box;
}

.icm-user-name {
	display: block;
	font-size: 15px;
	color: var(--icm-text-heading);
}

.icm-user-email {
	font-size: 13px;
	color: var(--icm-text-muted);
}

.icm-draft-topbar-actions {
	display: flex;
	align-items: center;
	gap: 12px;
}

.icm-badge-draft {
	background: #fff3cd;
	color: #856404;
	font-size: 12px;
	font-weight: 600;
	padding: 4px 10px;
	border-radius: 20px;
	border: 1px solid #ffeeba;
	text-transform: uppercase;
	letter-spacing: 0.03em;
}

.icm-btn-sm {
	padding: 6px 12px;
	font-size: 13px;
	min-height: 32px;
}

.icm-btn-logout {
	display: inline-flex;
	align-items: center;
	gap: 6px;
}

/* Banner checklist avanzamento */
.icm-draft-checklist-banner {
	background: #ffffff;
	border: 1px solid #e2e8f0;
	border-left: 4px solid #f59e0b;
	margin-bottom: 24px;
}

.icm-checklist-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 6px;
}

.icm-checklist-counter {
	font-size: 13px;
	font-weight: 600;
	color: #d97706;
}

.icm-draft-progress-bar {
	width: 100%;
	height: 8px;
	background: #e2e8f0;
	border-radius: 4px;
	overflow: hidden;
	margin-top: 10px;
}

.icm-progress-fill {
	height: 100%;
	background: #10b981;
	transition: width 0.3s ease;
}

/* Scheda corso in bozza */
.icm-draft-course-card {
	background: #f8fafc;
	border: 1px solid #cbd5e1;
	padding: 20px 24px;
	border-radius: var(--icm-radius-md);
	margin-bottom: 30px;
}

.icm-draft-course-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 8px;
}

.icm-receipt-code-pill {
	font-family: monospace;
	font-size: 13px;
	font-weight: 600;
	background: #e2e8f0;
	color: #334155;
	padding: 4px 10px;
	border-radius: 4px;
}

.icm-draft-course-title {
	font-size: 18px;
	margin: 0 0 10px 0;
	color: var(--icm-text-heading);
}

.icm-draft-course-meta {
	display: flex;
	gap: 14px;
	flex-wrap: wrap;
}

.icm-meta-pill {
	font-size: 13px;
	color: var(--icm-text-muted);
	display: inline-flex;
	align-items: center;
	gap: 5px;
}

/* 4. Griglia Allegati Privati */
.icm-draft-section {
	background: #ffffff;
	border: 1px solid var(--icm-border);
	border-radius: var(--icm-radius-lg);
	padding: 30px 28px;
	margin-bottom: 30px;
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.03);
}

.icm-documents-grid,
.icm-docs-grid {
	display: flex;
	flex-direction: column;
	gap: 24px;
	margin-top: 20px;
}

.icm-doc-card {
	background: #FFFFFF;
	border: 1.5px solid #E2E8F0;
	border-radius: var(--icm-radius-md, 8px);
	padding: 22px;
	display: flex;
	flex-direction: column;
	gap: 16px;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
	opacity: 1 !important;
}

.icm-doc-card.icm-doc-card-uploaded {
	border-color: #A7F3D0;
	background: #F0FDF4;
}

.icm-doc-card.icm-doc-card-missing {
	border-color: #FDE68A;
	background: #FFFBEB;
}

.icm-doc-card.icm-doc-card-warn {
	border-color: #FCD34D;
	background: #FFFDF5;
}

.icm-version-mismatch-banner {
	border-left: 4px solid #D97706;
	background: #FFFBEB;
	color: #92400E;
}

.icm-btn-download-pdf {
	background-color: var(--icm-action) !important;
	border-color: var(--icm-action) !important;
	color: #FFFFFF !important;
	font-weight: 600;
}

.icm-btn-download-pdf:hover,
.icm-btn-download-pdf:focus {
	background-color: var(--icm-action-hover) !important;
	border-color: var(--icm-action-hover) !important;
	color: #ffffff !important;
}

.icm-domanda-instructions-box {
	margin: 16px 0 20px;
	padding: 20px 22px;
	background: #f8fafc;
	border: 1px solid #cbd5e1;
	border-radius: 8px;
	color: #1e293b;
}

.icm-domanda-instructions-header {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	margin-bottom: 16px;
	padding-bottom: 16px;
	border-bottom: 1px solid #cbd5e1;
}

.icm-domanda-instructions-title {
	display: block;
	color: #0f172a;
	font-size: 17px;
	font-weight: 700;
	line-height: 1.4;
}

.icm-domanda-instructions-desc,
.icm-domanda-instructions-content {
	color: #334155;
	font-size: 16px;
	font-weight: 500;
	line-height: 1.6;
}

.icm-domanda-instructions-desc {
	margin: 6px 0 0;
}

.icm-domanda-instructions-content ol {
	margin: 10px 0 14px 24px;
	padding: 0;
}

.icm-domanda-instructions-content li + li {
	margin-top: 8px;
}

.icm-domanda-instructions-note {
	margin: 0;
	color: #475569;
	font-size: 15px;
	line-height: 1.55;
}

.icm-doc-card-header {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 12px;
}

.icm-doc-card-title {
	font-size: 16px;
	font-weight: 700;
	margin: 0 0 4px 0;
	color: var(--icm-text-heading, #0F172A);
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px;
}

.icm-badge-required {
	font-size: 11px;
	font-weight: 600;
	color: #B45309;
	background: #FEF3C7;
	border: 1px solid #FDE68A;
	padding: 2px 8px;
	border-radius: 4px;
}

.icm-badge-optional {
	font-size: 11px;
	font-weight: 500;
	color: #64748B;
	background: #F1F5F9;
	border: 1px solid #E2E8F0;
	padding: 2px 8px;
	border-radius: 4px;
}

.icm-doc-card-desc {
	font-size: 13.5px;
	color: var(--icm-text-body, #334155);
	line-height: 1.45;
	margin: 4px 0 0 0;
}

.icm-status-pill {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 12.5px;
	font-weight: 600;
	padding: 4px 10px;
	border-radius: 20px;
	white-space: nowrap;
}

.icm-status-ok {
	background: #D1FAE5;
	color: #065F46;
}

.icm-status-warn {
	background: #FEF3C7;
	color: #92400E;
}

.icm-status-pill.icm-status-pending {
	background: #DBEAFE;
	color: #1E40AF;
	border: 1px solid #BFDBFE;
}

/* Informazioni file caricato */
.icm-doc-file-info {
	background: #FFFFFF;
	border: 1px solid #A7F3D0;
	border-radius: var(--icm-radius-sm, 6px);
	padding: 14px 16px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 12px;
}

.icm-doc-file-meta {
	display: flex;
	align-items: center;
	gap: 12px;
	min-width: 0;
}

.icm-doc-file-icon {
	color: #059669;
	flex-shrink: 0;
	display: flex;
	align-items: center;
}

.icm-doc-file-details {
	display: flex;
	flex-direction: column;
	gap: 2px;
	overflow: hidden;
}

.icm-doc-file-name {
	font-size: 14px;
	color: var(--icm-text-heading, #0F172A);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	max-width: 380px;
}

.icm-doc-file-size {
	font-size: 12px;
	color: var(--icm-text-muted, #64748B);
}

.icm-doc-file-actions {
	display: flex;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
}

.icm-btn-danger-outline {
	background: #FFFFFF;
	border: 1.5px solid #FCA5A5;
	color: #DC2626 !important;
}

.icm-btn-danger-outline:hover,
.icm-btn-danger-outline:focus-visible {
	background: #FEF2F2;
	border-color: #EF4444;
	color: #991B1B !important;
}

/* Controlli di upload puliti */
.icm-sr-only {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

.icm-upload-instruction {
	font-size: 13.5px;
	font-weight: 600;
	color: #1E293B;
	margin: 0 0 10px 0;
}

.icm-file-selector-row {
	display: flex;
	align-items: center;
	gap: 12px;
	flex-wrap: wrap;
}

.icm-file-picker-btn {
	cursor: pointer;
	margin: 0;
	outline: none;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 13.5px;
	height: 36px;
	min-height: 36px;
	padding: 0 14px;
	background: #FFFFFF;
	border: 1.5px solid #CBD5E1;
	color: #1E293B !important;
	border-radius: var(--icm-radius-sm, 6px);
	font-weight: 600;
	transition: all 0.15s ease;
}

.icm-file-picker-btn:hover {
	background: #F8FAFC;
	border-color: #94A3B8;
}

.icm-file-input-field:focus + .icm-file-picker-btn,
.icm-file-input-field:focus-visible + .icm-file-picker-btn,
.icm-file-picker-btn:focus,
.icm-file-picker-btn:focus-visible {
	outline: 2px solid var(--icm-primary, #F8485E) !important;
	outline-offset: 2px !important;
	box-shadow: 0 0 0 3px rgba(248, 72, 94, 0.25) !important;
}

.icm-file-no-selection {
	font-size: 13px;
	color: #64748B;
	font-style: italic;
}

/* Box stato file selezionato ma NON ancora caricato */
.icm-file-pending-box {
	margin-top: 12px;
	padding: 12px 14px;
	background: #EFF6FF;
	border: 1.5px dashed #93C5FD;
	border-radius: var(--icm-radius-sm, 6px);
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.icm-pending-badge-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	flex-wrap: wrap;
}

.icm-btn-text-link {
	background: none;
	border: none;
	padding: 0;
	color: #DC2626;
	font-size: 13px;
	font-weight: 600;
	text-decoration: underline;
	cursor: pointer;
}

.icm-btn-text-link:hover,
.icm-btn-text-link:focus-visible {
	color: #991B1B;
}

.icm-pending-file-details {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 13.5px;
	color: #1E293B;
	word-break: break-word;
}

.icm-upload-item-error {
	margin-top: 10px;
	padding: 10px 14px;
	font-size: 13px;
}

.icm-upload-actions {
	margin-top: 14px;
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
}

/* 5. Modifica Bozza e Input Disabilitati */
.icm-input-disabled {
	background: #f1f5f9 !important;
	color: #64748b !important;
	cursor: not-allowed !important;
	border-color: #cbd5e1 !important;
}

.icm-draft-actions-bar {
	display: flex;
	justify-content: flex-end;
	margin-top: 20px;
}

/* 6. Schermata Manifestazione Confermata */
.icm-confirmed-container {
	max-width: 680px;
	margin: 40px auto;
}

.icm-confirmed-card {
	background: #ffffff;
	border: 1px solid var(--icm-border);
	border-radius: var(--icm-radius-lg);
	padding: 40px 36px;
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
	text-align: center;
}

.icm-tag-confirmed {
	background: #d1fae5;
	color: #065f46;
	display: inline-block;
	margin-bottom: 12px;
}

.icm-confirmed-lead {
	font-size: 16px;
	color: var(--icm-text-body);
	line-height: 1.6;
	margin-bottom: 24px;
}

.icm-confirmed-prefs-box {
	background: #f8fafc;
	border: 1px solid var(--icm-border);
	border-radius: var(--icm-radius-md);
	padding: 20px;
	text-align: left;
	margin-bottom: 24px;
}

.icm-confirmed-prefs-list {
	margin: 12px 0 0 0;
	padding-left: 20px;
}

.icm-confirmed-pref-item {
	padding: 8px 0;
	border-bottom: 1px solid #e2e8f0;
}

.icm-confirmed-pref-item:last-child {
	border-bottom: none;
}

.icm-pref-details {
	display: inline-flex;
	gap: 6px;
	margin-left: 8px;
}

.icm-pref-pill {
	font-size: 11px;
	background: #e2e8f0;
	color: #475569;
	padding: 2px 6px;
	border-radius: 4px;
}

.icm-confirmed-actions {
	display: flex;
	gap: 12px;
	justify-content: center;
	flex-wrap: wrap;
	margin-top: 24px;
}

/* Responsive per Step 5B */
@media (max-width: 767px) {
	.icm-docs-grid {
		grid-template-columns: 1fr;
	}

	.icm-draft-topbar {
		flex-direction: column;
		align-items: flex-start;
		gap: 12px;
	}

	.icm-draft-topbar-actions {
		width: 100%;
		justify-content: space-between;
	}

	.icm-token-verify-card,
	.icm-confirmed-card {
		padding: 24px 18px;
	}

	.icm-recovery-input-row {
		grid-template-columns: minmax(0, 1fr);
	}

	.icm-recovery-input-row .icm-btn {
		width: 100%;
		justify-content: center;
	}
}

/* ==========================================================================
   STEP 6A: RIEPILOGO, MODALE CONFERMA E RICEVUTA DI PRESENTAZIONE DOMANDA
   ========================================================================== */

/* Riepilogo prima dell'invio */
.icm-draft-review-section {
	margin-top: 36px;
	border-top: 2px solid var(--icm-border, #E2E8F0);
	padding-top: 28px;
}

.icm-review-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 12px;
	margin-bottom: 8px;
}

.icm-review-cards-container {
	display: flex;
	flex-direction: column;
	gap: 16px;
	margin-top: 20px;
}

.icm-review-card {
	margin-bottom: 0;
	background: #FFFFFF;
	border: 1px solid #E2E8F0;
	border-radius: var(--icm-radius-md, 8px);
	padding: 20px;
}

.icm-review-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 16px;
	margin-top: 12px;
}

.icm-review-group {
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.icm-review-full {
	grid-column: 1 / -1;
}

.icm-review-label {
	font-size: 12px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: #64748B;
}

.icm-review-value {
	font-size: 14.5px;
	color: #1E293B;
	word-break: break-word;
}

.icm-review-value code {
	background: #F1F5F9;
	padding: 2px 6px;
	border-radius: 4px;
	font-family: monospace;
	font-size: 13.5px;
	color: #0F172A;
}

/* Checklist allegati nel riepilogo */
.icm-review-docs-checklist {
	list-style: none;
	margin: 12px 0 0 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.icm-review-doc-row {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 10px 14px;
	background: #F8FAFC;
	border: 1px solid #E2E8F0;
	border-radius: var(--icm-radius-sm, 6px);
}

.icm-review-doc-row.icm-doc-ok {
	border-left: 4px solid #10B981;
}

.icm-review-doc-row.icm-doc-missing {
	border-left: 4px solid #EF4444;
	background: #FEF2F2;
}

.icm-review-doc-row.icm-doc-optional {
	border-left: 4px solid #94A3B8;
}

.icm-rev-doc-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	flex-shrink: 0;
}

.icm-doc-ok .icm-rev-doc-icon {
	color: #10B981;
}

.icm-doc-missing .icm-rev-doc-icon {
	color: #EF4444;
}

.icm-doc-optional .icm-rev-doc-icon {
	color: #94A3B8;
}

.icm-rev-doc-info {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	flex-grow: 1;
}

.icm-badge-required-sm {
	font-size: 10px;
	font-weight: 700;
	text-transform: uppercase;
	background: #FEE2E2;
	color: #DC2626;
	padding: 2px 6px;
	border-radius: 3px;
}

.icm-rev-doc-detail {
	font-size: 13px;
	color: #64748B;
	margin-left: auto;
}

/* Alert Modifiche Non Salvate */
.icm-dirty-notice {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	background: #FFFBEB;
	border: 1px solid #FDE68A;
	color: #92400E;
	padding: 14px 18px;
	border-radius: var(--icm-radius-md, 8px);
	margin-top: 14px;
}

/* Barra Invio Definitivo */
.icm-final-submit-bar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	background: #F8FAFC;
	border: 1px solid #E2E8F0;
	border-radius: var(--icm-radius-md, 8px);
	padding: 24px 28px;
	margin-top: 24px;
	gap: 20px;
	flex-wrap: wrap;
}

.icm-final-submit-title {
	font-size: 17px;
	font-weight: 700;
	color: #0F172A;
	display: block;
	margin-bottom: 4px;
}

.icm-final-submit-desc {
	font-size: 13.5px;
	color: #64748B;
	margin: 0;
}

.icm-final-submit-action-wrap {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 8px;
}

.icm-submit-requirement-notice {
	font-size: 13px;
	font-weight: 600;
	color: #B45309;
	background: #FEF3C7;
	border: 1px solid #FDE68A;
	padding: 6px 12px;
	border-radius: var(--icm-radius-sm, 6px);
	max-width: 380px;
	text-align: right;
}

@media (max-width: 767px) {
	.icm-final-submit-action-wrap {
		width: 100%;
		align-items: stretch;
	}
	.icm-final-submit-action-wrap .icm-btn {
		width: 100%;
		justify-content: center;
	}
	.icm-submit-requirement-notice {
		text-align: left;
		max-width: 100%;
	}
}

/* Modale di Conferma Invio */
body.icm-modal-open {
	overflow: hidden !important;
}

.icm-modal-backdrop {
	position: fixed;
	inset: 0;
	background: rgba(15, 23, 42, 0.7);
	backdrop-filter: blur(4px);
	-webkit-backdrop-filter: blur(4px);
	z-index: 9999999 !important;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 20px 16px;
	box-sizing: border-box;
}

.icm-modal-dialog {
	background: #FFFFFF;
	border-radius: 12px;
	width: 100%;
	max-width: 620px;
	max-height: calc(100vh - 40px);
	max-height: calc(100dvh - 40px);
	display: flex;
	flex-direction: column;
	margin: auto;
	box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.25), 0 10px 10px -5px rgba(0, 0, 0, 0.1);
	overflow: hidden;
	position: relative;
	animation: icmFadeSlideIn 0.25s ease-out;
	box-sizing: border-box;
}

@keyframes icmFadeSlideIn {
	from {
		opacity: 0;
		transform: translateY(16px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

.icm-modal-content {
	display: flex;
	flex-direction: column;
	height: 100%;
	max-height: 100%;
	min-height: 0;
	overflow: hidden;
	width: 100%;
	box-sizing: border-box;
}

.icm-modal-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 18px 24px;
	border-bottom: 1px solid #E2E8F0;
	flex-shrink: 0;
	background: #FFFFFF;
}

.icm-modal-title {
	font-size: 17px;
	font-weight: 700;
	color: #0F172A;
	margin: 0;
	display: flex;
	align-items: center;
	gap: 10px;
}

.icm-modal-close {
	background: transparent;
	border: none;
	font-size: 26px;
	line-height: 1;
	color: #64748B;
	cursor: pointer;
	padding: 4px 8px;
	border-radius: 4px;
	transition: background-color 0.15s ease, color 0.15s ease;
}

.icm-modal-close:hover,
.icm-modal-close:focus-visible {
	background-color: #F1F5F9;
	color: #0F172A;
	outline: 2px solid var(--icm-primary, #F8485E);
}

.icm-modal-body {
	padding: 20px 24px;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
	flex: 1 1 auto;
	min-height: 0;
	display: flex;
	flex-direction: column;
	gap: 16px;
	box-sizing: border-box;
}

.icm-modal-declarations {
	display: flex;
	flex-direction: column;
	gap: 14px;
	background: #F8FAFC;
	border: 1px solid #CBD5E1;
	border-radius: 8px;
	padding: 18px;
}

.icm-modal-checkbox-group {
	margin-bottom: 0;
}

.icm-declaration-text {
	display: block;
	font-size: 15px;
	color: #1E293B;
	line-height: 1.5;
	margin-top: 6px;
}

.icm-modal-footer {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 12px;
	padding: 14px 24px;
	border-top: 1px solid #E2E8F0;
	background: #F8FAFC;
	flex-shrink: 0;
	position: sticky;
	bottom: 0;
	z-index: 10;
}

/* Schermi con altezza ridotta o zoom 200%: consenti lo scorrimento naturale dell'intera modale */
@media (max-height: 640px) {
	.icm-modal-backdrop {
		align-items: flex-start;
		padding: 10px;
	}
	.icm-modal-dialog {
		max-height: none;
		margin: 10px auto;
	}
	.icm-modal-content {
		max-height: none;
		height: auto;
	}
	.icm-modal-body {
		overflow-y: visible;
	}
}

/* ==========================================================================
   VISTA: RICEVUTA DI PRESENTAZIONE DELLA DOMANDA
   ========================================================================== */

.icm-receipt-container {
	max-width: 980px;
	margin: 0 auto;
	background: #FFFFFF;
	padding: 32px 40px;
	border-radius: 12px;
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.05);
}

.icm-receipt-topbar {
	margin-bottom: 24px;
	padding-bottom: 16px;
	border-bottom: 1px solid #E2E8F0;
}

.icm-receipt-hero {
	display: flex;
	align-items: flex-start;
	gap: 20px;
	background: linear-gradient(135deg, #ECFDF5 0%, #F0FDF4 100%);
	border: 1px solid #A7F3D0;
	border-radius: 10px;
	padding: 24px;
	margin-bottom: 24px;
}

.icm-receipt-hero-icon {
	color: #059669;
	flex-shrink: 0;
}

.icm-receipt-pill-label {
	font-size: 11.5px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: #059669;
	margin-bottom: 4px;
	display: block;
}

.icm-receipt-hero-title {
	font-size: 22px;
	font-weight: 800;
	color: #064E3B;
	margin: 0 0 6px 0;
	line-height: 1.25;
}

.icm-receipt-hero-desc {
	font-size: 14px;
	color: #047857;
	margin: 0;
}

/* Griglia Metadati Ricevuta */
.icm-receipt-meta-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
	margin-bottom: 18px;
}

.icm-receipt-meta-card {
	background: #F8FAFC;
	border: 1px solid #E2E8F0;
	border-radius: 8px;
	padding: 12px 16px;
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.icm-meta-card-label {
	font-size: 11.5px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: #64748B;
}

.icm-meta-card-value {
	font-size: 15px;
	color: #0F172A;
}

.icm-receipt-code {
	font-family: monospace;
	font-size: 16px;
	letter-spacing: 0;
	color: var(--icm-primary-secondary, #D8223B);
}

.icm-receipt-container .icm-receipt-code {
	background: transparent;
	border: 0;
	padding: 0;
	margin: 0;
	overflow-wrap: anywhere;
}

.icm-receipt-disclaimer {
	margin-bottom: 18px;
	line-height: 1.6;
}

.icm-receipt-container .icm-receipt-card {
	display: block;
	align-items: stretch;
	box-sizing: border-box;
	width: 100%;
	margin: 0 0 16px;
	padding: 18px 22px;
	background: #FFFFFF;
	border: 1px solid #E2E8F0;
	border-radius: 8px;
}

.icm-receipt-container .icm-receipt-card .icm-review-grid {
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px 24px;
}

.icm-receipt-container .icm-receipt-card .icm-fieldset-title {
	font-size: 17px;
	margin-bottom: 12px;
}

.icm-receipt-container .icm-receipt-card .icm-review-label {
	font-size: 13px;
}

.icm-receipt-container .icm-receipt-card .icm-review-value {
	font-size: 15px;
}

@media (max-width: 600px) {
	.icm-receipt-meta-grid,
	.icm-receipt-container .icm-receipt-card .icm-review-grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.icm-receipt-container {
		padding: 20px 16px;
	}
}

.icm-receipt-docs-list {
	list-style: none;
	margin: 14px 0 0 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.icm-receipt-doc-item {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 12px 16px;
	background: #F8FAFC;
	border: 1px solid #E2E8F0;
	border-radius: 6px;
	gap: 14px;
}

.icm-doc-item-main {
	display: flex;
	align-items: center;
	gap: 12px;
}

.icm-doc-item-icon {
	color: #64748B;
	display: flex;
}

.icm-doc-item-title {
	display: block;
	font-size: 14px;
	color: #1E293B;
}

.icm-doc-item-meta {
	display: block;
	font-size: 13.5px;
	color: #475569;
}

.icm-receipt-dichiarazioni {
	display: flex;
	flex-direction: column;
	gap: 14px;
	margin-top: 14px;
}

.icm-receipt-dich-item {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	padding: 14px 18px;
	background: #F8FAFC;
	border: 1px solid #CBD5E1;
	border-radius: 6px;
}

.icm-dich-icon {
	color: #059669;
	margin-top: 2px;
	flex-shrink: 0;
}

.icm-dich-text {
	font-size: 16px;
	color: #1E293B;
	margin: 6px 0;
	line-height: 1.55;
}

.icm-dich-tag {
	font-size: 12.5px;
	color: #475569;
	background: #E2E8F0;
	padding: 3px 8px;
	border-radius: 4px;
}

.icm-receipt-footer {
	margin-top: 32px;
	padding-top: 24px;
	border-top: 1px solid #E2E8F0;
	text-align: center;
}

.icm-receipt-footer-actions {
	display: flex;
	justify-content: center;
	margin-bottom: 14px;
}

.icm-receipt-footer-copy {
	font-size: 12.5px;
	color: #94A3B8;
	margin: 0;
}

/* ==========================================================================
   STAMPA E SALVATAGGIO PDF (@media print)
   ========================================================================== */

@page {
	size: A4;
	margin: 12mm;
}

@media print {
	/* Nascondi navigazione del sito, header, footer e banner WP */
	header,
	footer,
	nav,
	.header,
	.footer,
	.site-header,
	.site-footer,
	#masthead,
	#colophon,
	.sidebar,
	#adminbar,
	#wpadminbar,
	.icm-draft-topbar,
	.icm-receipt-topbar,
	.icm-receipt-footer-actions,
	.icm-doc-item-actions,
	.icm-btn-print,
	.icm-btn-logout,
	.icm-modal-backdrop,
	#icm-submit-modal {
		display: none !important;
	}

	#back_to_top,
	.back_to_top {
		display: none !important;
	}

	body {
		background: #FFFFFF !important;
		color: #000000 !important;
		font-size: 12pt !important;
		margin: 0 !important;
		padding: 0 !important;
	}

	.icm-wizard-container,
	.icm-receipt-container {
		box-shadow: none !important;
		border: none !important;
		padding: 0 !important;
		width: 100% !important;
		max-width: 100% !important;
	}

	.icm-receipt-hero {
		background: #FFFFFF !important;
		border: 1px solid #999999 !important;
		padding: 10pt !important;
		margin-bottom: 9pt !important;
	}

	.icm-receipt-hero-title {
		color: #000000 !important;
		font-size: 18pt !important;
	}

	.icm-receipt-code {
		color: #000000 !important;
		font-size: 11pt !important;
		font-weight: bold !important;
	}

	.icm-receipt-meta-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: 6pt !important;
		margin-bottom: 8pt !important;
	}

	.icm-receipt-meta-card {
		padding: 7pt !important;
	}

	.icm-receipt-disclaimer {
		margin-bottom: 8pt !important;
		padding: 8pt !important;
	}

	.icm-receipt-container .icm-receipt-card {
		display: block !important;
		width: 100% !important;
		box-sizing: border-box !important;
		border: 1px solid #CCCCCC !important;
		break-inside: auto;
		page-break-inside: auto;
		margin-bottom: 8pt !important;
		padding: 9pt !important;
	}

	.icm-receipt-container .icm-receipt-card .icm-review-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: 6pt 12pt !important;
	}

	.icm-receipt-card .icm-review-group,
	.icm-receipt-doc-item,
	.icm-receipt-dich-item {
		break-inside: avoid;
		page-break-inside: avoid;
	}

	.icm-receipt-card .icm-fieldset-title {
		break-after: avoid;
		page-break-after: avoid;
	}

	.icm-receipt-docs-list,
	.icm-receipt-dichiarazioni {
		gap: 5pt !important;
		margin-top: 5pt !important;
	}

	.icm-receipt-doc-item,
	.icm-receipt-dich-item {
		padding: 6pt 8pt !important;
	}

	.icm-receipt-dich-item .icm-dich-text {
		font-size: 10pt !important;
		line-height: 1.35 !important;
		margin: 3pt 0 !important;
	}

	.icm-receipt-footer {
		margin-top: 8pt !important;
		padding-top: 6pt !important;
		break-inside: avoid;
	}

	.icm-alert-info {
		background: #F8FAFC !important;
		border: 1px solid #94A3B8 !important;
		color: #000000 !important;
	}

	a {
		text-decoration: none !important;
		color: #000000 !important;
	}
}

/* Intestazioni coordinate di catalogo, corso e percorso candidatura. */
.icm-page-header {
	box-sizing: border-box;
	background: #FFFFFF;
	border: 1px solid var(--icm-border);
	border-left: 5px solid var(--icm-primary);
	border-radius: var(--icm-radius-lg);
	box-shadow: var(--icm-shadow-card);
	padding: clamp(24px, 3vw, 38px);
}

.icm-page-header .icm-page-header-eyebrow {
	display: block;
	margin: 0 0 10px;
	font-family: var(--icm-font-heading);
	font-size: 12px;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--icm-primary-secondary);
}

.icm-page-header .icm-page-header-title,
.icm-page-header .icm-hero-title {
	margin: 0 0 10px;
	font-family: var(--icm-font-heading);
	font-size: clamp(28px, 3vw, 38px);
	font-weight: 800;
	line-height: 1.2;
	letter-spacing: -.015em;
	color: var(--icm-text-heading);
}

.icm-page-header .icm-page-header-lead {
	max-width: 800px;
	margin: 0;
	font-family: var(--icm-font-body);
	font-size: 16px;
	font-weight: 400;
	line-height: 1.55;
	color: var(--icm-text-muted);
}

.icm-page-header.icm-catalog-header {
	min-height: 0;
	margin-bottom: 26px;
	padding: clamp(24px, 3vw, 38px);
	background: #FFFFFF;
	border: 1px solid var(--icm-border);
	border-left: 5px solid var(--icm-primary);
	box-shadow: var(--icm-shadow-card);
}

.icm-page-header.icm-catalog-header-image {
	background-size: cover;
	background-position: center;
	border-left-color: var(--icm-primary);
}

.icm-catalog-header-image .icm-page-header-eyebrow,
.icm-catalog-header-image .icm-page-header-title,
.icm-catalog-header-image .icm-page-header-lead {
	color: #FFFFFF;
}

.icm-single-course-wrapper { padding-top: 20px; }

.icm-page-header.icm-hero-titlebar {
	margin-bottom: 24px;
	padding-bottom: clamp(24px, 3vw, 38px);
	border-bottom: 1px solid var(--icm-border);
	border-left: 5px solid var(--icm-primary);
}

.icm-page-header.icm-hero-titlebar .icm-hero-subtitle { margin-bottom: 18px; }

.icm-page-header.icm-hero-titlebar .icm-hero-brand-tag {
	padding: 0;
	background: transparent;
	color: var(--icm-primary-secondary);
	font-size: 12px;
}

/* La pagina candidature usa il titolo del plugin; il banner Bridge non serve. */
body.icm-candidature-page .title_outer { display: none !important; }

.icm-candidate-page-header {
	max-width: 840px;
	margin: 28px auto 20px;
}

.icm-candidate-page-header + .icm-wizard-container { margin-top: 20px; }

@media (max-width: 767px) {
	.icm-page-header.icm-catalog-header,
	.icm-page-header.icm-hero-titlebar,
	.icm-candidate-page-header {
		padding: 20px;
		margin-bottom: 20px;
	}
	.icm-page-header .icm-page-header-title,
	.icm-page-header .icm-hero-title { font-size: clamp(23px, 6vw, 30px); }
	.icm-page-header .icm-page-header-lead { font-size: 15px; }
	.icm-candidate-page-header { margin: 20px 20px 0; }
}

@media print {
	.icm-candidate-page-header { display: none !important; }
}

/* Dedicated archive shell; inner cards and responsive sizes remain shared. */
.icm-course-archive{margin:0 auto;box-sizing:border-box}
.icm-course-archive:not(.container_inner){width:calc(100% - 40px);max-width:1300px}
.icm-course-archive .icm-catalog-wrapper{margin-top:0}
.icm-archive-scope{margin:0 0 22px;font-size:16px}
@media(max-width:767px){.icm-course-archive.container_inner{width:calc(100% - 28px);max-width:none}}

/* One full-width, actionable checklist before the final submission bar. */
#icm-missing-docs-alert.icm-document-tasks{display:flex;align-items:flex-start;gap:14px;width:100%;box-sizing:border-box;padding:20px 22px;margin:24px 0;background:#fff8ed;border:1px solid #f0d7ac;border-left:4px solid #b96b0c;border-radius:8px;color:#50380f;text-align:left}
#icm-missing-docs-alert .icm-alert-icon{flex:0 0 22px;margin-top:3px;color:#98600c}
#icm-missing-docs-alert>div{min-width:0;flex:1}
#icm-missing-docs-alert strong{display:block;font-size:17px;line-height:1.45}
#icm-missing-docs-alert p{margin:8px 0 0;font-size:16px;line-height:1.6;color:inherit}
#icm-missing-docs-alert ul{margin:10px 0 0;padding-left:20px}
#icm-missing-docs-alert li{padding-block:5px;font-size:16px;line-height:1.55;overflow-wrap:anywhere}
#icm-missing-docs-alert a{color:#79430a;font-weight:700;text-decoration:underline;text-underline-offset:3px}
#icm-missing-docs-alert a:focus-visible{outline:2px solid #79430a;outline-offset:4px}
.icm-doc-card{scroll-margin-top:150px}.icm-doc-card:focus{outline:3px solid #d8223b;outline-offset:4px}
@media(max-width:600px){#icm-missing-docs-alert.icm-document-tasks{padding:16px;gap:10px}}

/* Receipt: a non-interactive status, a primary print action, a quiet exit link. */
#icm-receipt-view .icm-receipt-status{display:inline-flex;align-items:center;gap:8px;color:#176440;background:#eaf7ef;padding:6px 10px;border-radius:4px;font-size:13px;font-weight:700;line-height:1.4;box-shadow:none;white-space:normal;text-transform:none}
#icm-receipt-view .icm-receipt-exit{display:inline-flex;align-items:center;gap:6px;color:#526174;background:transparent;border:0;box-shadow:none;padding:12px 4px;font-size:15px;font-weight:600;text-decoration:underline;text-underline-offset:4px}
#icm-receipt-view .icm-draft-topbar-actions{gap:18px;flex-wrap:wrap;flex-shrink:0}
#icm-receipt-view .icm-receipt-topbar{gap:20px;flex-wrap:wrap}
#icm-receipt-view .icm-draft-user-info{min-width:0}
#icm-receipt-view .icm-user-email{overflow-wrap:anywhere}
#icm-receipt-view .icm-btn-primary{width:auto;padding:10px 22px;height:auto;min-height:44px}
#icm-receipt-view .icm-receipt-topbar .icm-btn-print{color:#fff!important}
@media(max-width:480px){#icm-receipt-view .icm-draft-topbar-actions{gap:12px}#icm-receipt-view .icm-draft-topbar-actions .icm-receipt-status{flex-basis:100%}}
#icm-receipt-view .icm-receipt-help{margin:28px 0;padding:22px;border:1px solid #dce3eb;border-left:4px solid var(--icm-primary);border-radius:8px;background:#f8fafc}
#icm-receipt-view .icm-receipt-help summary{cursor:pointer;font-size:17px;line-height:1.6;font-weight:600;color:#263449}
#icm-receipt-view .icm-receipt-help summary span{color:var(--icm-primary);text-decoration:underline;text-underline-offset:3px}
#icm-receipt-view .icm-receipt-help p{margin:12px 0;font-size:15px;line-height:1.6}
#icm-change-request-form label{display:block;margin:20px 0 8px;font-weight:700}
#icm-change-message{display:block;box-sizing:border-box;width:100%;max-width:100%;min-height:140px;padding:14px;border:1px solid #bdc9d8;border-radius:6px;background:#fff;color:#1e293b;font:inherit;line-height:1.6;resize:vertical}
#icm-change-request-form .icm-btn{margin-top:8px}
#icm-change-request-form .icm-change-success{color:#176440;font-weight:600}
#icm-change-request-form .icm-change-error{color:#a32323;font-weight:600}
#icm-change-request-form :focus-visible,.icm-receipt-help summary:focus-visible{outline:2px solid var(--icm-primary);outline-offset:4px}
@media print{
	#icm-receipt-view .icm-receipt-help{display:none!important}
	body.icm-candidature-page .icm-candidate-page-header{display:none!important}
	body.icm-candidature-page .content,body.icm-candidature-page .content_inner{margin-top:0!important;padding-top:0!important;min-height:0!important}
	#icm-receipt-view .icm-receipt-card,#icm-receipt-view .icm-receipt-hero,#icm-receipt-view .icm-receipt-meta-grid,#icm-receipt-view .icm-receipt-disclaimer{break-inside:avoid!important;page-break-inside:avoid!important}
	#icm-receipt-view .icm-fieldset-title{break-after:avoid!important;page-break-after:avoid!important}
	#icm-receipt-view p{orphans:3;widows:3}
	#icm-receipt-view .icm-receipt-docs-list,#icm-receipt-view .icm-receipt-dichiarazioni{display:block!important}
	#icm-receipt-view .icm-receipt-doc-item,#icm-receipt-view .icm-receipt-dich-item{margin-bottom:5pt!important;break-inside:avoid!important;page-break-inside:avoid!important}
	#icm-receipt-view .icm-receipt-status{background:none!important;color:#000!important;box-shadow:none!important;padding:0!important}
}

/* Receipt assistance: anchor clears the sticky header and remains distinct from print. */
#icm-richiesta-modifiche { scroll-margin-top: 160px; }
.icm-receipt-help input[type="file"] { display: block; max-width: 100%; margin: 12px 0; font: inherit; }
.icm-receipt-topbar .icm-receipt-report { padding: 10px 22px; min-height: 44px; }

/* Authenticated editorial previews, excluded from shared caches. */
.icm-staff-preview-label{background:#fff4d6;color:#684400;border:1px solid #eacb74;border-radius:8px;padding:10px 14px;font-weight:600;font-size:14px;line-height:1.5;margin:0 0 16px;}
