html, body {
	height: 100%;
}

body {
	display: flex;
	flex-direction: column;
	min-height: 100vh;
	font-family: var(--font-family, "Segoe UI", Arial, sans-serif) !important;
}

.wrapper {
	flex: 1; /* prende tutto lo spazio rimanente */
}

.footer {
	margin-top: auto; /* spinge il footer in fondo */
}

.footer-main {
	background-color: var(--navbar-bg, #2b4c81);
}

.footer-accessibility {
	color: var(--color-text, #000);
}

a, a:hover, a:focus {
	color: inherit;
	text-decoration: none;
	transition: all 0.3s;
}

/*navBar*/

.navbar-custom {
	background-color: var(--navbar-bg, #2b4c81);
}

.container-custom {
	margin-top: 40px;
}

.nav-link-custom {
	color: var(--navbar-text, white);
	transition: color 0.3s ease;
}

.nav-link-custom:hover {
	color: var(--navbar-text-hover, rgba(255, 255, 255, 0.8));
}

.navbar-custom .dropdown-toggle {
	color: var(--navbar-text, #fff);
}

.navbar-user-name {
	color: var(--navbar-text, #fff);
}

.message-counter-badge {
	font-size: 10px;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible {
	outline: 3px solid #ffbf47;
	outline-offset: 2px;
}



/*intestazione*/
.site-title {
	color: var(--color-primary-light, rgb(88, 144, 182));
}

.site-subtitle {
	color: var(--color-secondary, #2483a2);
	font-size: 16px;
	font-family: "Arial Rounded MT", Arial, sans-serif;
}

.custom-title-menu {
	width: 100%;
	margin-bottom: 5px;
	border-radius: 4px;
	text-align: center;
	color: black;
	font-weight: bold;
}

.about-border {
	display: block;
	width: 80px;
	height: 3px;
	background: var(--color-secondary, #2483a2);
	margin: 5px auto;
}

/* ========================================
   SUPPORTO TEMI - TRANSIZIONI DISABILITATE
   ======================================== */

/* NOTA: Le transizioni e animazioni di cambio tema sono state 
   completamente rimosse per eliminare l'effetto dissolvenza 
   ad ogni caricamento/postback della pagina.
   
   Il sistema di switch temi è stato disabilitato, 
   viene usato solo il tema default.
*/

/* ========================================
   OVERRIDE COLORI CON VARIABILI CSS
   ======================================== */

/* Titolo testata */
.card > .card-body h3[style*="color: rgb(88, 144, 182)"] {
	color: var(--color-primary-light, rgb(88, 144, 182)) !important;
}

/* Link generici */
a:not(.btn):not(.nav-link):not(.dropdown-item) {
	color: var(--color-primary, inherit);
}

a:not(.btn):not(.nav-link):not(.dropdown-item):hover {
	color: var(--color-primary-dark, inherit);
}

/* Focus visibile per accessibilità */
*:focus-visible {
	outline: 2px solid var(--color-primary, #0066cc);
	outline-offset: 2px;
}

/* ========================================
   CLASSI HELPER PER TEMI
   ======================================== */

/* Testo con colori tema */
.text-theme-primary { color: var(--color-primary) !important; }
.text-theme-secondary { color: var(--color-secondary) !important; }
.text-theme-accent { color: var(--color-accent) !important; }

/* Sfondo con colori tema */
.bg-theme-primary { background-color: var(--color-primary) !important; }
.bg-theme-secondary { background-color: var(--color-secondary) !important; }
.bg-theme-accent { background-color: var(--color-accent) !important; }
.bg-theme-light { background-color: var(--color-background-alt) !important; }

/* Bordi con colori tema */
.border-theme-primary { border-color: var(--color-primary) !important; }
.border-theme-secondary { border-color: var(--color-secondary) !important; }

/* Side menu condiviso */
.transition {
	transition: all 0.3s ease;
}

#menuContent {
	max-height: calc(100vh - 80px);
	overflow-y: auto;
}

.side-menu-content,
.side-menu-body {
	font-size: 0.9rem;
}

#sidebarContainer .nav-link {
	border-left: 3px solid transparent;
	transition: background 0.2s, border-left 0.2s;
}

#sidebarContainer .nav-link.side-menu-locked {
	align-items: center;
	display: flex;
	gap: 0.35rem;
	justify-content: space-between;
}

#sidebarContainer .side-menu-lock-icon {
	color: #6c757d;
	flex: 0 0 auto;
	font-size: 0.78rem;
	opacity: 0.8;
}

#sidebarContainer .nav-link:hover {
	background-color: var(--color-background-alt, #f8f9fa);
	border-left-color: var(--color-primary, #0d6efd);
	text-decoration: none;
}

#sidebarContainer .nav-link.fw-bold {
	border-left-color: var(--color-primary, #0d6efd);
	background-color: var(--color-background-alt, #f8f9fa);
}

#sidebarContainer .nav-link.side-menu-consultazione {
	margin-left: 0.75rem;
	color: #5f6b7a !important;
	font-size: 0.86rem;
	border-left-style: dashed;
}

#sidebarContainer .nav-link.side-menu-consultazione:hover,
#sidebarContainer .nav-link.side-menu-consultazione.fw-bold {
	color: var(--color-primary-dark, #24436f) !important;
	background-color: #f5f7fa;
}

#sidebarContainer .nav-link.side-menu-action-danger {
	border-left-color: #dc3545;
	background-color: #fff5f5;
	color: #842029 !important;
	font-weight: 700;
}

#sidebarContainer .nav-link.side-menu-action-danger:hover,
#sidebarContainer .nav-link.side-menu-action-danger.fw-bold {
	border-left-color: #b02a37;
	background-color: #f8d7da;
	color: #58151c !important;
}

.side-menu-toggle {
	display: inline-flex;
	align-items: center;
	padding: 2px 4px;
	text-decoration: none;
}

.side-menu-toggle:hover {
	text-decoration: underline;
}




