/* =====================================================================
   GRR - Feuille de style personnalisée
   Améliorations : typographie moderne, confort de lecture,
   adaptation responsive PC / tablette / smartphone.
   Fichier conservé dans personnalisation/ : survit aux mises à jour GRR.
   Contenu : surcharges layout + responsive. Les COULEURS restent gérées
   par le thème (Gestion des couleurs de l'admin).
   ===================================================================== */

/* ------------------------------ BASE ------------------------------ */
html {
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
}

body {
	font-family: "Segoe UI", system-ui, -apple-system, "Helvetica Neue", Roboto, Arial, sans-serif;
	font-size: 15px;
	line-height: 1.6;
	color: #2b2b2b;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}

/* Liens : moins agressifs que le style par défaut (gras accentué) */
a { color: #1a73e8; }
a:link, a:visited { font-weight: 400; }
a:hover, a:focus { text-decoration: underline; }

h1, h2, h3, h4, h5, h6 {
	font-family: inherit;
	font-weight: 600;
	line-height: 1.3;
	color: #1c1c1c;
	letter-spacing: -0.01em;
}

caption { font-weight: 600; }

input, select, textarea, button { font-family: inherit; }

/* ---------------------------- BOUTONS ----------------------------- */
.btn {
	border-radius: 8px;
}
.btn:focus-visible,
a:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
	outline: 2px solid #1a73e8;
	outline-offset: 2px;
}
.btn-primary { box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12); }

/* ---------------------------- HEADER ------------------------------ */
header {
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
	padding: 8px 12px;
}
.logo img { max-height: 90px; height: auto; }
.accueil h2 { font-size: 1.5rem; margin: 0; }
.accueil p  { font-size: 0.9rem; margin: 0.25rem 0 0; }

/* --------------------- MENU + MINI CALENDRIERS -------------------- */
#menuGauche2 {
	background: #fff;
}
table.calendar { box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08); border-radius: 8px; }
table.calendar td { border-radius: 4px; }

/* ------------------------ TABLE PLANNING -------------------------- */
#planning2 table.jour,
#planning2 table.semaine,
#planning2 table.mois,
#planning2 table.annee {
	border-collapse: separate;
	border-spacing: 0;
}
#planning2 table.jour th,
#planning2 table.jour td {
	padding: 4px 6px;
}
td.cell_hours { font-size: 12px; white-space: nowrap; }
#planning2 .ligne23 .left { float: left; }
#planning2 .ligne23 .right { float: right; }

/* Titre du planning */
#planning2 caption h4.titre {
	font-size: 1.15rem;
	margin: 6px 0;
}

/* ----------------------------- POPUP ------------------------------ */
.popup_block { border-radius: 10px; }

/* ---------------------------- FORMS ------------------------------- */
.form-control,
select,
input[type="text"],
input[type="password"],
input[type="number"],
input[type="date"],
input[type="time"],
textarea {
	border-radius: 6px;
}

/* -------------------------------------------------------------------
   RESPONSIVE - TABLETTE / MOBILE
   ------------------------------------------------------------------- */
@media (max-width: 991px) {

	body { font-size: 15px; }

	/* Header simplifié */
	.accueil { display: none !important; }
	.contactformulaire { display: none !important; }
	.administration { width: auto; float: none; display: inline-block; }
	.configuration  { width: auto; float: none; display: block; margin: 4px 0 0; }
	.logo { float: left; max-width: 55%; }
	.logo img { max-height: 70px; margin-left: 0; }
	#panel { text-align: center; }

	/* Menu : plein écran, au-dessus du planning */
	#menuGauche2 {
		float: none !important;
		width: 100% !important;
		min-width: 0 !important;
		display: block !important;
		margin: 0 0 12px;
		padding: 8px;
	}
	#calendriersG table.calendar { margin: 0 auto; }

	/* Planning : défilement horizontal interne (pas de blocage de page) */
	#planning2 {
		min-width: 0 !important;
		width: 100% !important;
		display: block !important;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		text-align: left;
	}
	#planning2 table.jour { min-width: 560px; width: 100%; }

	/* Champs de formulaire : pleine largeur + 16px (évite le zoom iOS) */
	form .form-control,
	form select,
	form input[type="text"],
	form input[type="password"],
	form input[type="number"],
	form input[type="date"],
	form input[type="time"],
	form textarea {
		font-size: 16px;
		max-width: 100%;
	}
	.btn { font-size: 15px; }

	/* Navigation jour (précédent / suivant) : ne pas chevaucher */
	#planning2 .ligne23 .left,
	#planning2 .ligne23 .right {
		float: none;
		display: inline-block;
		margin: 2px auto;
	}
}

/* -------------------------------------------------------------------
   RESPONSIVE - SMARTPHONE
   ------------------------------------------------------------------- */
@media (max-width: 575px) {

	header { padding: 6px 8px; }
	.logo { max-width: 65%; }
	.logo img { max-height: 55px; }

	#planning2 caption h4.titre { font-size: 1rem; }

	/* Les gros boutons de sélection de ressource tiennent en pleine largeur */
	#menuGauche2 .btn-block span { white-space: normal; }
}

/* -------------------------------------------------------------------
   RESPONSIVE - TRÈS PETITS ÉCRANS
   ------------------------------------------------------------------- */
@media (max-width: 380px) {
	body { font-size: 14px; }
}

/* ------------------ PAGE DE CONNEXION (mobile) -------------------- */
@media (max-width: 767px) {
	.center fieldset,
	form fieldset {
		width: 92% !important;
		box-sizing: border-box;
	}
	.center form input[type="text"],
	.center form input[type="password"],
	.center form select {
		width: 100%;
		box-sizing: border-box;
		font-size: 16px;
	}
}

/* -------------------------------------------------------------------
   ADMINISTRATION (AdminLTE) : harmonisation de la police uniquement
   ------------------------------------------------------------------- */
body.hold-transition {
	font-family: "Segoe UI", system-ui, -apple-system, "Helvetica Neue", Roboto, Arial, sans-serif;
	-webkit-font-smoothing: antialiased;
}
.hold-transition .content-wrapper { font-size: 14px; }