:root {
--primary: #0078d7;
--secondary: #28a745;
--danger: #d9534f;
--bg: #f9fafc;
--card-bg: #ffffff;
--border: #ddd;
--text: #222;
}

body {
font-family: "Segoe UI", Roboto, sans-serif;
margin: 0;
padding: 0;
background: var(--bg);
color: var(--text);
display: flex;
flex-direction: column;
align-items: center;
min-height: 100vh;
}

header {
width: 100%;
background: var(--primary);
color: white;
padding: 16px 0;
text-align: center;
font-size: 1.5em;
font-weight: bold;
box-shadow: 0 2px 6px rgba(0,0,0,0.2);
}

main {
width: 85%;
max-width: 900px; /* ✅ réduit (avant : 1200px) */
margin-top: 20px;
display: flex;
flex-direction: column;
gap: 20px;
padding-bottom: 40px;
}

fieldset {
background: var(--card-bg);
border: 1px solid var(--border);
border-radius: 10px;
padding: 18px;
box-shadow: 0 2px 8px rgba(0,0,0,0.05);
transition: transform 0.1s ease-in-out;
}

fieldset:hover {
transform: translateY(-1px);
}

legend {
font-weight: bold;
color: var(--primary);
padding: 0 8px;
font-size: 1.05em;
}

.param-line,
.distance-line {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 8px;
flex-wrap: nowrap;
gap: 10px;
}

.param-line label,
.distance-line label {
flex: 1 1 160px; /* ✅ réduit un peu */
text-align: left;
font-size: 0.95em;
}

.param-line input[type="number"],
.distance-line input[type="number"] {
flex: 1 1 100px;
min-width: 80px;
max-width: 140px;
padding: 6px;
border: 1px solid #ccc;
border-radius: 6px;
font-size: 0.95em;
transition: all 0.2s;
}

.param-line input[type="number"]:focus,
.distance-line input[type="number"]:focus {
border-color: var(--primary);
box-shadow: 0 0 4px rgba(0,120,215,0.2);
outline: none;
}

.checkbox-group {
display: flex;
align-items: center;
gap: 5px;
justify-content: flex-end;
min-width: 70px;
}

button {
display: block;
width: fit-content;
margin: 15px auto 0;
padding: 8px 16px; /* ✅ un peu plus petit */
border: none;
border-radius: 6px;
color: white;
background: var(--primary);
cursor: pointer;
font-size: 0.95em;
transition: background 0.2s, transform 0.1s;
}

button:hover {
background: #005fa3;
transform: translateY(-1px);
}

.sub-button {
background: var(--secondary);
}

.sub-button:hover {
background: #1f7a32;
}

.sub-result {
margin-top: 10px;
padding: 6px;
background: #eef5ff;
border: 1px solid var(--primary);
border-radius: 5px;
color: #003366;
font-size: 0.9em;
text-align: center;
}

#resultat {
text-align: center;
padding: 12px;
border-radius: 8px;
background: #f1f1f1;
font-size: 1em;
margin-top: 10px;
box-shadow: 0 1px 4px rgba(0,0,0,0.1);
}

.graph-container {
display: flex;
justify-content: center;
flex-wrap: wrap;
gap: 20px;
margin-top: 20px;
}

canvas {
max-width: 480px; /* ✅ réduit (avant 600px) */
background: white;
border-radius: 10px;
padding: 8px;
box-shadow: 0 2px 6px rgba(0,0,0,0.1);
}

table {
border-collapse: collapse;
background: white;
box-shadow: 0 2px 6px rgba(0,0,0,0.1);
border-radius: 8px;
overflow: hidden;
font-size: 0.9em;
}

th, td {
padding: 6px 10px;
text-align: right;
border-bottom: 1px solid #eee;
}

th {
background: var(--primary);
color: white;
text-align: center;
}

