* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
	scroll-snap-type: y mandatory;
	overflow-y: scroll;
	height: 100vh;
}

body {
	font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
	background: black; /*linear-gradient(135deg, #1e3c72 0%, #2a5298 100%);*/
	color: black;
	min-height: 100vh;
	padding: 0px;
	height: 100%;
	overflow-x: hidden;
 }
		
.container {
	max-width: 1280px;
	margin: 10 auto;
	background: black;
	border-radius: 14px;
	/*box-shadow: 0 4px 4px rgba(0,0,0,0.3);*/
	overflow: hidden;
	position: relative;
	/* SUPPRIMÉ : padding-top: 20px; */
	/* SUPPRIMÉ : scroll-snap-type: y proximity; */
	/* SUPPRIMÉ : height: 100vh; */
	min-height: 100vh;
	display: flex;
	flex-direction: column;
	justify-content: center;
}

		
/* === LAYOUT PRINCIPAL MANQUANT === */
.main-content {
    display: grid;
    grid-template-columns: repeat(auto-fit, 410px);
    justify-content: center;
    width: 100%;
    margin: 0 auto;
	 gap: 15px;
    flex: 1;
}

.section {
	 background: linear-gradient(135deg, #f8f9fa 0%, #c8c9ca 100%);
    border-radius: 14px;
    margin-top: 10px;
    padding: 5px;
    border-right: 0px solid #aFaBa5;
    border-bottom: 0px solid #aFaBa5;
    box-shadow: 0px 4px 4px rgba(0,0,0,0.08);
    min-width: 410px;
}

.section h2 {
    /*color: #2c3e50;*/
    margin-bottom: 15px;
    font-size: 1.3rem;
    display: flex;
    align-items: center;
    border-bottom: 2px solid #ecf0f1;
    padding-bottom: 5px;
}

.section h2::before {
    margin-right: 10px;
    font-size: 1.5rem;
}

.section h2.moteur::before { content: "🔧"; }
.section h2.carburant::before { content: "⛽"; }
.section h2.circuit::before { content: "🏁"; }
.section h2.pilotage::before { content: "🏎️"; }
.section h2.masses::before { content: "⚖️"; }
.section h2.pressions::before { content: "🛞"; }
.section h2.sauvegarde::before { content: "💾"; }

  .input-group label {
		display: block;
		margin-bottom: 5px;
		font-weight: 600;
		color: #555;
		font-size: 0.9rem;
  }
  
  .input-group input, .input-group select {
		width: 100%;
		padding: 5px;
		border: 2px solid #ccc;
		border-radius: 5px;
		font-size: 16px;
		transition: all 0.3s;
		background: white;
  }
  
  .input-group input:focus, .input-group select:focus {
		outline: none;
		border-color: #FF6B35;
		box-shadow: 0 0 0 3px rgba(255, 107, 53, 0.1);
  }

.input-row {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
    grid-auto-rows: auto !important;
    gap: 5px !important;
    margin-bottom: 5px !important;
    width: 100% !important;
    box-sizing: border-box !important;
    align-items: start !important;
}

.input-row32 {
    display: grid !important;
    grid-template-columns: minmax(0, 3fr) minmax(0, 2fr) !important;
    grid-auto-rows: auto !important;
    gap: 5px !important;
    margin-bottom: 10px !important;
    width: 100% !important;
    box-sizing: border-box !important;
    align-items: start !important;
}




/* Styles pour champs grisés sauvegarde */
#sauvegarde-nom-pilote-display,
#sauvegarde-circuit-display {
    background-color: #f5f5f5 !important;
    color: #666 !important;
    cursor: not-allowed !important;
    border-color: #ccc !important;
}		 
		 
		 
		 
		

/* Media query spécifique pour forcer 4 colonnes sur écrans larges */
@media (min-width: 600px) {
    .main-content {
		grid-template-columns: repeat(auto-fit, 400px) !important;
	   justify-content: center;
		flex: 1;
      margin: 0 auto;
      gap: 10 px;
    }

	.input-row {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
    }
}

/* Une seule colonne sur mobiles */
@media (max-width: 599px) {
    .main-content {
       grid-template-columns: 1fr !important;
       justify-content: center;
		 flex: 1;
       gap: 10px;
    }
	.input-row {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
    }
}        

