	.btn-check:checked+.btn {
		background-color	: #006040!important;
		color				: white!important;
	}	
	
	.btn-check:hover+.btn {
		background-color	: #006040!important;
		color				: white!important;
	}
	
	.home_logo {
		width 				: 50vw;
		position			: absolute;
		top					: 50%;
		left				: 50%;
		transform			: translate(-50%, -50%);
		animation-name		: example;
		animation-duration  : 4s;
	}
	
	.home_logo_img {
		width				: 100%;
	}
	
	.home_logo_text {
		text-align			: center;
		color				: black;
	}

	.satisfapp-primary{
		background-color	: #A34DF3!important;
	}
	
	.sa-title {
		color: #59A8EA; 
	}

	.background_image {
		background-image	: url("/scuola_civica/res/img/bg-01.jpg");
		width				: 100%;
		height				: 100%;
		background-repeat	: no-repeat;
		background-position	: center;
		background-size		: cover;
	}
	
	.background_placeholder {
		width				: 100%;
		background-repeat	: no-repeat;
		background-position	: center;
		background-size		: cover;
		position			: absolute;
		top					: 0px;
		left				: 0px;
		right				: 0px;
		bottom				: 0px;
	}
	
	.absolute {
		position			: absolute;
	}
	
	.login_wrapper {
		overflow			: hidden;
		display				: flex;
		flex-wrap			: wrap;
		position			: relative;
		border-radius		: 25px;
		z-index				: 1;
		top					: -30px;
		width				: 80%;
		margin				: auto;
		box-shadow			: 0 5px 30px 0 rgba(3,216,222,.2);
		-moz-box-shadow		: 0 5px 30px 0 rgba(3,216,222,.2);
		-webkit-box-shadow	: 0 5px 30px 0 rgba(3,216,222,.2);
		-o-box-shadow		: 0 5px 30px 0 rgba(3,216,222,.2);
		-ms-box-shadow		: 0 5px 30px 0 rgba(3,216,222,.2);		
	}
	
	.login_wrapper:hover .sfondo_login{
		left				: 0;
	}
	
	.sfondo_login {
		background			: #a64bf4;
		background			: -webkit-linear-gradient(right,#00dbde,#fc00ff,#00dbde,#fc00ff);
		background			: -o-linear-gradient(right,#00dbde,#fc00ff,#00dbde,#fc00ff);
		background			: -moz-linear-gradient(right,#00dbde,#fc00ff,#00dbde,#fc00ff);
		background			: linear-gradient(right,#00dbde,#fc00ff,#00dbde,#fc00ff);
		
		-webkit-transition	: all .4s;
		-o-transition		: all .4s;
		-moz-transition		: all .4s;
		transition			: all .4s;
		
		position			: absolute;
		z-index				: -1;
		top					: 0px;
		width				: 300%;
		left				: -100%;
		height				: 60px;
	}
	
	.login_button:hover {
		cursor				: pointer!important;
	}
	
	.login_button {
		border-radius		: 25px;
		width				: 100%;
		height				: 60px;
		border				: none;
		display				: flex;
		justify-content		: center;
		background			: none;
		font-size			: 20px;
		padding				: 14px;
		font-weight			: bold;
	}

	.sa-sidebar{padding:0 12px}.sa-sidebar-logo{margin:0 -12px;padding:10px;text-align:center}.sa-sidebar-logo img{width:min(250px,100%)}
	.sa-menu-home,.sa-menu-link{display:flex;align-items:center;gap:10px;color:#fff!important;text-decoration:none!important;border-radius:6px}
	.sa-menu-home{padding:11px 12px;margin:8px 0;font-weight:700}.sa-menu-link{padding:8px 10px;margin:2px 0;font-size:.91rem}
	.sa-menu-home:hover,.sa-menu-link:hover{background:rgba(255,255,255,.12)}.sa-menu-home.active,.sa-menu-link.active{background:#06c;color:#fff!important}
	.sa-menu-group{padding:11px 10px!important;background:transparent!important;color:#fff!important;font-size:.82rem;font-weight:700;text-transform:uppercase;box-shadow:none!important}
	.sa-menu-group::after{filter:brightness(0) invert(1);background-size:14px}.sa-menu-group:not(.collapsed){background:rgba(255,255,255,.08)!important}
	.sa-sidebar .accordion-body{background:rgba(0,0,0,.12)}

	table.table {
		width				: 100%;
	}

	table.table th,
	table.table td {
		white-space			: normal;
		overflow-wrap		: anywhere;
		word-break			: break-word;
		vertical-align		: middle;
	}

	table.table td.text-center,
	table.table td.text-end,
	table.table td .text-nowrap {
		overflow-wrap		: normal;
		word-break			: normal;
	}

	/* Colonne azioni: occupano solo lo spazio necessario ai pulsanti. */
	table.table th.sa-table-actions,
	table.table td.sa-table-actions,
	table.table td:has(.btn) {
		width				: 1%;
		min-width			: max-content;
		white-space			: nowrap;
		overflow-wrap		: normal;
		word-break			: normal;
		text-align			: center;
	}

	table.table td.sa-table-actions .btn,
	table.table td:has(.btn) .btn {
		display				: inline-flex;
		align-items			: center;
		justify-content		: center;
		gap					: .35rem;
		white-space			: nowrap;
		word-break			: normal;
	}

	table.table td.sa-table-actions > form {
		display				: inline-block;
		margin				: 0;
	}

	table.table td.sa-table-actions > form + form {
		margin-left			: .35rem;
	}

	/* Confronto struttura DB: mantiene leggibili intestazioni e colonne tecniche. */
	table.sa-schema-table {
		min-width			: 920px;
		table-layout			: auto;
	}

	table.sa-schema-table th {
		white-space			: nowrap;
		overflow-wrap		: normal;
		word-break			: normal;
	}

	table.sa-schema-table .sa-schema-select {
		width				: 54px;
		min-width			: 54px;
		max-width			: 54px;
		white-space			: nowrap;
		overflow-wrap		: normal;
		word-break			: normal;
		text-align			: center;
	}

	table.sa-schema-table td.sa-schema-select .form-check-input {
		float				: none !important;
		display				: inline-block;
		margin				: 0 !important;
		vertical-align		: middle;
	}

	table.sa-schema-table td:nth-child(2) {
		min-width			: 105px;
		white-space			: nowrap;
	}

	table.sa-schema-table td code {
		white-space			: nowrap;
		overflow-wrap		: normal;
		word-break			: normal;
	}

	.sa-wizard-navbar {
		display				: flex;
		align-items			: stretch;
		flex-wrap			: nowrap;
		gap					: 0;
		padding				: 6px;
		border				: 1px solid #d4d4d4;
		border-radius		: 8px;
		background			: #f8f9fa;
		overflow-x			: auto;
		overflow-y			: hidden;
	}

	.sa-wizard-step {
		position			: relative;
		display				: flex;
		align-items			: center;
		gap					: 10px;
		flex				: 1 0 170px;
		min-width			: 0;
		padding				: 10px 30px 10px 12px;
		border-radius		: 6px;
		color				: #5d7083;
		font-weight			: 700;
	}

	.sa-wizard-step:not(:last-child)::after {
		content				: "\f054";
		position			: absolute;
		right				: 10px;
		top					: 50%;
		transform			: translateY(-50%);
		font-family			: "Font Awesome 6 Free";
		font-weight			: 900;
		color				: #a3a3a3;
		font-size			: 0.85rem;
	}

	.sa-wizard-icon {
		display				: inline-flex;
		align-items			: center;
		justify-content		: center;
		flex				: 0 0 34px;
		width				: 34px;
		height				: 34px;
		border-radius		: 50%;
		border				: 1px solid #c5c7c9;
		background			: #ffffff;
		color				: #5d7083;
	}

	.sa-wizard-label {
		overflow			: hidden;
		text-overflow		: ellipsis;
		white-space			: nowrap;
	}

	.sa-wizard-step.is-done {
		color				: #006b4f;
	}

	.sa-wizard-step.is-done .sa-wizard-icon {
		border-color			: #008055;
		background			: #008055;
		color				: #ffffff;
	}

	.sa-wizard-step.is-done::after {
		color				: #008055;
	}

	.sa-wizard-step.is-current {
		background			: #0066cc;
		color				: #ffffff;
		box-shadow			: 0 2px 8px rgba(0, 102, 204, 0.2);
	}

	.sa-wizard-step.is-current .sa-wizard-icon {
		border-color			: #ffffff;
		background			: #ffffff;
		color				: #0066cc;
	}

	@media (max-width: 575.98px) {
		.sa-wizard-step {
			flex-basis			: 150px;
		}

		.sa-wizard-label {
			white-space			: normal;
		}
	}

	.sa-day-picker {
		display				: grid;
		grid-template-columns: repeat(auto-fit, minmax(135px, 1fr));
		gap					: 10px;
	}

	.sa-day-check {
		position			: absolute;
		opacity				: 0;
		pointer-events		: none;
	}

	.sa-day-option {
		position			: relative;
		display				: flex;
		align-items			: center;
		gap					: 10px;
		min-height			: 48px;
		padding				: 10px 38px 10px 12px;
		border				: 1px solid #d4d4d4;
		border-radius		: 8px;
		background			: #ffffff;
		color				: #17334f;
		font-weight			: 700;
		cursor				: pointer;
		transition			: background-color .15s ease, border-color .15s ease, color .15s ease, box-shadow .15s ease;
	}

	.sa-day-option:hover {
		border-color			: #0066cc;
		box-shadow			: 0 2px 8px rgba(0, 102, 204, 0.12);
	}

	.sa-day-option-icon {
		display				: inline-flex;
		align-items			: center;
		justify-content		: center;
		flex				: 0 0 30px;
		width				: 30px;
		height				: 30px;
		border-radius		: 50%;
		background			: #eef5ff;
		color				: #0066cc;
	}

	.sa-day-option-text {
		overflow-wrap		: anywhere;
		line-height			: 1.15;
	}

	.sa-day-option-check {
		position			: absolute;
		right				: 12px;
		top					: 50%;
		transform			: translateY(-50%) scale(.8);
		display				: inline-flex;
		align-items			: center;
		justify-content		: center;
		width				: 22px;
		height				: 22px;
		border-radius		: 50%;
		background			: rgba(255, 255, 255, 0.25);
		color				: #ffffff;
		opacity				: 0;
		transition			: opacity .15s ease, transform .15s ease;
	}

	.sa-day-check:checked + .sa-day-option {
		border-color			: #0066cc;
		background			: #0066cc;
		color				: #ffffff;
		box-shadow			: 0 2px 10px rgba(0, 102, 204, 0.22);
	}

	.sa-day-check:checked + .sa-day-option .sa-day-option-icon {
		background			: #ffffff;
		color				: #0066cc;
	}

	.sa-day-check:checked + .sa-day-option .sa-day-option-check {
		opacity				: 1;
		transform			: translateY(-50%) scale(1);
	}

	.sa-day-check:focus + .sa-day-option {
		outline				: 2px solid #995c00;
		outline-offset		: 2px;
	}

	.sa-choice-grid {
		display				: grid;
		grid-template-columns: repeat(auto-fill, 220px);
		gap					: 12px;
		grid-auto-rows		: 76px;
		justify-content		: start;
	}

	.sa-choice-group {
		margin-top			: 16px;
		--sa-choice-accent	: #0066cc;
		--sa-choice-soft	: #eef5ff;
	}

	.sa-choice-group:first-of-type {
		margin-top			: 8px;
	}

	.sa-choice-group:nth-of-type(6n+1) {
		--sa-choice-accent	: #0066cc;
		--sa-choice-soft	: #eef5ff;
	}

	.sa-choice-group:nth-of-type(6n+2) {
		--sa-choice-accent	: #008055;
		--sa-choice-soft	: #eaf8f2;
	}

	.sa-choice-group:nth-of-type(6n+3) {
		--sa-choice-accent	: #b35c00;
		--sa-choice-soft	: #fff2e2;
	}

	.sa-choice-group:nth-of-type(6n+4) {
		--sa-choice-accent	: #7a4cc2;
		--sa-choice-soft	: #f2ecff;
	}

	.sa-choice-group:nth-of-type(6n+5) {
		--sa-choice-accent	: #c63d5f;
		--sa-choice-soft	: #fff0f4;
	}

	.sa-choice-group:nth-of-type(6n) {
		--sa-choice-accent	: #007c89;
		--sa-choice-soft	: #e8f8fa;
	}

	.sa-choice-group-title {
		display				: flex;
		align-items			: center;
		gap					: 10px;
		margin-bottom		: 8px;
		color				: var(--sa-choice-accent);
		font-size			: 0.95rem;
		font-weight			: 800;
		text-transform		: uppercase;
	}

	.sa-choice-group-title::after {
		content				: "";
		flex				: 1 1 auto;
		height				: 2px;
		background			: linear-gradient(90deg, var(--sa-choice-accent), #d4d4d4);
		opacity				: .45;
	}

	.sa-choice-check {
		position			: absolute;
		opacity				: 0;
		pointer-events		: none;
	}

	.sa-choice-option {
		position			: relative;
		display				: flex;
		align-items			: center;
		gap					: 12px;
		height				: 100%;
		min-height			: 76px;
		padding				: 12px 42px 12px 14px;
		border				: 1px solid #d4d4d4;
		border-left			: 4px solid var(--sa-choice-accent);
		border-radius		: 8px;
		background			: linear-gradient(90deg, var(--sa-choice-soft), #ffffff 42%);
		color				: #17334f;
		cursor				: pointer;
		transition			: background-color .15s ease, border-color .15s ease, color .15s ease, box-shadow .15s ease;
	}

	@media (max-width: 575.98px) {
		.sa-choice-grid {
			grid-template-columns: 1fr;
		}
	}

	.sa-choice-option:hover {
		border-color			: var(--sa-choice-accent);
		box-shadow			: 0 2px 10px rgba(0, 0, 0, 0.12);
	}

	.sa-choice-option-icon {
		display				: inline-flex;
		align-items			: center;
		justify-content		: center;
		flex				: 0 0 38px;
		width				: 38px;
		height				: 38px;
		border-radius		: 50%;
		background			: #ffffff;
		color				: var(--sa-choice-accent);
	}

	.sa-choice-option-text {
		display				: flex;
		flex-direction		: column;
		justify-content		: center;
		min-width			: 0;
		line-height			: 1.2;
	}

	.sa-choice-option-title {
		font-weight			: 700;
		overflow-wrap		: anywhere;
		display				: -webkit-box;
		-webkit-line-clamp	: 2;
		-webkit-box-orient	: vertical;
		overflow			: hidden;
	}

	.sa-choice-option-subtitle {
		margin-top			: 2px;
		color				: #5d7083;
		font-size			: 0.85rem;
	}

	.sa-choice-option-check {
		position			: absolute;
		right				: 12px;
		top					: 50%;
		transform			: translateY(-50%) scale(.8);
		display				: inline-flex;
		align-items			: center;
		justify-content		: center;
		width				: 22px;
		height				: 22px;
		border-radius		: 50%;
		background			: rgba(255, 255, 255, 0.25);
		color				: #ffffff;
		opacity				: 0;
		transition			: opacity .15s ease, transform .15s ease;
	}

	.sa-choice-check:checked + .sa-choice-option {
		border-color			: var(--sa-choice-accent);
		background			: var(--sa-choice-accent);
		color				: #ffffff;
		box-shadow			: 0 2px 10px rgba(0, 0, 0, 0.22);
	}

	.sa-choice-check:checked + .sa-choice-option .sa-choice-option-icon {
		background			: #ffffff;
		color				: var(--sa-choice-accent);
	}

	.sa-choice-check:checked + .sa-choice-option .sa-choice-option-subtitle {
		color				: rgba(255, 255, 255, 0.82);
	}

	.sa-choice-check:checked + .sa-choice-option .sa-choice-option-check {
		opacity				: 1;
		transform			: translateY(-50%) scale(1);
	}

	.sa-choice-check:focus + .sa-choice-option {
		outline				: 2px solid #995c00;
		outline-offset		: 2px;
	}

	.sa-form-actions {
		display				: flex;
		justify-content		: flex-end;
		align-items			: center;
		gap					: 8px;
		width				: 100%;
		padding-top			: 4px;
	}
