/* Reset de base */
* { box-sizing: border-box; }

/* Sélecteur de langue */
.language-selector {
    position: fixed;
    top: 0; left: 0; width: 100vw; height: 100vh;
    background: #0a0a0a;
    display: flex; justify-content: center; align-items: center;
    z-index: 9999;
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
}
.language-container {
    background: #1a1a1a;
    border-radius: 20px;
    box-shadow: 0 20px 60px rgba(0,0,0,0.5);
    padding: 2.5rem;
    max-width: 500px;
    width: 90%;
    text-align: center;
    border: 1px solid #333;
    min-height: 350px;
}
.language-buttons {
    display: flex;
    flex-direction: column;
    gap: 1.2rem;
    margin: 2rem 0;
    width: 100%;
}
.lang-btn {
    background: #2a2a2a;
    border: 2px solid #333;
    border-radius: 15px;
    padding: 1.2rem;
    cursor: pointer;
    transition: all 0.2s;
    text-align: left;
    width: 100%;
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: center;
    gap: 1.2rem;
    color: #fff;
    text-decoration: none;
}
.lang-btn:hover {
    border-color: #01A6FF;
    background: #333;
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 6px 18px rgba(0,0,0,0.2);
}
.btn-circle {
    width: 48px; height: 48px;
    border-radius: 50%;
    background: #01A6FF;
    display: flex; align-items: center; justify-content: center;
    font-size: 2rem;
}

/* Responsive */
@media (max-width: 600px) {
    .language-container { padding: 1.2rem; }
    .lang-btn { flex-direction: column; gap: 0.5rem; font-size: 1rem; }
    .btn-circle { width: 36px; height: 36px; font-size: 1.3rem; }
}

/* Terminal minimal */
.terminal-container {
    width: 100%;
    height: 100vh;
}
.terminal {
    background: #000;
    color: #aaa;
    font-family: monospace;
    font-size: 15px;
    padding: 10px;
    border-radius: 8px;
    min-height: 60vh;
    margin: 0 auto;
    max-width: 900px;
}
/* Override pour les pages CV - terminal plein écran */
body.cmd .terminal {
    max-width: 100% !important;
    width: 100vw !important;
    height: 100vh !important;
    margin: 0 !important;
    border-radius: 0 !important;
    text-align: left !important;
}
body.cmd .terminal .terminal-output,
body.cmd .terminal .terminal-output div,
body.cmd .terminal .terminal-output span,
body.cmd .terminal .terminal-output-wrapper,
body.cmd .terminal .terminal-output-wrapper div,
body.cmd .terminal-line,
body.cmd .terminal .terminal-line,
body.cmd .terminal-line div,
body.cmd .terminal-line span,
body.cmd .cmd-line {
    text-align: left !important;
    justify-content: flex-start !important;
    margin-left: 0 !important;
    margin-right: auto !important;
}
/* Force tous les éléments du terminal à être alignés à gauche */
body.cmd * {
    text-align: left !important;
}
/* Exception pour le bouton de langue */
body.cmd div[style*="position: fixed"] {
    text-align: center !important;
}

/* Bouton retour langue */
.language-switch {
    position: fixed;
    top: 20px; right: 20px;
    z-index: 1000;
    background: #01A6FF;
    color: white;
    padding: 10px 15px;
    border-radius: 5px;
    text-decoration: none;
    font-family: Arial, sans-serif;
    font-size: 14px;
}

/* Utilitaires */
.hidden { display: none !important; }
.invisible { opacity: 0 !important; }

