/* ============ DADA TRAVEL — Styles ============ */
*{box-sizing:border-box} html,body{height:100%}
:root{
  --bleu:#0ea5e9; --bleu2:#0b87c2; --orange:#f97316;
  --fond:#f3f6fb; --txt:#0f172a; --bdr:#dbe4ef; --muted:#64748b;
  --dark:#0b1f44; --card:#ffffff;
}
body{margin:0;background:var(--fond);color:var(--txt);font-family:Arial,Helvetica,sans-serif;min-height:100vh;display:flex;flex-direction:column}
/* === Désactiver tout soulignement sur tous les liens === */
a,
a:hover,
a:focus,
a:active,
a:visited {
  text-decoration: none !important;
}

.center{text-align:center}
.dt-container{max-width:1200px;margin:0 auto;padding:0 16px}
.dt-section{padding:26px 0} main{flex:1 0 auto} .dt-footer{flex-shrink:0}

/* Header */
.dt-header{background:linear-gradient(180deg,#12a7ea 0%,var(--bleu2) 100%);color:#fff;position:sticky;top:0;z-index:10;box-shadow:0 10px 24px rgba(0,0,0,.12)}
.dt-nav{display:flex;justify-content:space-between;align-items:center;padding:14px 0}
.dt-brand{display:flex;align-items:center;gap:12px;color:#fff;text-decoration:none}
.dt-logo{width:40px;height:40px;border-radius:12px;background:var(--orange);color:#fff;display:grid;place-items:center;font-weight:900}
.dt-name{font-weight:900;letter-spacing:.5px}
.dt-menu{display:flex;align-items:center;gap:22px}
.dt-menu a{color:#e8f5ff;font-weight:700;padding:8px 0}
/* Ne souligne QUE les liens actifs qui ne sont pas des boutons */
.dt-menu a.actif:not(.dt-btn){
  text-decoration: underline;
  text-underline-offset: 8px;
  text-decoration-thickness: 3px;
}
/* Et s'il y a quand même un actif sur un bouton, on enlève le soulignement */
.dt-menu .dt-btn.actif{ text-decoration: none; }


/* Boutons */
.dt-btn{background:var(--bleu);color:#fff;padding:10px 16px;border-radius:8px;display:inline-block;font-weight:800;box-shadow:0 8px 20px rgba(2,6,23,.12);border:none;cursor:pointer}
.dt-btn:hover{filter:brightness(.98)} .dt-btn:active{transform:translateY(1px)}
 .dt-block{width:100%;text-align:center}

/* Accueil */
.dt-grid2{display:grid;grid-template-columns:3fr 2fr;gap:22px;align-items:stretch}
@media(max-width:900px){.dt-grid2{grid-template-columns:1fr}}
.dt-card{background:var(--card);border-radius:24px;padding:55px;box-shadow:0 24px 54px rgba(2,6,23,.12)}
.dt-badge{display:inline-block;padding:8px 12px;border-radius:999px;background:#e3f3ff;color:#1b7fb0;font-weight:800;font-size:13px}
.dt-title{font-size:42px;line-height:1.15;margin:14px 0 8px}
.dt-sub{color:#334155;line-height:1.8}
.dt-orange{color:var(--orange)} .dt-blue{color:var(--bleu)}
.dt-perks{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:12px 0}
.dt-perk{display:flex;gap:12px;align-items:flex-start;padding:16px;border-radius:20px;box-shadow:0 16px 36px rgba(2,6,23,.08)}
.dt-ciel{background:#e7f3ff} .dt-peche{background:#fff1e6}
.dt-ico{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:#08b6e3;color:#fff;font-weight:900}
.dt-perk-title{font-size:18px;font-weight:900;margin-top:2px} .dt-perk-text{color:#475569}
.dt-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:10px}
.dt-hero{border-radius:24px;overflow:hidden;background:#fff;box-shadow:0 24px 54px rgba(2,6,23,.12)}
.dt-hero-img{width:100%;height:480px;object-fit:cover}

/* Auth & Inscription */
.dt-auth-center{display:flex;justify-content:center}
.dt-auth-card{width:100%;max-width:500px;margin:0 auto;padding: 30px;}
.dt-fields{display:grid;gap:12px;max-width:560px}
.dt-field label{display:block;margin-bottom:6px;font-weight:700;color:var(--bleu2)}
.dt-field input, .dt-field select{width:100%;height:48px;padding:10px 12px;border:1px solid var(--bdr);border-radius:10px;background:#fff;font-size:16px}

/* Choix de rôle */
.dt-choice-grid{display:grid;gap:12px}
@media(min-width:700px){.dt-choice-grid{grid-template-columns:1fr 1fr}}
.dt-choice-btn{display:flex;align-items:center;gap:12px;border:1px solid var(--bdr);border-radius:14px;padding:14px 16px;background:#fff;color:inherit;text-decoration:none;box-shadow:0 12px 28px rgba(2,6,23,.08);transition:transform .15s, box-shadow .15s}
.dt-choice-btn:hover{transform:translateY(-1px);box-shadow:0 14px 34px rgba(2,6,23,.12)}
.dt-icon{width:48px;height:48px;border-radius:12px;display:grid;place-items:center;background:#e7f3ff;font-size:24px}
.dt-orange-alt .dt-icon{background:#fff1e6}
.dt-choice-title{display:block;font-weight:900;font-size:18px}
.dt-choice-text{display:block;color:var(--muted);font-size:14px}

/* Footer */
.dt-footer{background:var(--dark);color:#cbd5e1;padding:18px 0;margin-top:28px}

/* couleur de texte */
.dt-orange{ color: var(--orange); }
.dt-blue  { color: var(--bleu); }

/* ===== Validation champs ===== */
.dt-field .dt-error{
  color:#b91c1c;
  font-size:13px;
  margin-top:4px;
  display:none;
}
.dt-field.invalid input,
.dt-field.invalid select{
  border-color:#ef4444;
  background:#fff5f5;
}
.dt-field.invalid .dt-error{ display:block; }
/* Alerte globale (au-dessus du formulaire) */
.dt-alert {
  padding: 14px 16px;
  border-radius: 12px;
  margin-bottom: 16px;
}
.dt-alert--error{
  background:#fee2e2;
  color:#991b1b;
  border:1px solid #fecaca;
  border-left:5px solid #ef4444;
}


/* --- Panneau latéral (modal) --- */
.sheet{
  position:fixed; inset:0; z-index:9999;
  display:none;
}
.sheet.is-open{ display:block; }

.sheet__backdrop{
  position:absolute; inset:0;
  background:rgba(3,25,48,.55);
  backdrop-filter:saturate(120%) blur(2px);
}

.sheet__panel{
  position:absolute; top:0; right:0;
  width:520px; max-width:calc(100% - 32px);
  height:100vh;
  background:#fff; border-radius:16px 0 0 16px;
  box-shadow:-24px 0 60px rgba(0,0,0,.2);
  transform:translateX(24px); opacity:0;
  transition:transform .35s ease, opacity .35s ease;
  display:flex; flex-direction:column;
}

.sheet.is-open .sheet__panel{
  transform:translateX(0); opacity:1;
}

.sheet__header{
  display:flex; align-items:center; justify-content:space-between;
  padding:16px 20px; border-bottom:1px solid #e9eef5;
}
.sheet__header h3{ margin:0; font-size:20px; }

.sheet__close{
  border:0; background:transparent; font-size:28px; line-height:1;
  cursor:pointer; color:#0b3b62;
}

.sheet__body{
  padding:16px 20px;
  overflow:auto;
  height: calc(100vh - 64px - 68px); /* header + footer */
}

.sheet__footer{
  padding:14px 20px;
  border-top:1px solid #e9eef5;
  display:flex; gap:10px; justify-content:flex-end;
}

/* Champs basiques */
.fld{ display:block; margin-bottom:14px; }
.fld > span{ display:block; font-weight:600; margin-bottom:6px; color:#0b3b62; }
.fld input, .fld select, .fld textarea{
  width:100%; box-sizing:border-box;
  border:1px solid #d7e3ef; border-radius:10px;
  padding:12px 14px; font-size:15px; outline:none;
}
.fld input:focus, .fld select:focus, .fld textarea:focus{
  border-color:#1fa3e2; box-shadow:0 0 0 3px rgba(31,163,226,.15);
}

/* Petits boutons de base */
.btn{ border-radius:12px; padding:10px 16px; border:1px solid transparent; cursor:pointer; }
.btn-light{ background:#f4f7fb; border-color:#e3ebf4; }
.btn-primary{ background:#10a2e6; color:#fff; }

/* Responsive: panneau plein écran sur mobile */
@media (max-width: 640px){
  .sheet__panel{ width:100%; border-radius:0; }
  .sheet__body{ height: calc(100vh - 56px - 64px); }
}



/* Supprime underline uniquement pour le logo DADA TRAVEL */
a.dt-brand,

a.dt-brand:hover,
a.dt-brand:focus,
a.dt-brand:visited,
a.dt-brand:active {
  text-decoration: none !important;
  cursor: pointer !important;
}

/* Désactiver soulignement pour les liens du menu */
.dt-menu a,
.dt-btn,
.dt-choice-title,
.dt-menu a:hover,
.dt-menu a:focus,
.dt-menu a:active {
  text-decoration: none !important;
  cursor: pointer !important;
}

/* MAIS garder underline uniquement pour le lien actif */
.dt-menu a.actif:not(.dt-btn) {
  text-decoration: underline !important;
  text-underline-offset: 8px;
  text-decoration-thickness: 3px;
}

/* Bouton Connexion orange plein */


.dt-btn.dt-orange:hover {
  background: #fff;                /* inverse au survol */
  color: var(--orange);
  border-color: var(--orange);
}

/* Animation au survol pour les boutons .dt-btn */
.dt-btn {
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.dt-btn:hover {
  transform: translateY(-1px) scale(1.000009);  /* léger zoom et effet levé */
  box-shadow: 0 10px 24px rgba(0,0,0,.2);   /* ombre accentuée */
}

.dt-btn:active {
  transform: translateY(-0px) scale(1);  /* effet clic */
}

.dt-grid-2 {
  display: grid;
  grid-template-columns: 1fr 1fr; /* 2 colonnes égales */
  gap: 16px; /* espace entre les colonnes */
  align-items: stretch; /* les blocs s’alignent en hauteur */
}




.dt-field label {
  width: 150px;          /* largeur fixe pour bien aligner les labels */
  font-weight: bold;
}

.dt-fields .dt-field  input {
  flex: 1;               /* le champ prend tout l’espace restant */
  padding: 1px 1px;
  border: 1px solid #ccc;
  border-radius: 2px;
}
.pill{
  border-radius: 4px !important;
}
.dt-btn.dt-orange {
  background: var(--orange);       /* fond orange plein */
  color: #fff;                     /* texte blanc */
  border: 2px solid var(--orange); /* contour orange */
  padding: 12px 22px;              /* espacement interne plus large */
  font-weight: 800;
}
/* Empêcher la sélection de texte dans les champs input */
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="password"],
input[type="number"],
textarea,
select {
    user-select: none;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
}

/* Optionnel : style au focus pour améliorer l'expérience utilisateur */
input[type="text"]:focus,
input[type="email"]:focus,
input[type="tel"]:focus,
input[type="password"]:focus,
input[type="number"]:focus,
textarea:focus,
select:focus {
    outline: none;
    border-radius: 4px;
    outline-offset: 2px;
}

/* —————  ALIGNEMENT PROPRE POUR TOUS TES TABLEAUX  ————— */
.table table{
  width:100%;
  border-collapse:collapse;       /* même modèle largeur entête/corps */
}

.table thead th,
.table tbody td{
  padding:12px 16px;              /* même padding partout = mêmes repères visuels */
  vertical-align:middle;
  text-align:left;
  white-space:nowrap;             /* évite les retours à la ligne parasites */
}

.table thead th:first-child,
.table tbody td:first-child{
  padding-left:16px;              /* même point de départ 1ère colonne */
}

.table thead th:last-child,
.table tbody td:last-child{
  padding-right:16px;
}

/* Les nombres (places, prix) alignés joliment */
.table td, .table th{
  font-variant-numeric: tabular-nums;
}

/* Si tu utilises <strong> dans la 1ère cellule, on évite un gras trop massif
   qui donne l’impression d’un décalage visuel */
.table tbody td:first-child strong{
  font-weight:600;
}

/* Pastilles statut – on ne touche pas, juste au cas où */
.tag{ padding:4px 10px; border-radius:999px; font-size:12px; font-weight:700 }
.tag.ok{ background:#dcfce7; color:#166534 }
.tag.warn{ background:#fff1e6; color:#a53d00 }
.tag.gray{ background:#e9eef5; color:#334155 }

/* Optionnel : coupe élégamment si un libellé est trop long (bus, chauffeur) */
.table tbody td{
  overflow:hidden;
  text-overflow:ellipsis;
}


