@charset "UTF-8";


:root {
	--border-color: #808080;
	--link-disabled-color: #808080;

	--body-background-color: #ECF2DE;

	--header-background-color: #F8F9FA;
	--header-font-size: 1.2rem;
	--header-height: 60px;

	--footer-background-color: #F8F9FA;
	--footer-height: 80px;

	--sideMenu-background-color:#F8F9FA;
	--sideMenu-link-color:#93C13D;
	--sideMenu-link-hover-color: #2F9638;
	--sideMenu-link-font-weight: 500;

	--navbar-link-color: #93C13D;
	--navbar-link-hover-color: #2F9638;
	--navbar-link-font-weight: 500;

	--grid-background-color:#f2f2f2;
	--grid-header-background-color:#808080;
	--grid-header-font-color:#ffffff;
	--grid-header-border-color:#f2f2f2;
	--grid-filter-background-color:#A0A0A0;
	--grid-filter-font-color:#ffffff;
	--grid-rows-odd-background-color:#ffffff;
	--grid-rows-even-background-color:#E1F2C1;

	--grid-navigation-background-color:#ffffff;

	--grid-action-font-color:#000000;
	--grid-action-hover-font-color:#2F9638;

	--tabbed-active-background-color: #FFFEEF;
	--tabbed-active-font-color: #2F9638;
	--tabbed-background-color: #A0A0A0;
	--tabbed-font-color: #ffffff;

	--checkbox-color:#2F9638;

	--inputPanel-background-color:transparent;
	--inputPanel-border-color:transparent;
	--inputPanel-row-background-color:transparent;
	--inputPanel-row-label-color:#ffffff;
	--inputPanel-row-label-background-color:#78917B;
	--inputPanel-row-info-color:#000000;
	--inputPanel-row-info-background-color:#ffffff;

	--button-background-color:#808080;
	--button-font-color:#f2f2f2;

	--dialog-background-color:#ffffff;
	--dialog-body-color:#FFFEEF;
	--dialog-header-background-color:#A0A0A0;
	--dialog-header-font-color:#f2f2f2;

	--palette-header-font-color:#808080;
	--palette-background-color:#f2f2f2;
	--palette-list-background-color:#ffffff;
	--palette-list-font-color:#808080;
	--palette-command-background-color:#808080;
	--palette-command-font-color:#f2f2f2;

}



html, body {
	font-size: 16px;
	margin: 0;
	padding: 0;
	min-height: 100%;
	height: 100%;       /* importante: il body occupa tutta la finestra */
	width: 100%;       /* importante: il body occupa tutta la finestra */
	margin: 0;          /* rimuove margini di default */

	/*	font-family: var(--bs-body-font-family);
		font-size: var(--bs-body-font-size);
		font-weight: var(--bs-body-font-weight);
		line-height: var(--bs-body-line-height);
		text-align: var(--bs-body-text-align);

	*/
	color: #495057;
	background-color: var(--body-background-color);
	-webkit-text-size-adjust: 100%;
	-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}

body {
	display: flex;
	flex-direction: column;  /*allinea i figli in colonna*/
}

table {
	/* table-layout: fixed;*/ /* le celle rispettano larghezze impostate */
	width: 100%;         /* la tabella occupa tutta la larghezza */
	border-collapse: collapse; /* evita spazi extra */
	/*border: 1px solid black;*/
	margin:0;
}

td, th {
	height: auto;      /* lascia che si adatti al contenuto */
	padding: 0px;        /* opzionale: riduce spazio interno */
	line-height: 1.2;  /* controlla compattezza verticale */
	vertical-align: middle; /* allinea il contenuto in alto */
	margin: 0;        /* opzionale: riduce spazio interno */
}


div{
	padding: 0;        /* opzionale: riduce spazio interno */
	margin: 0;        /* opzionale: riduce spazio interno */
}


input{
	width: auto;       /* occuperà tutto lo spazio disponibile */
	max-width: 200px;  /* ma non supererà mai i 300px */
}