.btn-lang {
  display: flex;
  align-items: center;
  gap: 0.7em;
  background: linear-gradient(90deg, #01A6FF 0%, #3f51b5 100%);
  color: #fff;
  font-family: 'Poppins', Arial, sans-serif;
  font-weight: 600;
  font-size: 1.15rem;
    border: none;
  border-radius: 12px;
  padding: 0.7em 1.6em;
  box-shadow: 0 4px 24px #01A6FF55;
    cursor: pointer;
  transition: background 0.2s, box-shadow 0.2s, transform 0.15s;
  outline: none;
    position: relative;
    overflow: hidden;
}
.btn-lang:hover, .btn-lang:focus {
  background: linear-gradient(90deg, #3f51b5 0%, #01A6FF 100%);
  box-shadow: 0 6px 32px #01A6FF99;
  transform: translateY(-2px) scale(1.04);
}
.btn-lang-icon svg {
  display: block;
  transition: transform 0.3s;
}
.btn-lang:hover .btn-lang-icon svg {
  transform: rotate(18deg) scale(1.08);
}

.btn-lang-premium {
    display: flex;
  align-items: center;
  gap: 0.8em;
  background: linear-gradient(90deg, #01A6FF 0%, #3f51b5 100%);
  color: #fff;
  font-family: 'Montserrat', 'Poppins', Arial, sans-serif;
  font-weight: 600;
  font-size: 1.18rem;
  border: none;
  border-radius: 18px;
  padding: 0.85em 2.1em;
  box-shadow: 0 6px 32px #01A6FF55, 0 2px 8px #0008;
  cursor: pointer;
  transition: background 0.2s, box-shadow 0.2s, transform 0.15s;
  outline: none;
  position: relative;
    overflow: hidden;
  letter-spacing: 0.5px;
}
.btn-lang-premium:hover, .btn-lang-premium:focus {
  background: linear-gradient(90deg, #3f51b5 0%, #01A6FF 100%);
  box-shadow: 0 8px 48px #01A6FF99, 0 2px 8px #0008;
  transform: translateY(-3px) scale(1.06);
}
.btn-lang-premium .btn-lang-icon svg {
  display: block;
  filter: drop-shadow(0 0 8px #01A6FF88);
  transition: transform 0.4s cubic-bezier(.23,1.01,.32,1);
}
.btn-lang-premium:hover .btn-lang-icon svg {
  transform: rotate(-12deg) scale(1.12);
}

/* Bulle bouton langue simple - version propre */
.btn-lang-globe {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: #01A6FF !important;
    border: none !important;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 18px #01A6FF33;
  cursor: pointer;
  transition: background 0.18s, box-shadow 0.18s, transform 0.13s;
  outline: none;
    padding: 0 !important;
  margin: 0;
}
.btn-lang-globe:hover, .btn-lang-globe:focus {
  background: #3f51b5 !important;
  box-shadow: 0 6px 28px #01A6FF99;
  transform: scale(1.08);
}
.btn-lang-globe svg {
    display: block;
  background: none !important;
  width: 28px;
  height: 28px;
}

/* Bouton horizontal premium langue */
.btn-lang-horizontal {
  display: flex;
  align-items: center;
  background: #fff;
  border: none;
  border-radius: 999px;
  box-shadow: 0 2px 16px #0002;
  padding: 0.5em 1.6em 0.5em 0.5em;
  cursor: pointer;
  transition: box-shadow 0.18s, transform 0.13s;
  outline: none;
  font-family: 'Montserrat', 'Poppins', Arial, sans-serif;
  font-weight: 700;
  font-size: 1.45rem;
  letter-spacing: 0.04em;
  color: #111;
  gap: 1.1em;
}
.btn-lang-horizontal:hover, .btn-lang-horizontal:focus {
  box-shadow: 0 4px 32px #01A6FF33, 0 2px 8px #0004;
  transform: translateY(-2px) scale(1.03);
}
.btn-lang-horizontal .btn-lang-icon {
  width: 56px;
  height: 56px;
  min-width: 56px;
  min-height: 56px;
  border-radius: 50%;
  background: #111;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-right: 0.5em;
}
.btn-lang-horizontal .btn-lang-icon svg {
  width: 36px;
  height: 36px;
    display: block;
}
@media (max-width: 600px) {
  .btn-lang-horizontal {
    font-size: 1.05rem;
    padding: 0.4em 1em 0.4em 0.4em;
  }
  .btn-lang-horizontal .btn-lang-icon {
    width: 38px;
    height: 38px;
    min-width: 38px;
    min-height: 38px;
  }
  .btn-lang-horizontal .btn-lang-icon svg {
    width: 24px;
    height: 24px;
  }
}

/* Bouton néon premium langue */
.btn-lang-neon {
  width: 54px;
  height: 54px;
  border-radius: 50%;
  background: #101c2c;
    border: none;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 0 16px 4px #01A6FF88, 0 2px 8px #0008;
    cursor: pointer;
  transition: box-shadow 0.18s, transform 0.13s, background 0.18s;
  outline: none;
    padding: 0;
}
.btn-lang-neon:hover, .btn-lang-neon:focus {
  box-shadow: 0 0 32px 10px #01A6FFcc, 0 2px 8px #0008;
  background: #162a44;
  transform: scale(1.08);
}
.btn-lang-neon svg {
  display: block;
  filter: drop-shadow(0 0 6px #01A6FF99);
  transition: transform 0.3s;
}
.btn-lang-neon:hover svg {
  transform: rotate(-10deg) scale(1.08);
}

/* Bouton flottant retour accueil/langue */
.btn-home-lang {
  position: fixed;
  bottom: 32px;
  right: 32px;
  z-index: 1001;
    display: flex;
  align-items: center;
  gap: 0.7em;
  background: linear-gradient(90deg, #01A6FF 0%, #3f51b5 100%);
  color: #fff;
  font-family: 'Montserrat', 'Poppins', Arial, sans-serif;
  font-weight: 600;
        font-size: 1.1rem;
  border: none;
  border-radius: 32px;
  padding: 0.85em 1.7em;
  box-shadow: 0 4px 24px #01A6FF55;
  cursor: pointer;
  transition: box-shadow 0.18s, transform 0.13s, background 0.18s;
  outline: none;
  letter-spacing: 0.03em;
}
.btn-home-lang:hover, .btn-home-lang:focus {
  box-shadow: 0 8px 32px #01A6FF99;
  background: linear-gradient(90deg, #3f51b5 0%, #01A6FF 100%);
  transform: translateY(-2px) scale(1.04);
}
.btn-home-lang .btn-home-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.5em;
}
@media (max-width: 600px) {
  .btn-home-lang {
    bottom: 16px;
    right: 16px;
    font-size: 0.95rem;
    padding: 0.7em 1.1em;
  }
  .btn-home-lang .btn-home-icon {
    font-size: 1.1em;
    }
}

/* Bouton simple langue */
.btn-lang-simple {
  display: flex;
  align-items: center;
  gap: 0.6em;
  background: #01A6FF;
  color: #fff;
  font-family: 'Poppins', Arial, sans-serif;
  font-weight: 500;
  font-size: 1.1rem;
  border: none;
  border-radius: 12px;
  padding: 0.6em 1.4em;
  box-shadow: 0 2px 8px #01A6FF22;
  cursor: pointer;
  transition: background 0.18s, box-shadow 0.18s, transform 0.13s;
  outline: none;
}
.btn-lang-simple:hover, .btn-lang-simple:focus {
  background: #0090e7;
  box-shadow: 0 4px 16px #01A6FF44;
  transform: translateY(-1px) scale(1.03);
}
.btn-lang-simple .btn-lang-icon {
  font-size: 1.3em;
  display: flex;
  align-items: center;
  justify-content: center;
}