/*
jQuery.ganttView v.0.8.0
Copyright (c) 2010 JC Grubbs - jc.grubbs@devmynd.com
MIT License Applies
*/

div.ganttview-hzheader-month,
div.ganttview-hzheader-day,
div.ganttview-hzheader-hour,
div.ganttview-vtheader,
div.ganttview-vtheader-item-name,
div.ganttview-vtheader-series,
div.ganttview-grid,
div.ganttview-grid-row-cell {
	float: left;
}

div.ganttview-hzheader-month,
div.ganttview-hzheader-day {
	text-align: center;
}

/* Box-sizing per allineamento preciso con bordi */
div.ganttview-hzheader-month,
div.ganttview-hzheader-day,
div.ganttview-hzheader-hour,
div.ganttview-grid-row-cell {
	box-sizing: border-box;
}

div.ganttview-grid-row-cell.last,
div.ganttview-hzheader-day.last,
div.ganttview-hzheader-hour.last,
div.ganttview-hzheader-month.last {
	border-right: none;
}

div.ganttview {
	border-width: 1px; /* Lascia il colore al tema */
}


/* Horizontal Header */

div.ganttview-hzheader-month {
	width: 60px;
	height: 20px;
	line-height: 20px;
	text-align: center;
	overflow: hidden; /* Nasconde testo che esce se sticky non perfetto */
}

div.ganttview-hzheader-day {
	width: 20px;
	height: 20px;
	line-height: 20px;
	text-align: center;
}

div.ganttview-hzheader-hour {
	width: 20px;
	height: 20px;
	line-height: 20px;
	text-align: center;
	border-right: 1px solid #f1f3f5;
	border-top: 1px solid #e9ecef;
	color: #868e96;
	font-size: 0.6em;
	overflow: hidden;
}

/* Vertical Header */

div.ganttview-vtheader {
	margin-top: 41px;
	width: auto; /* Adatta al contenuto */
	overflow: hidden;
	/* Aggiungiamo un bordo destro per separare l'header dalla griglia, visto che toglieremo i bordi sinistri alle celle */
	border-right: 1px solid #e0e0e0; 
}

div.ganttview-vtheader-item {
	overflow: hidden;
}

div.ganttview-vtheader-item-name {
	width: auto; /* Gestito via JS */
	min-width: 100px; /* Larghezza minima di sicurezza */
	white-space: nowrap; /* Evita a capo */
	box-sizing: border-box; /* Include padding e bordi nel calcolo dell'altezza */
	padding: 0 12px; /* Padding confortevole */
	display: flex; /* Flexbox per centrare verticalmente */
	align-items: center;
}


/* Slider */

div.ganttview-slide-container {
	overflow: auto;
	border-left: none; /* Il tema gestisce i bordi delle celle */
}


/* Grid */

div.ganttview-grid-row {
	float: left;
	clear: both;
}

div.ganttview-grid-row-cell {
	/* Rimuoviamo dimensioni fisse che vanno in conflitto con il JS */
	/* width e height sono ora inline style calcolati */
}

/* Fix per il trascinamento: evita che l'highlight aggiunga bordi che aumentano l'altezza */
div.ganttview-grid-row.ui-state-highlight {
	border: none;
	background-image: none; /* Opzionale: pulisce lo sfondo per evidenziare solo col colore */
}

/* Fix per il Drag & Drop: permette agli eventi del mouse di passare attraverso l'helper trascinato */
/* In questo modo la riga sottostante riceve il mousemove e può evidenziare le celle */
.ui-draggable-dragging {
	pointer-events: none;
}

div.ganttview-grid-row-cell.ganttview-weekend {
	background-image: none !important;
	background-color: rgba(0,0,0,0.05); /* Overlay leggero per i weekend */
}


/* Blocks */

div.ganttview-blocks {
	margin-top: 40px;
	position: absolute; /* Assicura che i blocchi stiano sopra la griglia */
	top: 0;
	left: 0;
	width: 100%;
}

div.ganttview-block-container {
	height: 28px;
	padding-top: 4px;
	position: relative; /* Riferimento per i blocchi assoluti */
	box-sizing: border-box; /* Assicura altezza esatta inclusiva di padding */
}

div.ganttview-block {
	position: absolute; /* Evita che i blocchi vadano a capo */
	top: 4px; /* Allineamento verticale (corrisponde al padding del container) */
	height: 25px;
	background-color: #E5ECF9; /* Default background */
	border: 1px solid #c0c0c0; /* Default border */
	border-radius: 60px; /* Effetto pillola/ellittico */
	/* Ombra base più definita per staccare l'elemento dal fondo */
	box-shadow: 0 2px 5px rgba(0,0,0,0.25);
	transition: box-shadow 0.2s ease-in-out, transform 0.1s;
}

/* Effetto "Sollevamento" al passaggio del mouse */
div.ganttview-block:hover {
	box-shadow: 0 8px 15px rgba(0,0,0,0.3); /* Ombra lunga e diffusa per simulare l'altezza */
	z-index: 50; /* Assicura che l'elemento ombreggiato sia sopra gli altri blocchi ma sotto le modali */
	cursor: pointer;
}