.list-unstyled li{
	background-color: red;
}

/*************************
	BUTTONS
*************************/

.btn-secondary {
	--bs-btn-color: var(--button-font-color);
	--bs-btn-bg: var(--button-background-color);
	font-size:1.1rem;
	--bs-btn-border-color: var(--border-color);
	--bs-btn-hover-color: #ffffff;
	--bs-btn-hover-bg: #5f5f5f;
	--bs-btn-hover-border-color: #8b867f;
	--bs-btn-focus-shadow-rgb: 186, 180, 173;
	--bs-btn-active-color: #fff;
	--bs-btn-active-bg: #8b867f;
	--bs-btn-active-border-color: #837d77;
	--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
	--bs-btn-disabled-color: #fff;
	--bs-btn-disabled-bg: #aea79f;
	--bs-btn-disabled-border-color: #aea79f;
}


/*************************
	PORTAL HEADER
*************************/

.page-header{
	width: 100%; /* si estende per tutta la pagina */
	background-color: var(--header-background-color);
	/*background-color: red;*/
	margin: 0px;
	align-items: center;   /* centra verticalmente */
	height:var(--header-height);
	line-height: var(--header-height);
	border-bottom: 2px solid var(--border-color);

}

.logo-portal{   /* logo del portale*/
	width:220px;
	padding-left: 1rem;
	padding-right: 1rem;
}
.logo-portal img{
	width:100%;
}

.sign-out{
	text-align:right;
	padding-right: 1rem;
}

.navbar-collapse {
	padding-left: 3rem;
}
.nav-link {
	margin-right: 1.5rem;
	padding-top: 0.5rem;
	font-weight: var(--navbar-link-font-weight);
	font-size:  var(--header-font-size);
	color: var(--navbar-link-color);
}



.navbar .nav-link:hover, .nav-link:focus {
	display: block;
	background: none;
	border: 0;
	color: var(--navbar-link-hover-color);
	font-size:  1.3rem;
	font-weight: 700;
	text-decoration: none;
}

.navbar .nav-link.active, .nav-link.show {
	color: var(--navbar-link-color);
	text-decoration: underline;
	font-size:  1.3rem;
	font-weight: 700;
}



/*************************
	PORTAL FOOTER
***************************/

.page-footer{
	width: 100%; /* si estende per tutta la pagina */
	border-top: 2px solid var(--border-color);
	background-color: var(--footer-background-color);
	/*background-color: blue;*/
	text-align: center;
	height:var(--footer-height);
	line-height: var(--footer-height);
}


/*************************
	PORTAL CONTENT
***************************/

.page-content{
	display: flex;      /* mette i figli in riga */
	gap: 0px;          /* spazio tra i div */
	flex:1;	/* adatta l'altezza allo spazio rimanente sulla pagina'*/
	/*border: 3px solid black;*/
	background-color: var(--body-background-color);
	/*background-color: yellow;*/
	width:100%;
	/*overflow: auto;*/ /* scroll se necessario */
}

/*************************
	SIGN IN PAGE
***************************/

.content-center-signin{
	display: flex;
	justify-content: center; /* centro in orizzontale */
	align-items: center;      /* centro verticale */
	border: 1px solid black;
	width:100%;
}

.panel-signin{
	width:350px;
	background-color: #FFFFFF;
	border: 2px solid;
	border-radius: 1rem;
	text-align:center;

}

.panel-signin .feedbackPanel{
	list-style: none;/* rimuove i pallini dalla lista feedback */
}

.panel-signin .feedbackPanel li{
	color: red;
	font-weight: 500;
}

/*************************
	LEFT MENU
***************************/

.content-left-menu{
	height:100%;
	min-width: 150px;
	max-width: 200px;
	vertical-align:top;
	background: linear-gradient(to right, var(--sideMenu-background-color) 90%, var(--body-background-color));
}


.content-left-menu ul {
	margin: 0;
	padding: 0;
	list-style: none; /* rimuove i pallini */
}

