/* All classes are prefixed with "upp" (UniPi++) to avoid conflicts with the website's own CSS */

.upp-almalaurea-filter:invalid { 
    color: gray; 
}

.upp-main-container {
    min-width: calc(400px + 585px + 3em);
    padding: 1em;
	gap: 1em;
	background: #F6F6F6;
	border: 1px solid #000000;
	display: grid;
	grid-template-columns: minmax(400px, 2.25fr) minmax(585px, 3fr);
	grid-template-rows: auto auto;
}

.upp-horizontal-flexbox-even {
    display: flex;
    flex-direction: row;
    justify-content: space-evenly;
    align-items: center;
}

.upp-horizontal-flexbox-center {
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
}

.upp-vertical-flexbox-center {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

.upp-secondary-title {
    margin-top: 2px;
    height: 30px;
    margin-bottom: 14px;
    cursor: pointer;
    font-size: 1.2em !important;
    color: gray;
}

.upp-secondary-title.selected {
    border-bottom: 2px solid black;
    padding-bottom: 2px; 
    font-size: 1.3em !important;
    color: black;
}

.upp-statistic-big {
    font-size: 3em;
	margin-top: -0.15em;
}

.upp-progress-bar-container {
    display: flex;
    flex-direction: row;
    width: 96%;
	height: 3em;
	margin-left: 2%;
	margin-right: 2%;
	margin-bottom: .75em;
	border: 1px solid #000000;
	background-color: #ffffff;
    position: relative;
}

.upp-progress-bar {
	width: 0%;
	height: 100%;
	background-color: #434343;
	display: flex;
	align-items: center;
	justify-content: right;
}

.upp-progress-bar-text {
    height: 100%;
    display: flex;
    align-items: center;
    font-size: 1.35em;
	font-weight: normal;
	padding-right: .5em;
	padding-left: .5em;
	color: #ffffff;
    font-family: "STIX Two Math", "Times New Roman", serif;
}

.upp-grade-distribution-chart-container {
    min-height: 160px;
	width: 100%;
}

.upp-info-text {
    color: #64748b;
    font-style: italic;
    font-family: "Segoe UI", "Candara", "Verdana", sans-serif;
    font-size: 1.1em;
}

.upp-label-with-tooltip {
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

.upp-tooltip {
    position: relative;
    display: inline-block;
    cursor: pointer;
    color: #555;
    font-weight: bold;
    border: 1px solid #aaa;
    border-radius: 50%;
    width: 18px;
    height: 18px;
    font-size: 12px;
    text-align: center;
    line-height: 16px;
    background: #f0f0f0;
}

.upp-tooltip .upp-tooltip-text {
    visibility: hidden;
    font-weight: normal;
    opacity: 0;
    width: 350px;
    background-color: #f4ebe1;
    color: #000000;
    border: 1px solid black;
    font-size: 1.1em;
    line-height: 1.3em;
    text-align: justify;
    border-radius: 4px;
    padding: .75em;
    position: absolute;
    z-index: 1;
    bottom: 125%; /* Position above */
    left: 50%;
    transform: translateX(-50%);
    transition: opacity 0.3s;
}

/* Arrow */
.upp-tooltip .upp-tooltip-text::after {
    content: "";
    position: absolute;
    top: 100%;
    left: 50%;
    margin-left: -5px;
    border-width: 5px;
    border-style: solid;
    border-color: #333 transparent transparent transparent;
}

.upp-tooltip:hover .upp-tooltip-text {
    visibility: visible;
    opacity: 1;
}

.upp-forecast-table {
    font-family: "STIX Two Math", "Times New Roman", serif;
    border-collapse: collapse;
    border-radius: 2px;
    width: 100%;
}

.upp-forecast-table-header {
    /* Overwrite .upp-forecast-table td */
    text-align: left !important;
    padding-top: .75em !important;
    padding-left: .75em !important;
    font-family: "Open Sans", Verdana, Geneva, Arial, Helvetica, sans-serif;
}

.upp-forecast-table td {
    text-align: center;
    padding-left: max(1%, 4px);
    padding-right: max(1%, 4px);
    padding-top: 3px;
    padding-bottom: 3px;
}

.upp-checkbox {
    margin-right: 5px !important;
	width: 16px;
	height: 16px;
    cursor: pointer;
}