/* Stati del Noleggio */
div.ganttview-block.ganttview-block-status-pending {
	background-color: #ffc107; /* Giallo Moderno */
	border-color: #e0a800;
	opacity: 0.9;
}
div.ganttview-block.ganttview-block-status-pending div.ganttview-block-text { color: #212529; }

div.ganttview-block.ganttview-block-status-completed {
	background-color: #d4d4d4; /* Verde Moderno */
	border-color: #a7a7a7;
	opacity: 0.8;
}
div.ganttview-block.ganttview-block-status-completed div.ganttview-block-text { color: #666666; }

div.ganttview-block.ganttview-block-status-cancelled {
	background-color: #dc3545; /* Rosso Moderno */
	border-color: #c82333;
	opacity: 0.8;
}
div.ganttview-block.ganttview-block-status-cancelled div.ganttview-block-text { color: #fff; }

div.ganttview-block.ganttview-block-status-maintenance {
	background-color: #6f42c1; /* Viola */
	border-color: #59359a;
	opacity: 0.9;
}
div.ganttview-block.ganttview-block-status-maintenance div.ganttview-block-text { color: #fff; }

div.ganttview-block-text {
	position: absolute;
	height: 20px;
	font-size: 12px;
	color: #495057; /* Default text color */
	padding: 5px 3px 2px 10px; /* Sposta il testo a destra oltre la curva */
	box-sizing: border-box; /* Assicura che il padding non aumenti la larghezza */
	font-weight: bold;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis; /* Aggiunge i puntini se il testo è lungo */
	width: 100%;
}


/* Adjustments for jQuery UI Styling */

div.ganttview-block div.ui-resizable-handle.ui-resizable-s {
	bottom: -0;
}
.ganttview-blocks, .ganttview-block-container { pointer-events: none; }
.ganttview-block { pointer-events: auto; }

/* Selection Highlighting */
div.ganttview-grid-row-cell.ui-selecting { background-image: none !important; background-color: #FECA40 !important; cursor: cell !important;}
div.ganttview-grid-row-cell.ui-selected { background-image: none !important; background-color: #F39814 !important; }

/* --- FIX per jQuery UI Themes --- */
/* Resetta i bordi extra aggiunti dai temi jQuery UI che rompono l'allineamento */
div.ganttview-hzheader-month.ui-widget-header,
div.ganttview-hzheader-day.ui-state-default,
div.ganttview-hzheader-hour.ui-state-default,
div.ganttview-vtheader-item-name.ui-state-default,
div.ganttview-grid-row-cell.ui-widget-content {
	border-left: 0 none;
	border-top: 0 none;
	/* Assicura che padding o margin del tema non alterino le dimensioni calcolate */
	margin: 0;
}

/* Reset padding SOLO per celle griglia e header orizzontali (i nomi verticali usano il padding custom sopra) */
div.ganttview-hzheader-month.ui-widget-header,
div.ganttview-hzheader-day.ui-state-default,
div.ganttview-hzheader-hour.ui-state-default,
div.ganttview-grid-row-cell.ui-widget-content {
	padding: 0;
}

/* Today Line */
div.ganttview-today-line {
	position: absolute;
	top: 0;
	bottom: 0;
	width: 2px;
	background-color: #ff0000;
	z-index: 10; /* Sopra la griglia, sotto gli eventi (che vanno a 50 in hover) */
	opacity: 0.6;
	pointer-events: none; /* Permette di cliccare attraverso la linea */
}

/* --- GRUPPI --- */
div.ganttview-vtheader-group div.ganttview-vtheader-item-name {
    font-weight: bold;
    background-color: #e9ecef; /* Sfondo leggermente più scuro per i gruppi */
    cursor: pointer;
    color: #333;
}

div.ganttview-grid-row-group .ganttview-grid-row-cell,
div.ganttview-block-container-group {
    background-color: #f8f9fa; /* Sfondo griglia per i gruppi */
    border-bottom: 1px solid #dee2e6;
}

/* FIX: Rimuove l'aspetto a celle dalle righe di gruppo */
div.ganttview-grid-row-group .ganttview-grid-row-cell {
    border-top: none !important;
    border-right: none !important;
    background-image: none !important; /* Rimuove texture tema UI */
    cursor: default !important; /* Cursore standard per indicare non-interattività */
}

/* Rimuove l'evidenziazione del weekend sulle righe di gruppo per uniformare lo sfondo */
div.ganttview-grid-row-group .ganttview-grid-row-cell.ganttview-weekend {
    background-color: #f8f9fa !important;
}

.ganttview-collapse-icon {
    margin-right: 5px;
    font-size: 0.8em;
    color: #666;
    display: inline-block;
    transition: transform 0.2s;
}

/* Quando collassato, ruota la freccia */
.ganttview-vtheader-group.collapsed .ganttview-collapse-icon {
    transform: rotate(-90deg);
}

/* Stili per la modale */
#eventDetailsModal {
    font-size: 0.9em;
}
#eventDetailsModal label {
    display: block;
    margin-top: 10px;
    margin-bottom: 5px;
    font-weight: bold;
}
#eventDetailsModal input[type="text"],
#eventDetailsModal textarea,
#eventDetailsModal select {
    width: 95%;
    padding: 5px;
    margin-bottom: 10px;
    border: 1px solid #ccc;
    border-radius: 3px;
}