.content-left-menu li {
	margin: 0;
	padding: 0;
}

.content-left-menu > .btn-link{
	font-size:  1.0rem;
	color: var(--sideMenu-link-color);
	font-weight: var(--sideMenu-link-font-weight);
}

.content-left-menu > .btn-link:hover, > .btn-link:focus {
	color:var(--sideMenu-link-hover-color);
	/*font-size:  1.05rem;*/
	font-weight: 700;
	/*text-decoration: underline;*/
}

.content-left-menu > .btn-link:active, > .btn-link:show {
	color:var(--sideMenu-link-hover-color);
	/*font-size:  1.3rem;*/
	font-weight: 700;
}

/****************************
	CONTENT-CENTER
***************************/
.content-center > .pageTitle{
	font-weight: 700;
	font-size:2rem;
	padding-top: 30px;
	padding-bottom: 30px;
	padding-left: 30px;
}

/****************************
	ANAGRAFICHE CONTENT CENTER
***************************/

.content-center-anagrafiche{
	margin-top: 30px;
	margin-left: 30px;
	display: flex;
	justify-content: left; /* allinemaneto orrizontale */
	align-items:start;  /* allinemaneto verticale */
	/* border: 1px solid red; */
	height:100%;
	width:100%;
}

/****************************
	DATA GRID
***************************/

.grid-container{  /*contenitore della griglia */
	background-color: var(--grid-background-color);
	border: 1px solid var(--border-color);
	border-radius: 20px;
	margin:5px;
	padding:8px;
}

.data-grid{
	margin:0;
	padding:0;
}

.data-grid tbody{
	border: 1px solid var(--border-color);

}

.data-grid tr,
.data-grid td,
.data-grid th{
	background-color: transparent;
	border-collapse: collapse; /* elimina gli spazi tra i bordi */
	margin: 0;                /* rimuove eventuali margini */
	border: none;             /* rimuove i bordi della tabella */
	padding: 0px;
}


.grid-commands-bar{
	display: flex;      /* mette i figli in riga */
	gap:10px;          /* spazio tra i div */
	background-color: var(--grid-background-color);
	margin-bottom: 1px;
	margin-left: 0px;
}


.grid-commands-bar .btn-link {  /*pulsante della barra con i comandi*/
	background-color: transparent;
	border-radius: 50%;
	padding-top: 0px;
	padding-left: 5px;
	font-size: 1.5rem;
	color: var(--grid-action-font-color);
	border: none;
}


.grid-commands-bar .btn-link:hover{
	background-color: transparent;
	color: var(--grid-action-hover-font-color);
}


.grid-row-header  th {  /*cella dell'intestazione delle colonne*/
	color: var(--grid-header-font-color);
	padding-left:5px;
	background-color: var(--grid-header-background-color);
	border: 1px solid var(--grid-header-border-color);
}


.grid-row-header  .grid-cell a{  /*testo nell'intestazione delle colonne con link per ordinamneto */
	color: var(--grid-header-font-color);
}


.grid-row-filter td {
	background-color: var(--grid-filter-background-color);
	border: 1px solid var(--grid-header-border-color);
	padding-left:5px;
	padding-top:2px;
	padding-bottom:2px;
	margin:0px;
	height: 100%;
}


.grid-row-filter  .grid-cell {  /*cella contenente il fitro*/
	border:none;
	display: flex;      /* mette i figli in riga */
	align-items: center;  /* allinemaneto verticale */
	height: 100%;
	/*min-height: max-content;*/
}


.grid-row-filter  .grid-cell .filterInput{  /*sazione contenente i campi di input del filtro*/
	display: flex;      /* mette i figli in riga */
	flex-direction: column;  /*allinea i figli in colonna in modo che i filtri from to risultino uno sopra l'altro'*/
}

.grid-row-filter  .grid-cell input{  /*campo di input nell'intestazione delle colonne*/
	/*	width: auto;  */     /* occuperà tutto lo spazio disponibile */
	max-width: 120px;  /*ma non supererà mai i 300px */
}