tr:nth-child(even) { background: #f8f9fb; }

input:out-of-range {
border: 2px solid var(--danger);
background: #ffecec;
}

footer {
width: 100%;
background-color: var(--primary);
color: white;
text-align: center;
padding: 10px 0;
font-size: 0.9em;
margin-top: auto; /* pour coller en bas si le body est en flex column */
box-shadow: 0 -2px 6px rgba(0, 0, 0, 0.2);
}
/* Rules */
.rules-fieldset {
background: var(--card-bg);
border: 1px solid var(--border);
border-radius: 10px;
padding: 18px;
box-shadow: 0 2px 8px rgba(0,0,0,0.05);
}

.rules-container {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
gap: 12px;
margin-top: 10px;
}

.rule-card {
background: #f7faff;
border: 1px solid #d6e4f5;
border-radius: 8px;
padding: 12px;
display: flex;
flex-direction: column;
gap: 4px;
box-shadow: 0 1px 4px rgba(0,0,0,0.07);
font-size: 0.93em;
}

.rule-card strong {
color: var(--primary);
}

.rule-card span {
color: #444;
font-size: 0.9em;
}

/* Description */
.description-fieldset {
background: var(--card-bg);
border: 1px solid var(--border);
border-radius: 10px;
padding: 18px;
margin-top: 10px;
box-shadow: 0 2px 8px rgba(0,0,0,0.05);
}

.description-fieldset legend {
font-weight: bold;
color: var(--primary);
padding: 0 8px;
font-size: 1.05em;
}

.description-fieldset p {
margin: 8px 0;
line-height: 1.4em;
color: #333;
}
/* Navbar */
.navbar {
display: flex;
justify-content: space-between;
align-items: center;
background: var(--primary);
padding: 12px 24px;
color: white;
border-bottom: 1px solid rgba(255,255,255,0.15);
}

.navbar .logo {
font-size: 1.15em;
font-weight: bold;
margin-left: 10px;
}

.navbar ul {
  margin-right: 10px;
  }

.nav-links {
display: flex;
list-style: none;
gap: 18px;
margin: 0;
margin-right: 10px;
padding: 0;
}

.nav-links li {
margin-top: 15px;
}

.nav-links li a {
text-decoration: none;
color: white;
font-size: 0.95em;
transition: opacity 0.2s;
justify-content: center;
}

.nav-links li a:hover {
opacity: 0.75;
}

/* FAQ */
.faq-fieldset {
background: var(--card-bg);
border: 1px solid var(--border);
border-radius: 10px;
padding: 18px;
margin-top: 10px;
margin-bottom: 30px;
box-shadow: 0 2px 8px rgba(0,0,0,0.05);
}

.faq-fieldset legend {
font-weight: bold;
color: var(--primary);
padding: 0 8px;
font-size: 1.05em;
}

.accordion-item {
border-bottom: 1px solid #ddd;
}

.accordion-button {
width: 100%;
text-align: left;
padding: 10px;
border: none;
background: #eef3ff;
font-size: 0.95em;
cursor: pointer;
color: var(--primary);
font-weight: 600;
border-radius: 6px;
margin-bottom: 5px;
transition: background 0.2s;
}

.accordion-button:hover {
background: #d9e6ff;
}

.accordion-content {
max-height: 0;
overflow: hidden;
transition: max-height 0.25s ease;
padding: 0 10px;
}

.accordion-content p {
margin: 8px 0;
font-size: 0.93em;
}

/* Legal */
.legal-fieldset {
background: var(--card-bg);
border: 1px solid var(--border);
border-radius: 10px;
padding: 18px;
margin-top: 20px;
margin-bottom: 40px;
box-shadow: 0 2px 8px rgba(0,0,0,0.05);
font-size: 0.92em;
line-height: 1.5em;
}

.legal-fieldset legend {
font-weight: bold;
color: var(--primary);
padding: 0 8px;
font-size: 1.05em;
}

.legal-fieldset h4 {
margin-top: 14px;
margin-bottom: 6px;
color: var(--primary);
font-size: 1em;
}

/* Reset button*/
.reset-btn {
  margin-top: 15px;
  background-color: #cccccc;
  padding: 10px 15px;
  border: none;
  border-radius: 6px;
  cursor: pointer;
  font-size: 0.95em;
  transition: background 0.2s;
}

.reset-btn:hover {
  background-color: #b3b3b3;
}

/* ----- NAVBAR DESKTOP ----- */
.navbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: var(--primary);
  padding: 12px 24px;
  color: white;
}

.logo {
  font-size: 1.2em;
  font-weight: bold;
}

.nav-menu {
  display: flex;
}

.nav-links {
  display: flex;
  list-style: none;
  gap: 20px;
  margin: 0;
  padding: 0;
}

.nav-links li a {
  text-decoration: none;
  color: white;
  font-size: 0.95em;
  transition: opacity 0.2s;
}

.nav-links li a:hover {
  opacity: 0.75;
}

/* Cache le bouton burger en desktop */
.burger {
  display: none;
  background: none;
  border: none;
  font-size: 26px;
  color: white;
  cursor: pointer;
}

.ads-container {
  margin: 20px auto;
  text-align: center;
  min-height: 90px; /* reserve space */
  display: flex;
  justify-content: center;
  align-items: center;
}

/* ----- MOBILE ----- */
@media (max-width: 768px) 
{
    .burger {
        display: block;
    }

    .nav-menu {
        display: none;
        width: 100%;
    }

    .nav-menu.active {
        display: block;
    }

    .nav-links {
        flex-direction: column;
        gap: 10px;
        padding-top: 10px;
    }

    .nav-links li {
        text-align: center;
    }

    .param-line input {
            font-size: 16px;        /* critical for iOS */
            min-height: 30px;
    }
}