/* === RESPONSIVE DESIGN === */
@media (pointer: coarse) {
    
    .section, .results {
        min-height: auto;
        padding: 5px;
        scroll-snap-align: none;
        border-radius: 12px;
		  width:100%
    }
    
    .main-content {
        grid-template-columns: 1fr !important;
        gap: 10px !important;
        padding: 0px;
        justify-content: center;
    }
    
    .page-dots {
        display: none;
    }
}



			#circuit-preset {
				 max-width: 400px;
				 font-size: 0.9rem;
				 overflow: hidden;
			}

			#circuit-preset option {
				 white-space: nowrap;
				 overflow: hidden;
				 text-overflow: ellipsis;
			}

			#section-circuit {
				 overflow-x: hidden;
				 max-width: 100%;
			}

			#section-circuit * {
				 max-width: 100%;
				 box-sizing: border-box;
			}
			

			/* Menu Hamburger */
			.menu-hamburger {
				 position: fixed;
				 top: 15px;
				 right: 15px;
				 z-index: 1000;
				 width: 50px;
				 height: 50px;
				 background: linear-gradient(135deg, #FF6B35, #F7931E);
				 border-radius: 50%;
				 display: flex;
				 align-items: center;
				 justify-content: center;
				 cursor: pointer;
				 box-shadow: 0 4px 15px rgba(0,0,0,0.3);
				 transition: transform 0.3s;
			}

			.menu-hamburger:hover {
				 transform: scale(1.1);
			}

			.menu-hamburger span {
				 display: block;
				 width: 25px;
				 height: 3px;
				 background: white;
				 margin: 5px 0;
				 transition: 0.3s;
			}

			.menu-hamburger.active span:nth-child(1) {
				 transform: rotate(45deg) translate(7px, 7px);
			}

			.menu-hamburger.active span:nth-child(2) {
				 opacity: 0;
			}

			.menu-hamburger.active span:nth-child(3) {
				 transform: rotate(-45deg) translate(7px, -7px);
			}

			/* Menu Navigation */
			.nav-menu {
				 position: fixed;
				 top: 0;
				 right: -300px;
				 width: 280px;
				 height: 100vh;
				 background: linear-gradient(135deg, #667eea, #764ba2);
				 transition: right 0.3s ease;
				 z-index: 999;
				 overflow-y: auto;
				 box-shadow: -5px 0 20px rgba(0,0,0,0.3);
			}

			.nav-menu.active {
				 right: 0;
			}

			.nav-menu h3 {
				 color: white;
				 padding: 20px;
				 margin: 0;
				 background: rgba(0,0,0,0.2);
				 font-size: 1.2rem;
			}

			.nav-menu ul {
				 list-style: none;
				 padding: 0;
				 margin: 0;
			}

			.nav-menu li {
				 border-bottom: 1px solid rgba(255,255,255,0.1);
			}

			.nav-menu a {
				 display: flex;
				 align-items: center;
				 color: white;
				 text-decoration: none;
				 padding: 15px 20px;
				 transition: background 0.3s;
				 font-size: 0.95rem;
			}

			.nav-menu a:hover {
				 background: rgba(255,255,255,0.1);
			}

			.nav-menu a::before {
				 margin-right: 10px;
				 font-size: 1.2rem;
			}

			.nav-menu .nav-pilote::before { content: "👤"; }
			.nav-menu .nav-meteo::before { content: "🌤️"; }
			.nav-menu .nav-circuit::before { content: "🏁"; }
			.nav-menu .nav-masses::before { content: "⚖️"; }
			.nav-menu .nav-carburation::before { content: "🔧️"; }
			.nav-menu .nav-moteur::before { content: "🔧️"; }
			.nav-menu .nav-pressions::before { content: "🛞"; }
			.nav-menu .nav-carburant::before { content: "⛽"; }
			.nav-menu .nav-resultats::before { content: "📊"; }
			.nav-menu .nav-timer::before { content: "⏱️"; }
			.nav-menu .nav-check::before { content: "✅️"; }

			/* Overlay pour fermer le menu */
			.menu-overlay {
				 position: fixed;
				 top: 0;
				 left: 0;
				 width: 100%;
				 height: 100%;
				 background: rgba(0,0,0,0.5);
				 z-index: 998;
				 display: none;
			}

			.menu-overlay.active {
				 display: block;
			}

        .refresh-btn {
            position: fixed;
            top: 20px;
            right: 20px;
            background: linear-gradient(45deg, #FF6B35, #F7931E);
            color: white;
            border: none;
            padding: 12px 20px;
            border-radius: 25px;
            font-weight: bold;
            cursor: pointer;
            z-index: 1000;
            box-shadow: 0 4px 15px rgba(0,0,0,0.3);
            transition: all 0.3s;
            font-size: 14px;
        }
        
        .refresh-btn:hover {
            transform: scale(1.05);
            box-shadow: 0 6px 20px rgba(0,0,0,0.4);
        }
        
        .version-info {
            position: absolute;
            top: 10px;
            left: 10px;
            background: rgba(0,150,0,0.2);
            padding: 5px 5px;
            border-radius: 15px;
            font-size: 0.8rem;
            color: #006600;
            font-weight: bold;
        }
        
        .header {
            background: linear-gradient(45deg, #FF6B35, #F8a32E);
            color: white;
            padding: 5px;
            text-align: center;
        }
        
        .header h1 {
            font-size: 2rem;
            margin-bottom: 5px;
        }
        
        .header p {
            opacity: 0.9;
            font-size: 1rem;
        }
        
        
        .section {
            background: #e8e9ea;
            border-radius: 15px;
            padding: 5px;
            border-left: 0px;
			border-right: 5px solid #aFaBa5;
            border-bottom: 5px solid #aFaBa5;
				box-shadow: 2px 3px 4px rgba(0,0,0,0.08);
        }
        
        .section h2 {
            color: #2c3e50;
            margin-bottom: 15px;
            font-size: 1.3rem;
            display: flex;
            align-items: center;
            border-bottom: 2px solid #ecf0f1;
            padding-bottom: 5px;
        }
        
        .section h2::before {
            margin-right: 10px;
            font-size: 1.5rem;
        }
        
        .section h2.moteur::before { content: "🔧"; }
        /*.section h2.meteo::before { content: "🌤️"; }*/
        .section h2.carburant::before { content: "⛽"; }
        .section h2.circuit::before { content: "🏁"; }
        .section h2.pilotage::before { content: "🏎️"; }
        .section h2.masses::before { content: "⚖️"; }
        .section h2.pressions::before { content: "🛞"; }

     
        
        .pressure-section {
            background: #e8f5e8;
            border: 2px solid #28a745;
            border-radius: 10px;
            padding: 5px;
            margin-bottom: 15px;
        }
        
        .pressure-help {
            font-size: 0.85rem;
            color: #666;
            margin-top: 5px;
            font-style: italic;
        }
        
		.diagram {
			 padding: 10px 5px;
			 overflow-x: auto;
			 max-width: 100%;
		}
					  
        .kart-view-weight {
            position: relative;
            width: 300px;
            height: 300px;
            margin: 0 auto;
            background: rgba(0,0,0,0.05);
            border-radius: 20px;
            padding: 10px;
        }
		  
        .kart-view {
            position: relative;
            width: 340px;
            height: 480px;
            margin: 0 auto;
            background: rgba(0,0,0,0.05);
            border-radius: 20px;
            padding: 10px;
        }
        
        .tire, .weight-corner {
            position: absolute;
            width: 60px;
            height: 90px;
            border-radius: 10px;
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            color: white;
            font-weight: bold;
            font-size: 0.8rem;
            box-shadow: 0 4px 15px rgba(0,0,0,0.3);
            transition: all 0.3s;
        }
        
         .tire {
            background: linear-gradient(135deg, #3498db, #2c3e50);
            border: 3px solid #FF6B35;
        }
        
			/* Classe pour les pneus chauds */
			.tire-hot {
				 position: absolute;
				 width: 60px;
				 height: 90px;
				 border-radius: 10px;
				 display: flex;
				 flex-direction: column;
				 align-items: center;
				 justify-content: center;
				 color: white;
				 font-weight: bold;
				 font-size: 0.8rem;
				 box-shadow: 0 4px 15px rgba(0,0,0,0.3);
				 transition: all 0.3s;
				 background: linear-gradient(135deg, #e74c3c, #95a5a6);
				 border: 3px solid #c0392b;
			}

        .weight-corner {
            background: linear-gradient(135deg, #27ae60, #2ecc71);
            border: 3px solid #16a085;
            width: 85px;
            height: 110px;
        }
        
        .tire:hover, .weight-corner:hover {
            transform: scale(1.1);
        }
		  
        .tire-hot:hover, .weight-corner:hover {
            transform: scale(1.1);
        }
        
        .corner-label {
            font-size: 0.8rem;
            margin-bottom: 0px;
            font-weight: bold;
        }
        
        .corner-label-blue {
            font-size: 1rem;
            margin-bottom: 0px;
            font-weight: bold;
				color: #000077;
        }
		  
        .corner-label-red {
            font-size: 1rem;
            margin-bottom: 0px;
            font-weight: bold;
				color: #770000;
        } 

        .main-value {
            font-size: 1.2rem;
            font-weight: bold;
            margin-bottom: 3px;
        }
		  
        .sub-value {
            font-size: 0.7rem;
            opacity: 0.8;
        }

         
			/* Positionnement des pneus froids (existants - vérifier qu'ils sont bien présents) */
			.front-left { top: 10px; left: 15px; }
			.front-right { top: 10px; right: 15px; }
			.rear-left { bottom: 10px; left: 15px; }
			.rear-right { bottom: 10px; right: 15px; }

			.tire-front-left { top: 10px; left: 15px; }
			.tire-front-right { top: 10px; right: 80px; }
			.tire-rear-left { bottom: 10px; left: 15px; }
			.tire-rear-right { bottom: 10px; right: 80px; }

			/* NOUVEAUX positionnements pour les pneus chauds */
			.tire-front-left-hot { top: 10px; left: 80px; }
			.tire-front-right-hot { top: 10px; right: 15px; }
			.tire-rear-left-hot { bottom: 10px; left: 80px; }
			.tire-rear-right-hot { bottom: 10px; right: 15px; }
        
        .kart-chassis {
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            width: 90px;
            height: 180px;
            background: linear-gradient(135deg, #667eea, #764ba2);
            border-radius: 45px;
            opacity: 0.2;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 3rem;
        }

			.help-btn {
				 display: inline-flex;
				 align-items: center;
				 justify-content: center;
				 width: 22px;
				 height: 22px;
				 margin-left: 12px;
				 background: linear-gradient(45deg, #FF6B35, #F7931E);
				 border-radius: 50%;
				 text-decoration: none;
				 font-size: 14px;
				 transition: all 0.3s;
				 box-shadow: 0 2px 5px rgba(0,0,0,0.2);
			}

			.help-btn:hover {
				 transform: scale(1.15);
				 box-shadow: 0 3px 10px rgba(255, 107, 53, 0.4);
			}
        
        .info-panel {
            background: #ecf0f1;
            padding: 15px;
            border-radius: 10px;
            margin-top: 15px;
        }
        
        .info-row {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-bottom: 8px;
            font-size: 0.9rem;
        }
        
        .info-row:last-child {
            margin-bottom: 0;
        }
        
        .info-label {
            font-weight: 600;
            color: #2c3e50;
        }
        
        .info-value {
            font-weight: bold;
            color: #e74c3c;
				text-align : right;
        }
        
        .results {
            grid-column: 1 / -1;
            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
            color: white;
            border-radius: 15px;
            padding: 25px;
            margin-top: 20px;
        }
        
        .results h2 {
            text-align: center;
            margin-bottom: 25px;
            font-size: 1.8rem;
            border-bottom: 2px solid rgba(255,255,255,0.3);
            padding-bottom: 15px;
        }
        

        
        
        .comparison-table {
            grid-column: 1 / -1;
            margin-top: 15px;
            overflow-x: auto;
            background: white;
            border-radius: 12px;
            box-shadow: 0 4px 15px rgba(0,0,0,0.1);
        }
        
        .comparison-table h2 {
            color: #2c3e50;
            text-align: center;
            padding: 15px;
            margin: 0;
            border-bottom: 2px solid #ecf0f1;
        }
        
        .comparison-table table {
            width: 100%;
            border-collapse: collapse;
        }
        
        .comparison-table th, .comparison-table td {
            padding: 10px;
            text-align: center;
            border-bottom: 1px solid #eee;
        }
        
        .comparison-table th {
            background: #2c3e50;
            color: white;
            font-weight: 600;
            text-transform: uppercase;
            font-size: 0.7rem;
            letter-spacing: 0.5px;
        }
        
        .comparison-table tr:hover {
            background: #f8f9fa;
        }
        
        .optimal {
            background: #d4edda !important;
            font-weight: bold;
        }
        
        .alert {
            background: #fff3cd;
            border: 1px solid #ffeaa7;
            color: #856404;
            padding: 15px;
            border-radius: 8px;
            margin: 10px 0;
            font-size: 0.9rem;
            display: flex;
            align-items: center;
        }
        
        .alert::before {
            margin-right: 10px;
            font-size: 1.2rem;
        }
        
        .alert.warning::before { content: "⚠️"; }
        .alert.info::before { content: "ℹ️"; }
        .alert.success::before { content: "✅"; }
        
        .carburation-results {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
            gap: 15px;
            margin: 15px 0;
        }
        
        .carb-gicleur {
            background: linear-gradient(135deg, #FFA200, #AD6A00);
            color: white;
            padding: 15px;
            border-radius: 12px;
            text-align: center;
		    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
            box-shadow: 0 4px 15px rgba(231, 76, 60, 0.3);
            transition: all 0.3s;
        }
		  
        .carb-card {
            background: linear-gradient(135deg, #e74c3c, #c0392b);
            color: white;
            padding: 15px;
            border-radius: 12px;
            text-align: center;
		      grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
            box-shadow: 0 4px 15px rgba(231, 76, 60, 0.3);
            transition: all 0.3s;
        }
        
        .main-jet-card {
            background: linear-gradient(135deg, #f39c12, #e67e22);
            grid-column: span 2;
        }
        
        .carb-gicleur:hover {
            transform: translateY(-3px);
            box-shadow: 0 6px 20px rgba(231, 76, 60, 0.4);
        }
		  
         .carb-card:hover {
            transform: translateY(-3px);
            box-shadow: 0 6px 20px rgba(231, 76, 60, 0.4);
        }
        
        .carb-label {
            font-size: 0.8rem;
            opacity: 0.9;
            margin-bottom: 8px;
            font-weight: 600;
            text-transform: uppercase;
            letter-spacing: 0.5px;
        }
        
        .carb-value {
            font-size: 1.8rem;
            font-weight: bold;
            margin-bottom: 5px;
            color: #FFE066;
        }
        
        .carb-detail {
            font-size: 0.7rem;
            opacity: 0.8;
        }
        
        .carburation-info {
            background: #fff5f5;
            border: 1px solid #fed7d7;
            border-radius: 8px;
            padding: 15px;
            margin-top: 15px;
        }
        
        .carb-conditions {
            font-size: 0.9rem;
        }
        
        .condition-item {
            display: flex;
            justify-content: space-between;
            margin-bottom: 8px;
        }
        
        .condition-item:last-child {
            margin-bottom: 0;
        }
        
        .condition-label {
            font-weight: 600;
            color: #2c3e50;
        }
        
        .condition-value {
            color: #e74c3c;
            font-weight: 500;
        }
        
        .atmo-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
            gap: 20px;
            margin-bottom: 25px;
        }
        .atmospheric-main-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
        }      
		
		.atmo-main-card {
			display: flex;
			align-items: center;
			background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
			border-radius: 15px;
			padding: 20px;
			margin-bottom: 20px;
			box-shadow: 0 8px 32px rgba(102, 126, 234, 0.3);
			color: white;
			width: 100%;
			min-height: 80px;
			flex: 1;
		}

        .atmo-main-card:hover {
            transform: translateY(-3px);
            box-shadow: 0 5px 15px rgba(0,0,0,0.3);
        }

		.atmo-main-card .atmo-label {
			font-size: 1.1rem;
            font-weight: 500;
			margin-bottom: 5px;
			opacity: 0.9;
			display: block;
			width: 100%;
}		

		.atmo-main-card .atmo-value {
			font-size: 2rem;
			font-weight: bold;
			margin-bottom: 5px;
            color: #FFE066;
			display: block;
			width: 100%;
}		

		.atmo-main-card .atmo-unit {
			font-size: 0.9rem;
			opacity: 0.8;
			display: block;
			width: 100%;
}		

        .atmo-card {
            background: linear-gradient(135deg, #667eea, #764ba2);
            color: white;
            font-size: 1rem;
            padding: 12px;
            border-radius: 10px;
            text-align: center;
            box-shadow: 0 3px 10px rgba(0,0,0,0.2);
            transition: all 0.3s;
        }
        
        .atmo-card:hover {
            transform: translateY(-2px);
            box-shadow: 0 5px 15px rgba(0,0,0,0.3);
        }
        
		.atmo-card .atmo-label {
            font-size: 1rem;
            opacity: 0.9;
            margin-bottom: 5px;
            font-weight: 500;
        }

		.atmo-card .atmo-value {
            font-size: 1.8rem;
            font-weight: bold;
            margin-bottom: 5px;
            color: #FFE066;
        }
        
        .atmo-card .atmo-unit {
            font-size: 0.8rem;
            opacity: 0.8;
        }
 		

        

		/* Styles CSS le scrollsnap */
	  
		.section, .results {
			 /*scroll-snap-align: start;*/
			 /*scroll-snap-stop: always;*/
			 display: flex;
			 flex-direction: column;
			 position: relative;
			 box-sizing: border-box;
			 padding: 20px;
			 overflow-y: auto;
			 
			 /* Pour les grandes sections, permettre le scroll interne */
			 max-height: 300vh; /* Maximum 2 écrans de hauteur */
		}

		.section-content {
			 flex: 1;
			 overflow-y: auto;
			 padding: 10px;
		}


		@keyframes bounce {
			 0%, 20%, 50%, 80%, 100% {
				  transform: translateX(-50%) translateY(0);
			 }
			 40% {
				  transform: translateX(-50%) translateY(-10px);
			 }
			 60% {
				  transform: translateX(-50%) translateY(-5px);
			 }
		}


		/* Option : Pagination visuelle */
		.page-dots {
			 position: fixed;
			 right: 20px;
			 top: 50%;
			 transform: translateY(-50%);
			 z-index: 997;
			 display: flex;
			 flex-direction: column;
			 gap: 10px;
		}

		.page-dot {
			 width: 12px;
			 height: 12px;
			 border-radius: 50%;
			 background: rgba(255, 107, 53, 0.3);
			 cursor: pointer;
			 transition: all 0.3s;
		}

		.page-dot.active {
			 background: #FF6B35;
			 transform: scale(1.3);
		}

		/* Pour gérer les très grandes sections (plus de 2 écrans) */
		.section.large-content {
			 max-height: none;
			 scroll-snap-align: start;
			 /* Créer des points de snap intermédiaires */
		}

		.section-part {
			 min-height: 100vh;
			 scroll-snap-align: start;
			 padding: 20px;
		}


				  
		/* Styles CSS pour le bouton et les statuts météo */
		.meteo-locale-section {
			background: linear-gradient(135deg, #e3f2fd 0%, #f1f8ff 100%) !important;
			border: 2px solid #8baefb;
			border-radius: 8px;
			padding: 15px;
			margin: 15px 0;
			color: #333 !important;
		}

		.meteo-locale-btn {
			 background: linear-gradient(135deg, #21a6f3 0%, #1976d2 100%);
			 margin-top: 10px;
			 color: white;
			 border: none;
			 padding: 12px 20px;
			 border-radius: 6px;
			 font-size: 14px;
			 font-weight: 600;
			 cursor: pointer;
			 transition: all 0.3s ease;
			 box-shadow: 0 2px 4px rgba(33, 150, 243, 0.3);
			 width: 100%;
			 max-width: 250px;
		}

		.meteo-locale-btn:hover:not(:disabled) {
			 background: linear-gradient(135deg, #1976d2 0%, #1565a0 100%);
			 box-shadow: 0 4px 8px rgba(33, 150, 243, 0.4);
			 transform: translateY(-1px);
		}

		.meteo-locale-btn:disabled {
			 background: #9e9e9e;
			 cursor: not-allowed;
			 transform: none;
			 box-shadow: none;
		}

		.meteo-status {
			 margin-top: 10px;
			 font-size: 13px;
			 line-height: 1.4;
		}

		.status-info {
			 color: #1976d2;
			 font-weight: 500;
		}

		.status-success {
			 color: #388e3c;
			 font-weight: 600;
		}

		.status-error {
			 color: #d32f2f;
			 font-weight: 600;
		}

		.location-info {
			 margin-top: 8px;
			 padding: 8px;
			 background: rgba(76, 175, 80, 0.1);
			 border-radius: 4px;
			 font-size: 12px;
			 color: #2e7d32;
		}

		.error-help {
			 margin-top: 8px;
			 padding: 8px;
			 background: rgba(255, 193, 7, 0.1);
			 border-radius: 4px;
			 font-size: 12px;
			 color: #f57c00;
		}


		/* Style pour la masselotte 	avant */
		.avant-masselotte {
			 position: absolute;
			 top: 50px; /* Au niveau des roues arrières */
			 left: 50%;
			 transform: translateX(-50%); /* Centré horizontalement */
			 width: 80px;
			 height: 40px;
			 background: linear-gradient(135deg, #3498db, #2980b9);
			 color: white;
			 border: 2px solid #2c3e50;
			 border-radius: 8px;
			 display: flex;
			 flex-direction: column;
			 align-items: center;
			 justify-content: center;
			 font-weight: bold;
			 font-size: 0.8rem;
			 box-shadow: 0 3px 10px rgba(0,0,0,0.2);
			 transition: all 0.3s;
		}

		/* Style pour la masselotte du baquet */
		.baquet-masselotte {
			 position: absolute;
			 bottom: 50px; /* Au niveau des roues arrières */
			 left: 50%;
			 transform: translateX(-50%); /* Centré horizontalement */
			 width: 80px;
			 height: 40px;
			 background: linear-gradient(135deg, #3498db, #2980b9);
			 color: white;
			 border: 2px solid #2c3e50;
			 border-radius: 8px;
			 display: flex;
			 flex-direction: column;
			 align-items: center;
			 justify-content: center;
			 font-weight: bold;
			 font-size: 0.8rem;
			 box-shadow: 0 3px 10px rgba(0,0,0,0.2);
			 transition: all 0.3s;
		}

		.baquet-masselotte:hover {
			 transform: translateX(-50%) scale(1.05);
			 box-shadow: 0 4px 15px rgba(0,0,0,0.3);
		}
		
		.avant-masselotte:hover {
			 transform: translateX(-50%) scale(1.05);
			 box-shadow: 0 4px 15px rgba(0,0,0,0.3);
		}

		.baquet-label {
			 font-size: 0.7rem;
			 margin-bottom: 2px;
			 text-transform: uppercase;
		}

		.baquet-value {
			 font-size: 1rem;
			 font-weight: bold;
		}

		.notes-section {
			 margin-top: 10px;
			 width: 100%;
		}

		.notes-section .input-group {
			 margin-bottom: 0; /* Supprime la marge du bas pour coller à la fin de section */
		}

		.notes-section label {
			 display: block;
			 margin-bottom: 8px;
			 font-weight: 600;
			 color: #555;
			 font-size: 0.9rem;
		}

		#notes-pilote {
			 width: 100%;
			 min-height: 80px;
			 max-height: 200px;
			 padding: 12px;
			 border: 2px solid #ddd;
			 border-radius: 8px;
			 font-size: 14px;
			 font-family: inherit;
			 line-height: 1.4;
			 resize: vertical; /* Permet redimensionnement vertical seulement */
			 transition: all 0.3s ease;
			 background: white;
			 box-sizing: border-box;
		}

		#notes-pilote:focus {
			 outline: none;
			 border-color: #FF6B35;
			 box-shadow: 0 0 0 3px rgba(255, 107, 53, 0.1);
		}

		#notes-pilote::placeholder {
			 color: #999;
			 font-style: italic;
		}


		/* Style pour le texte d'aide */
		.circuit-help-text {
			 font-size: 0.8rem; 
			 color: #666; 
			 margin-top: 4px; 
			 margin-left: 26px;
			 font-style: italic;
		}

.tire-input {
    position: absolute;
    width: 110px;
    height: 130px;
    border-radius: 10px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    color: white;
    font-weight: bold;
    box-shadow: 0 4px 15px rgba(0,0,0,0.3);
    transition: all 0.3s;
    border: 3px solid #FF6B35;
    /* Dégradé bleu-blanc-rouge "frenchy" */
    background: linear-gradient(180deg, #0077B4 0%, #FFFFFF 30%,#FFFFFF 70%, #EF4135 100%);
}


.tire-input .corner-label {
    font-size: 1rem;
    margin-bottom: 2px;
    font-weight: bold;
    text-transform: uppercase;
    color: #2c3e50;
    text-shadow: 1px 1px 2px rgba(255,255,255,0.8);
}

.pressure-input {
    width: 68px;
    height: 26px;
    border: 1px solid #ddd;
    border-radius: 4px;
    text-align: center;
    font-size: 1.5rem;
    font-weight: bold;
    color: #000;
    background: rgba(255,255,255,0.95);
    transition: all 0.2s;
	 margin-bottom: 5px;

}

.pressure-input:focus {
    outline: none;
    background: white;
    box-shadow: 0 0 0 2px rgba(255, 107, 53, 0.5);
    transform: scale(1.05);
}

.pressure-input.cold {
    border-color: #0055A4;
    background: rgba(0, 85, 164, 0.1);
	 color: #0000CC;
}

.pressure-input.hot {
    border-color: #EF4135;
    background: rgba(239, 65, 53, 0.1);
	 color: #CC0000;
}

.pressure-input.cold:focus {
    box-shadow: 0 0 0 2px rgba(0, 85, 164, 0.4);
}

.pressure-input.hot:focus {
    box-shadow: 0 0 0 2px rgba(239, 65, 53, 0.4);
}

/* Positionnement des nouvelles cases - SOUS les cases existantes */
.tire-input-front-left { 
    top: 15px; 
    left: 30px; 
}
.tire-input-front-right { 
    top: 15px; 
    right: 30px; 
}
.tire-input-rear-left { 
    bottom: 15px; 
    left: 0px; 
	 width: 130px;
    height: 140px;

}
.tire-input-rear-right { 
    bottom: 15px; 
    right: 0px; 
	 width: 130px;
    height: 140px;
}

.tire-input:hover {
    transform: scale(1.2);
    box-shadow: 0 6px 20px rgba(0,0,0,0.4);
}

/* Labels pour les champs froid/chaud */
.pressure-label {
    font-size: 0.6rem;
    color: #2c3e50;
    font-weight: 600;
    margin: 0;
    text-shadow: 1px 1px 2px rgba(255,255,255,0.8);
}

.pressure-label.cold {
    color: #0055A4;
}

.pressure-label.hot {
    color: #EF4135;
}

/* Styles pour les champs en lecture seule */
#sauvegarde-nom-pilote-display,
#sauvegarde-circuit-display {
    background-color: #f5f5f5 !important;
    color: #666 !important;
    cursor: not-allowed !important;
    border-color: #ccc !important;
}

/* 1. Réinitialiser tous les checkbox */
input[type="checkbox"] {
    width: auto !important;
    height: auto !important;
    display: inline-block !important;
    margin: 0 8px 0 0 !important;
    accent-color: #FF6B35;
    transform: scale(1.2);
    cursor: pointer;
    vertical-align: middle;
}

/* 2. Structure normale : input + label */
input[type="checkbox"] + label {
    display: inline !important;
    margin: 0 !important;
    cursor: pointer;
    vertical-align: middle;
}

/* 3. Structure : label contenant input */
label:has(input[type="checkbox"]) {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    margin-bottom: 8px !important;
    cursor: pointer;
}


/* Section performance moteur sur toute la largeur */
#section-performance-moteur {
    grid-column: 1 / -1;
    width: 100%;
}

#graphique-performance {
    border: 1px solid #ddd;
    border-radius: 5px;
    background: white;
    margin: 10px auto;
    display: block;
    width: 100%;
    max-width: 800px;
}

#courbes-performance {
    margin-top: 20px;
    width: 100%;
}

.legende-graphique {
    display: flex;
    justify-content: center;
    gap: 20px;
    margin-top: 10px;
    font-size: 0.9rem;
}

.legende-item {
    display: flex;
    align-items: center;
    gap: 5px;
}

.color-box {
    width: 15px;
    height: 15px;
    border-radius: 2px;
}

.courbe-puissance {
    background: #FF6B35;
}

.courbe-resistance {
    background: #2E8B57;
}



/* Styles pour la section sauvegarde et restauration */

.sauvegarde-form {
    background: #f8f9fa;
    padding: 15px;
    border-radius: 10px;
    margin-bottom: 20px;
}

.btn-sauvegarde, .btn-recherche {
    background: linear-gradient(45deg, #27ae60, #2ecc71);
    color: white;
    border: none;
    padding: 12px 20px;
    border-radius: 8px;
    font-size: 14px;
    font-weight: bold;
    cursor: pointer;
    width: 100%;
    transition: all 0.3s;
    margin-top: 10px;
}

.btn-sauvegarde:hover, .btn-recherche:hover {
    background: linear-gradient(45deg, #229954, #27ae60);
    transform: translateY(-1px);
}

.recherche-section {
    background: #f1f2f6;
    padding: 15px;
    border-radius: 10px;
    margin-bottom: 20px;
}

.recherche-section h3 {
    margin-top: 0;
    color: #2c3e50;
    font-size: 1.1rem;
}

.liste-sauvegardes {
    max-height: 400px;
    overflow-y: auto;
    border: 1px solid #ddd;
    border-radius: 10px;
    background: white;
}

.sauvegarde-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 12px 15px;
    border-bottom: 1px solid #eee;
    transition: background-color 0.2s;
}

.sauvegarde-item:hover {
    background-color: #f8f9fa;
}

.sauvegarde-item:last-child {
    border-bottom: none;
}

.sauvegarde-info {
    flex: 1;
}

.sauvegarde-info .titre {
    font-weight: bold;
    color: #2c3e50;
    margin-bottom: 4px;
}

.sauvegarde-info .details {
    font-size: 0.85rem;
    color: #666;
}

.sauvegarde-actions {
    display: flex;
    gap: 8px;
}

.btn-restaurer, .btn-supprimer {
    padding: 6px 12px;
    border: none;
    border-radius: 5px;
    font-size: 12px;
    font-weight: bold;
    cursor: pointer;
    transition: all 0.2s;
}

.btn-restaurer {
    background: #3498db;
    color: white;
}

.btn-restaurer:hover {
    background: #2980b9;
}

.btn-supprimer {
    background: #e74c3c;
    color: white;
}

.btn-supprimer:hover {
    background: #c0392b;
}

.aucune-sauvegarde {
    text-align: center;
    color: #666;
    padding: 20px;
    font-style: italic;
}

/* Styles pour les modales de confirmation */
.modal-overlay {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.5);
    z-index: 1000;
}

.modal-content {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background: white;
    padding: 25px;
    border-radius: 15px;
    max-width: 400px;
    width: 90%;
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.3);
}

.modal-content h3 {
    margin-top: 0;
    color: #2c3e50;
}

.modal-buttons {
    display: flex;
    gap: 10px;
    margin-top: 20px;
}

.btn-confirmer, .btn-annuler {
    flex: 1;
    padding: 10px;
    border: none;
    border-radius: 8px;
    font-weight: bold;
    cursor: pointer;
    transition: all 0.2s;
}

.btn-confirmer {
    background: #27ae60;
    color: white;
}

.btn-confirmer:hover {
    background: #229954;
}

.btn-annuler {
    background: #95a5a6;
    color: white;
}

.btn-annuler:hover {
    background: #7f8c8d;
}


/* Section Prévisions Météo */
#section-previsions-meteo {
    grid-column: 1 / -1;
    width: 100%;
}

.previsions-info {
    background: #f8f9fa;
    padding: 15px;
    border-radius: 8px;
    margin-bottom: 15px;
}

.previsions-info p {
    margin: 5px 0;
    font-size: 0.9rem;
}

.previsions-tableau {
    margin-bottom: 20px;
    overflow-x: auto;
}

#tableau-previsions {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.8rem;
}

#tableau-previsions th,
#tableau-previsions td {
    padding: 8px;
    text-align: center;
    border: 1px solid #ddd;
}

#tableau-previsions th {
    background: #f8f9fa;
    font-weight: bold;
}

#tableau-previsions tbody tr:nth-child(even) {
    background: #f9f9f9;
}

.previsions-graphique {
    text-align: center;
}

#graphique-previsions {
    border: 1px solid #ddd;
    border-radius: 5px;
    background: white;
    max-width: 100%;
}


/* === BOUTON RAFRAÎCHIR SIMPLIFIÉ === */
.btn-refresh {
    background: linear-gradient(45deg, #3498db, #2980b9);
    color: white;
    border: none;
    padding: 8px 12px;
    border-radius: 15px;
    font-size: 12px;
    font-weight: bold;
    cursor: pointer;
    margin-left: 10px;
    transition: all 0.3s ease;
    box-shadow: 0 2px 4px rgba(52, 152, 219, 0.3);
}

.btn-refresh:hover:not(:disabled) {
    background: linear-gradient(45deg, #2980b9, #1f618d);
    transform: translateY(-1px);
    box-shadow: 0 4px 8px rgba(52, 152, 219, 0.4);
}

.btn-refresh:active {
    transform: translateY(0);
}

.btn-refresh:disabled {
    background: #95a5a6 !important;
    cursor: not-allowed !important;
    transform: none !important;
    opacity: 0.7;
}

/* Animation plus simple pour Firefox */
.btn-refresh:disabled {
    transition: transform 0.3s ease;
}	


/* === AJOUTER CE CSS pour les tooltips d'icônes météo === */
/* (À ajouter dans calculatrice.css) */

/* Style pour les icônes météo avec tooltip */
.meteo-icon-tooltip {
    font-size: 1.2em;
    cursor: pointer;
    position: relative;
    display: inline-block;
    margin-left: 5px;
    transition: transform 0.2s ease;
}

.meteo-icon-tooltip:hover {
    transform: scale(1.3);
}

/* Tooltip au survol */
.meteo-icon-tooltip::before {
    content: attr(title);
    position: absolute;
    bottom: 100%;
    left: 50%;
    transform: translateX(-50%);
    background: rgba(0, 0, 0, 0.9);
    color: white;
    padding: 8px 12px;
    border-radius: 6px;
    font-size: 0.8em;
    font-weight: normal;
    white-space: nowrap;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
    z-index: 1000;
    pointer-events: none;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
}

/* Petite flèche du tooltip */
.meteo-icon-tooltip::after {
    content: '';
    position: absolute;
    bottom: 100%;
    left: 50%;
    transform: translateX(-50%);
    border: 5px solid transparent;
    border-top-color: rgba(0, 0, 0, 0.9);
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
    z-index: 1000;
    pointer-events: none;
}

/* Afficher le tooltip au survol */
.meteo-icon-tooltip:hover::before,
.meteo-icon-tooltip:hover::after {
    opacity: 1;
    visibility: visible;
}

/* Style pour les tableaux de prévisions */
#tableau-previsions .meteo-icon-tooltip {
    vertical-align: middle;
}

/* Version responsive pour mobile */
@media (max-width: 768px) {
    .meteo-icon-tooltip {
        font-size: 1.1em;
    }
    
    .meteo-icon-tooltip::before {
        font-size: 0.75em;
        padding: 6px 10px;
    }
}

/* Amélioration pour l'accessibilité */
.meteo-icon-tooltip:focus::before,
.meteo-icon-tooltip:focus::after {
    opacity: 1;
    visibility: visible;
}