.grid-row-filter  .grid-cell i{  /*icona con lente per eseguir eil filtro*/
	color: var(--grid-filter-font-color);
	height:100%;
	padding:0px;
}


.data-grid tr:nth-child(4n-3),
.data-grid tr:nth-child(4n-2) {
	background-color: var(--grid-rows-odd-background-color);
}

.data-grid tr:nth-child(4n-1),
.data-grid tr:nth-child(4n) {
	background-color: var(--grid-rows-even-background-color);
}


.data-grid .grid-row-main {
	border-top: 1px solid var(--border-color);
}

.data-grid .grid-row-main .grid-cell{
	border-left: 1px solid var(--border-color);
	padding:1px;
	border-radius: 5px 5px 0px 0px;
	padding-left:5px;
}

.data-grid .grid-row-extra .grid-cell{
	border-top: 1px dotted var(--border-color);
	border-radius: 5px 5px 0px 0px;
	padding:0px;  /*deve rimanere 0 altrimenti la extra row rimane visibile anche quando è chiusa*/
	padding-left:5px;
}

.data-grid .grid-row-extra .tabbable{
	min-width:min-content;
	padding:10px;
}

.grid-navigation-bar td{
	border:none;
	background-color: var(--grid-background-color);
}

.grid-navigation-bar .pagination{ /*contenitore dei oulsanti di navigazione*/
	background-color: transparent;
	margin-top: 5px;
	padding:0px;
	margin-left: 5px;
}
.grid-navigation-bar .pagination li{
	background-color: var(--grid-background-color);
	border: none;
	margin-left: 5px;
}

.grid-navigation-bar .page-link{
	border: 1px solid var(--grid-action-font-color);
	background-color: var(--grid-navigation-background-color);
	border-radius: 5px;
	border: 3px solid var(--grid-action-font-color);
	width:50px;
	padding:0px;
	padding-top:4px;
	padding-bottom:4px;
	text-align:center;
}
.grid-navigation-bar .page-item a{
	color: var(--grid-action-font-color);
	font-weight: 600;
	font-size:1.0rem;
}


.grid-navigation-bar .page-link:hover{
	/*z-index: 2;*/
	color: var(--grid-action-hover-font-color);
	background-color: var(--grid-navigation-background-color);
	border: 2px solid var(--grid-action-hover-font-color);
}

.grid-navigation-bar .active{
	color: var(--grid-navigation-background-color);
	background-color: var(--grid-action-hover-font-color);

}

.grid-navigation-bar .active > .page-link {
	z-index: 3;
	font-size:1.3rem;
	color: var(--grid-navigation-background-color);
	background-color: var(--grid-action-hover-font-color);
	border: 2px solid var(--border-color);
}


/* pulsante GO-TO delle barra di navigazione*/
.grid-navigation-bar .pagination button{
	color: var(--grid-navigation-background-color);
	margin:2px;
	padding-left:10px;
	padding-right:10px;
	padding-top:3px;
	padding-bottom:3px;
	font-size:1.1rem;
}

.grid-navigation-bar .pagination input{
	margin:3px;
	height:1.9rem;
}

.grid-navigation-bar .total-items{
	margin-top: 7px;
	display: flex;
	justify-content: center; /* allinemaneto orrizontale */
	font-weight: 700;
	color: var(--grid-navigation-font-color);
}

/* pulsanti della colonna azioni*/
.btn-action{
	color: var(--grid-action-font-color);
	font-size:1.4rem;
	margin:5px;
	padding:0px;
}
/* pulsanti della colonna azioni*/
.btn-action:hover{
	color: var(--grid-action-hover-font-color);
	font-size:1.4rem;
	margin:5px;
	padding:0px;
}


/****************************
	TABBED PANEL LIST
***************************/

.tabbable {
	background-color: transparent;
}

.tabbable li{
	background-color: var(--tabbed-background-color);
	border-radius: 7px 7px 0px 0px;
	border-top: 1px solid var(--border-color);
	border-left: 1px solid var(--border-color);
	border-right: 1px solid var(--border-color);
	border-bottom: 4px solid var(--tabbed-background-color);
	border-bottom: none;
	z-index: 2;                    /* sovrapposto al pannello */
	padding:5px;
	margin-bottom:-1px;
	position: relative;

}
.tabbable li a{
	text-decoration: none;
	color:var(--tabbed-font-color);
	font-weight: 700;
}

.tabbable .active{
	background-color: var(--tabbed-active-background-color);
	margin-bottom:-2px;
	border-bottom: 2px solid var(--tabbed-active-background-color);
}

.tabbable .active a{
	text-decoration: none;
	color:var(--tabbed-active-font-color);
	font-weight: 700;
}

.tab-content {
	background-color: var(--tabbed-active-background-color);
	border: 1px solid var(--border-color);
	border-radius: 0px 10px 10px 10px;
	padding:10px;
	min-width: max-content;  /* minimo necessario a contenere i figli */
	min-height: max-content;

}



/****************************
	INPUT PANEL
***************************/

.inputPanel {
	max-width: 600px; /* ma non supererà mai i 300px */
	background-color: var(--inputPanel-background-color);
	list-style: none; /* rimuove i pallini */
	margin-bottom:  2px;
	padding: 5px;
	/*border: 1px solid var(--border-color);*/
	border-radius: 10px 10px 10px 10px;
	/*padding:0px;*/
}
.inputPanel li{
	background-color: var(--inputPanel-row-background-color);
	height:max-content;
	width:max-content;
	margin-bottom: 4px;
	padding:1px;
	padding-right:4px;
	display: flex;      /* mette i figli in riga */
	flex-wrap: wrap; /* permette di andare a capo se non c'è spazio */
	border: 1px solid var(--border-color);
	border-radius: 8px 8px 8px 8px;

}
.inputPanel .label {
	color: var(--inputPanel-row-label-color);
	background-color: var(--inputPanel-row-label-background-color);
	max-width: 190px; /* ma non supererà mai i 300px */
	width: 190px;
	padding:0px;
	padding-left:4px;
	padding-right:2px;
	border-radius: 8px 0px 0px 8px;
	/*font-size:  1.05rem;*/
	font-weight: 600;
	display: flex;
	justify-content: right; /* allinemaneto orrizontale */
	align-items: center;  /* allinemaneto verticale */
}

.inputPanel .info{
	color: var(--inputPanel-row-info-color);
	background-color:transparent;
	max-width: max-content;  /* minimo necessario a contenere i figli */
	height: 100%;
	padding: 2px;
	padding-left: 5px;
	font-size:  1.0rem;
	font-weight: 500;
	display: flex;
	justify-content: left; /* allinemaneto orrizontale */
	align-items: center;  /* allinemaneto verticale */
	/*border: 1px solid var(--border-color);*/
	border-radius: 0px 8px 8px 0px;
}

input[type="checkbox"] {
	width: 20px;
	height: 20px;
	accent-color: var(--checkbox-color);
}


.inputPanel input{
	width:100%;
}

/****************************
	FEEDBACK PANEL
***************************/

.feedback ul,.feedback li{
	padding: 0;
	border-radius: 8px 8px 8px 8px;
	font-size:  1.0rem;
	height:100%;
}
.alert{
	--bs-alert-padding-x: 1rem;
	--bs-alert-padding-y: 0.5rem;
}
.alert-dismissible .btn-close {
	position: absolute;
	top: 0;
	right: 0;
	z-index: 2;
	padding: 0.5rem 1.0rem;
}


/****************************
	DIALOG
***************************/


.modal-dialog .modal-content{
	background-color: var(--dialog-background-color);
	border-radius: 14px 14px 15px 15px;
	border: 4px solid var(--dialog-header-background-color);
	padding:0;
	min-width: max-content;  /* minimo necessario a contenere i figli */
	min-height: max-content;
	/*max-width: max-content;*/  /* minimo necessario a contenere i figli */
	max-height: max-content;
}

.modal-dialog .modal-header {
	background-color: var(--dialog-header-background-color);
	border-radius: 10px 10px 0px 0px;
}

.modal-dialog .modal-header h4{
	color: var(--dialog-header-font-color);
	font-size:  1.3rem;
	height:  1.3rem;
	display: flex;
	justify-content: left; /* allinemaneto orrizontale */
	align-items: center;  /* allinemaneto verticale */
}


.modal-header .btn-close {
	--bs-btn-close-color: #fff;   /* per Bootstrap 5.3+ */
	filter: invert(1);            /* fallback: trasforma nero -> bianco */
	opacity: 1;                   /* niente trasparenza */
	font-size:  1.4rem;

	outline: none !important;     /* rimuove il tratteggio */
	box-shadow: none !important; /* rimuove le ombre */
	/*border: none !important;*/      /* sicurezza extra */
	/*-webkit-appearance: none;*/     /* rimuove stile nativo WebKit */
	/*-moz-appearance: none; */       /* rimuove stile nativo Firefox */
	/*appearance: none;*/             /* rimuove stile nativo standard */
}


.modal-dialog .modal-body{
	margin:10px;
	background-color: var(--dialog-body-color);
	border: 1px solid var(--border-color);
	border-radius: 10px 10px 10px 10px;
}

.modal-dialog .modal-footer{
	background-color: transparent;
}

.modal-dialog .inputPanel{
	background-color: transparent;
}



/****************************
	PALETTE
***************************/

.palette-panel{
	background-color: transparent;
	padding : 5px;
	height:100%;
	border-radius: 10px 10px 10px 10px;
	border: 0px solid var(--border-color);
	margin-bottom: 2px;
}

.palette-table td{
	background-color: var(--palette-background-color);
	height:100%;
}
.palette-header{
	color:var(--palette-header-font-color);
	font-size:1.2rem;
	font-weight: 600;
	width:100%;
	display: flex;
	justify-content: center; /* allinemaneto orrizontale */
	margin-top:5px;
}

.palette-selected{
	width:100%;
	background-color: var(--palette-list-background-color);
	color:var(--palette-list-font-color);
	display: flex;
	font-size:1.0rem;
	max-width: 250px;  /* minimo necessario a contenere i figli */
}


.palette-choices{
	width:100%;
	background-color: var(--palette-list-background-color);
	color:var(--palette-list-font-color);
	display: flex;
	font-size:1.0rem;
	max-width: 250px;  /* minimo necessario a contenere i figli */
}
.palette-choices option:checked {
	background-color: var(--palette-list-selected-background-color);
	color: var(--palette-list-selected-font-color);
}

.palette-commands{
	height:100%;
	width:45px;
	display: flex;
	flex-direction: column;  /*allinea i figli in colonna*/
}
.palette-buttons{
	background-color: var(--palette-command-background-color);
	color:var(--palette-command-font-color);
	margin-top:5px;
	margin-left:5px;
	padding:1px;
	font-size:1.3rem;
	width:30px;
	higth:30px;
}

/****************************
	INVOICE PREVIEW
***************************/

.agsmPreview th{
	padding:0.5rem;
	background-color: #C6C6C6;
	border: 1px solid black;
}

.agsmPreview td{
	padding:0.5rem;
	border: 1px solid black;
	background-color: white;
	white-space: nowrap;
	text-align:center;
}

.invoiceDetails {
	max-width: 900px;  /* minimo necessario a contenere i figli */
}

.invoiceDetails td{
	white-space: nowrap;
	padding:0.5rem;
	text-align:left;
}

/****************************
	DOWNLOAD LIST
***************************/


.downloadLinkList li {
	background-color: transparent;
	border: none;
}

.downloadLinkList li a{
	text-decoration: none;
	font-weight: 600;
	font-size:1rem;
	color: blue;
}