/* RESET */

{
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: Arial, sans-serif;
}


/* BODY */
body {
background-color: #0f0f1a;
color: white;
}

/* HEADER */
header {
background-color: #1a1a2e;
padding: 10px;
display: flex;
flex-direction: column;
gap: 10px;
position: relative;
z-index: 5000;
}

.header-top {
display: flex;
align-items: center;
gap: 15px;
}

h1 {
font-size: 20px;
}

/* HAMBURGER */
.menu-hamburger {
font-size: 24px;
cursor: pointer;
position: relative;
z-index: 6000;
}

/* ===================== /
/ SIDE MENU /
/ ===================== */
.side-menu {
position: fixed;
top: 0;
left: -250px;
width: 220px;
height: 100%;
background-color: #111;
display: flex;
flex-direction: column;
padding: 20px;
transition: 0.3s;
z-index: 9999;
}

.side-menu.open {
left: 0;
}

.side-menu a {
color: white;
text-decoration: none;
margin: 10px 0;
}

/* ===================== /
/ SEARCH /
/ ===================== */
/* ===================== /
/ SEARCH /
/ ===================== */
#search-area {
    display: flex;
    justify-content: center;
    padding: 20px 0;
    width: 100%;
}

#search,
#catalogue-search {
    width: 90%;
    max-width: 600px;
    padding: 14px 25px;
    border-radius: 30px;
    border: 1px solid rgba(255, 255, 255, 0.1);
    outline: none;

    /* Effet sombre profond avec glassmorphism */
    background: rgba(31, 31, 46, 0.8);
    backdrop-filter: blur(10px);
    
    color: white;    
    font-size: 15px;    
    letter-spacing: 0.5px;

    /* Transition fluide pour l'ombre et la bordure */
    transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
}

#search::placeholder,
#catalogue-search::placeholder {
    color: #666;
    font-style: italic;
}

#search:focus,
#catalogue-search:focus {
    transform: translateY(-2px);
    background: rgba(31, 31, 46, 1);
    
    /* Bordure lumineuse dégradée au focus */
    border-color: #00adb5;
    
    /* Lueur extérieure stylée */
    box-shadow: 0 0 20px rgba(0, 173, 181, 0.4), 
                0 15px 40px rgba(0, 0, 0, 0.6);
}

/* MAIN */
main {
padding: 15px;
}

/* TITRES */
h2 {
margin: 15px 0;
}

/* ANIME CARD */
.anime-card {
background-color: #1f1f2e;
border-radius: 12px;
margin-bottom: 15px;
overflow: hidden;
display: flex;
gap: 10px;
transition: 0.3s;
}

.anime-card:hover {
transform: scale(1.02);
}

.anime-card img {
width: 120px;
height: auto;
object-fit: cover;
}

.anime-info {
padding: 10px;
display: flex;
flex-direction: column;
gap: 5px;
}

.anime-info h3 {
font-size: 16px;
}

/* BUTTONS */
.buttons {
margin-top: 10px;
display: flex;
gap: 10px;
}

button {
padding: 6px 10px;
border: none;
border-radius: 6px;
cursor: pointer;
transition: 0.3s;
}

button:hover {
transform: translateY(-2px);
}

/* LIST */
button:nth-child(1) {
background-color: #00adb5;
color: white;
}

/* FAVORITE */
button:nth-child(2) {
background-color: #ff5722;
color: white;
}

/* REMOVE */
.anime-info button {
margin-top: 10px;
background-color: red;
color: white;
}

/* FOOTER */
footer {
text-align: center;
padding: 15px;
background-color: #1a1a2e;
margin-top: 20px;
}

/* ===================== /
/ CALENDAR /
/ ===================== */
.calendar-grid {
display: grid;
grid-template-columns: repeat(7, 1fr);
gap: 10px;
overflow-x: auto;
position: relative;
z-index: 1;
}

.day-column {
background-color: #1f1f2e;
padding: 8px;
border-radius: 10px;
min-width: 150px;
}

.day-column h2 {
text-align: center;
font-size: 14px;
}

/* CARD */
.calendar-card {
background-color: #2a2a3d;
border-radius: 8px;
margin-bottom: 8px;
padding: 5px;
text-align: center;
cursor: pointer;
transition: 0.2s;
}

.calendar-card:hover {
transform: scale(1.05);
}

.calendar-card img {
width: 100%;
border-radius: 6px;
}

.calendar-card p {
font-size: 11px;
margin-top: 5px;
}

/* SELECT */
select {
padding: 6px;
border-radius: 5px;
margin-top: 5px;
background-color: #1f1f2e;
color: white;
border: none;
}

/* ===================== /
/ LIST TABLE /
/ ===================== */
.mylist-table {
width: 100%;
border-collapse: collapse;
margin-top: 10px;
background-color: #1f1f2e;
border-radius: 10px;
overflow: hidden;
}

.mylist-table th,
.mylist-table td {
padding: 8px;
text-align: center;
border-bottom: 1px solid #2a2a3d;
font-size: 14px;
}

.mylist-table th {
background-color: #2a2a3d;
}

.mylist-table tr:hover {
background-color: #2e2e45;
}

.table-img {
width: 50px;
border-radius: 6px;
}

.mylist-table button {
background-color: red;
color: white;
}

/* ===================== /
/ FILTER BUTTONS /
/ ===================== */
.filter-buttons {
display: flex;
flex-wrap: wrap;
gap: 10px;
margin-bottom: 15px;
justify-content: center;
}

.filter-buttons button {
padding: 8px 16px;
border-radius: 25px;
background: linear-gradient(135deg, #00adb5, #008b8b);
color: white;
font-weight: bold;
}

.filter-buttons button.active {
background: linear-gradient(135deg, #ff5722, #e94560);
}

/* ===================== /
/ SELECT STATUT /
/ ===================== */
.anime-info select {
padding: 8px 12px;
border-radius: 20px;
background: #1a1a2e;
color: white;
border: 1px solid #00adb5;
}

/* ===================== /
/ HORIZONTAL SCROLL /
/ ===================== */
#airing-section,
#manga-section,
#webtoon-section {
display: flex;
gap: 12px;
overflow-x: auto;
padding-bottom: 10px;
}

#airing-section .anime-card,
#manga-section .anime-card,
#webtoon-section .anime-card {
min-width: 180px;
flex-direction: column;
}

#airing-section .anime-card img,
#manga-section .anime-card img,
#webtoon-section .anime-card img {
height: 220px;
width: 100%;
object-fit: cover;
}

/* ===================== /
/ SEARCH MODE (VERTICAL) /
/ ===================== */
body.search-mode #airing-section {
flex-direction: column;
}

body.search-mode #airing-section .anime-card {
width: 100%;
max-width: 600px;
flex-direction: row;
}

body.search-mode #airing-section .anime-card img {
width: 120px;
height: 160px;
}
/* ===================== /
/ 🔥 FILTRES TYPE (ANIME / MANGA / WEBTOON) /
/ ===================== *
.search-filters-container {
display: flex;
align-items: center;
gap: 15px;
padding: 10px;
}

.filters {
display: flex;
align-items: center;
}

.filter-block {
display: flex;
align-items: center;
gap: 10px;
}

.filter-block h3 {
margin: 0;
margin-right: 10px;
}

.search-container input {
padding: 10px;
border-radius: 8px;
border: 1px solid #ccc;
}
.type-btn {
display: inline-block;
padding: 8px 14px;
border-radius: 20px;
border: 2px solid #ccc;
cursor: pointer;
transition: 0.3s;
font-weight: 500;
user-select: none;
}

.type-btn input {
display: none;
}

.type-btn span {
pointer-events: none;
}

/* Effet au survol */
.type-btn:hover {
background-color: #f0f0f0;
}

/* Quand c'est coché */
.type-btn input:checked + span {
color: white;
}

.type-btn input:checked {
display: none;
}

.type-btn:has(input:checked) {
background-color: black;
border-color: black;
color: white;
}

/* Petit effet moderne /
.type-btn:active {
transform: scale(0.95);
}
/ CONTENEUR */
.search-filters-container {
display: flex;
align-items: center;
justify-content: space-between;
padding: 10px;
gap: 15px;
}

/* FILTRES */
.filter-block {
display: flex;
align-items: center;
gap: 10px;
}

.filter-block h3 {
margin-right: 10px;
}

/* BOUTONS */
.type-btn {
display: inline-block;
padding: 8px 14px;
border-radius: 20px;
border: 2px solid #444;
background-color: #1e1e1e;
color: #ccc;
cursor: pointer;
transition: 0.3s;
font-weight: 500;
user-select: none;
}

.type-btn input {
display: none;
}

/* HOVER */
.type-btn:hover {
background-color: #2a2a2a;
border-color: #666;
}

/* CHECKED /
.type-btn:has(input:checked) {
background-color: #4a6cf7; / bleu moderne */
border-color: #4a6cf7;
color: white;
}

/* ACTIVE */
.type-btn:active {
transform: scale(0.95);
}
@media (max-width: 768px) {

/* Conteneur global */    
.search-filters-container {    
    padding: 10px;    
}    

/* Barre de recherche */    
.search-container input {    
    width: 100%;    
    font-size: 16px;    
}    

/* Titre + filtres */    
.filter-block {    
    justify-content: center;    
    flex-wrap: wrap;    
    gap: 8px;    
}    

/* Titre "Type" */    
.filter-block h3 {    
    width: 100%;    
    text-align: center;    
    margin-bottom: 5px;    
}    

/* Boutons */    
.type-btn {    
    padding: 8px 12px;    
    font-size: 14px;    
}

}
.search-filters-container {
display: flex;
flex-direction: column;
gap: 10px;
padding: 10px;
}

/* Barre de recherche */
.search-container input {
width: 100%;
padding: 10px;
border-radius: 8px;
border: 1px solid #ccc;
}

/* Ligne des boutons /
.filter-block {
display: flex;
flex-direction: row;
align-items: center;
gap: 10px;
flex-wrap: nowrap; / 🔥 empêche de passer à la ligne /
overflow-x: auto;  / 🔥 scroll horizontal */
padding-bottom: 5px;
}

/* Cache la scrollbar (optionnel) */
.filter-block::-webkit-scrollbar {
display: none;
}

/* Titre */
.filter-block h3 {
margin-right: 10px;
white-space: nowrap;
}

/* Boutons */
.type-btn {
display: inline-block;
padding: 8px 14px;
border-radius: 20px;
border: 2px solid #444;
background-color: #1e1e1e;
color: #ccc;
cursor: pointer;
transition: 0.3s;
font-weight: 500;
user-select: none;
white-space: nowrap;
}

.type-btn input {
display: none;
}

/* Hover */
.type-btn:hover {
background-color: #2a2a2a;
}

/* Sélection */
.type-btn:has(input:checked) {
background-color: #4a6cf7;
border-color: #4a6cf7;
color: white;
}
/* ===================== */
/* SETTINGS */
/* ===================== */

.settings-section {
    background-color: #1f1f2e;
    padding: 15px;
    border-radius: 12px;
}

.switch {
    display: flex;
    align-items: center;
    gap: 10px;
    cursor: pointer;
}

.switch input {
    display: none;
}

.slider {
    width: 45px;
    height: 24px;
    background-color: #555;
    border-radius: 30px;
    position: relative;
    transition: 0.3s;
}

.slider::before {
    content: "";
    width: 18px;
    height: 18px;
    background-color: white;
    border-radius: 50%;
    position: absolute;
    top: 3px;
    left: 3px;
    transition: 0.3s;
}

.switch input:checked + .slider {
    background-color: #00adb5;
}

.switch input:checked + .slider::before {
    transform: translateX(21px);
}

.label-text {
    font-size: 14px;
}
/* Style pour les résultats personnages */
.characters-grid {
    display: flex;
    flex-direction: column;
    gap: 15px;
    max-width: 800px;
    margin: 0 auto;
}

.characters-grid .anime-card {
    align-items: flex-start;
}

.characters-grid .anime-info p {
    margin: 2px 0;
}

.character-card {
    cursor: pointer;
    transition: transform 0.2s;
}

.character-card:hover {
    transform: scale(1.02);
    border-color: #ff4500;
}

.status-msg {
    font-size: 0.8em;
    color: #ff4500;
    font-style: italic;
}

.extra-info p {
    margin: 5px 0;
    animation: fadeIn 0.5s;
}

@keyframes fadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}
body.search-mode #airing-section .anime-card {
    width: 100%;
    max-width: 600px;
    flex-direction: row;
}
/* --- PAGE ACTUALITÉS --- */
.news-grid {
    display: flex;
    flex-direction: column;
    gap: 20px;
    max-width: 900px;
    margin: 0 auto;
    padding: 10px;
}

.news-card {
    display: flex;
    background-color: #1f1f2e;
    border-radius: 12px;
    overflow: hidden;
    gap: 15px;
    border: 1px solid #2a2a3d;
    transition: 0.3s;
}

.news-card:hover {
    transform: translateY(-3px);
    border-color: #00adb5;
}

.news-image img {
    width: 150px;
    height: 100%;
    object-fit: cover;
}

.news-content {
    padding: 15px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.news-date {
    font-size: 11px;
    color: #00adb5;
    text-transform: uppercase;
    font-weight: bold;
    margin-bottom: 5px;
}

.news-content h3 {
    font-size: 18px;
    margin-bottom: 10px;
    color: white;
}

.news-content p {
    font-size: 14px;
    color: #ccc;
    margin-bottom: 15px;
    display: -webkit-box;
    -webkit-line-clamp: 2; /* Limite à 2 lignes */
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.read-more {
    color: #ff5722;
    text-decoration: none;
    font-weight: bold;
    font-size: 13px;
}

/* Amélioration des cartes Catalogue */
.card-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 10px;
}

.status-badge {
    background: rgba(0, 173, 181, 0.2);
    color: #00adb5;
    font-size: 10px;
    padding: 2px 6px;
    border-radius: 4px;
    white-space: nowrap;
}

.source-tag {
    font-size: 12px;
    color: #888;
    font-weight: bold;
}

.loader {
    text-align: center;
    padding: 50px;
    font-style: italic;
    color: #00adb5;
}

/* Grille pour le catalogue (plusieurs cartes par ligne sur PC) */
@media (min-width: 900px) {
    #catalogue-results {
        display: grid;
        grid-template-columns: repeat(auto-fill, minmax(350px, 1fr));
        gap: 20px;
    }
}
#catalogue-results {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 12px;
  align-items: stretch;
}
.anime-card {
  display: flex;
  flex-direction: column;
}

.anime-info {
  display: flex;
  flex-direction: column;
  flex: 1;
}

.buttons {
  margin-top: auto;
}
#favorites-container,
#favorites-results,
#results {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
    gap: 12px;
    width: 100%;
}
.favorites-page #favorites-section {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
    gap: 12px;
    padding: 10px;
}
.mylist-page #mylist-section {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 12px;
  padding: 10px;
}
.filter-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 10px;
  justify-content: center;
}

/* style de base des boutons */
.filter-buttons button {
  background: #1a1a2e;
  color: #fff;
  border: 1px solid rgba(0, 173, 181, 0.3);
  padding: 8px 12px;
  border-radius: 10px;
  cursor: pointer;
  font-size: 13px;
  transition: 0.2s ease;
}

/* hover */
.filter-buttons button:hover {
  background: #00adb5;
  color: #fff;
}

/* bouton actif */
.filter-buttons button.active {
  background: #00adb5;
  border-color: #00adb5;
}
.favorites-page .anime-card,
.mylist-page .anime-card {
  display: flex;
  flex-direction: column;
  width: 160px;
}
.favorites-page .anime-card img,
.mylist-page .anime-card img {
  width: 100%;
  height: 220px;
  object-fit: cover;
  border-radius: 8px;
}
.favorites-page .anime-info,
.mylist-page .anime-info {
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-size: 12px;
}

.favorites-page .anime-info h3,
.mylist-page .anime-info h3 {
  font-size: 13px;
  margin: 5px 0;
}
.favorites-page #favorites-section,
.mylist-page #mylist-section {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 12px;
  padding: 10px;
}
.side-menu a {
  display: flex;
  align-items: center;
  gap: 10px;
}

.side-menu i {
  width: 18px;
  text-align: center;
  opacity: 0.9;
}
.site-header {
    width: 100%;
    background: #161727;
    padding: 12px 18px;
    box-sizing: border-box;
}

.header-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    width: 100%;
}

.menu-hamburger {
    flex: 0 0 auto;
    font-size: 34px;
    cursor: pointer;
}

#search-area {
    flex: 1;
    display: flex;
    justify-content: center;
}

#search-area input {
    width: 100%;
    max-width: 560px;
}

.site-logo {
    flex: 0 0 auto;
    width: 54px;
    height: 54px;
    object-fit: contain;
    display: block;
}

/* Version mobile */
@media (max-width: 700px) {
    .header-row {
        gap: 10px;
    }
    
    .menu-hamburger {
        font-size: 30px;
    }
    
    .site-logo {
        width: 42px;
        height: 42px;
    }
    
    #search-area input {
        max-width: 100%;
    }
}
/* --- TABS --- */
.planning-tabs {
    display: flex;
    justify-content: center;
    gap: 15px;
    margin: 20px 0;
}

.tab-btn {
    padding: 10px 20px;
    background-color: #2a2a2a; /* Adapte selon ton thème */
    color: white;
    border: 2px solid transparent;
    border-radius: 8px;
    cursor: pointer;
    font-size: 16px;
    font-weight: bold;
    transition: 0.3s;
}

.tab-btn:hover {
    background-color: #3a3a3a;
}

.tab-btn.active {
    background-color: #161727; /* Couleur principale de ton site */
    border-color: #161727;
}

/* --- GRILLE MANGAS --- */
.manga-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
    gap: 20px;
    padding: 20px;
}

#manga-planning h2 {
    text-align: center;
    margin-bottom: 20px;
}

/* Style de base pour les deux boutons */
#btn-anime, #btn-manga {
    background-color: #2c2c2c; /* Couleur sombre par défaut */
    color: white;              /* Texte en blanc */
    border: 2px solid #444;    /* Bordure discrète */
    padding: 10px 20px;
    border-radius: 5px;        /* Angles arrondis */
    cursor: pointer;
    transition: all 0.3s ease; /* Animation fluide au clic/survol */
    font-weight: bold;
    margin: 0 5px;
}

/* Effet au survol de la souris */
#btn-anime:hover, #btn-manga:hover {
    background-color: #444;
    border-color: #161727;     /* Une petite lueur au survol */
}

/* Style du bouton "ACTIF" (celui qui est sélectionné) */
#btn-anime.active, #btn-manga.active {
    background-color: #161727; /* Une couleur vive (ex: Turquoise) */
    color: #;            /* Texte sombre pour le contraste */
    border-color: #161727;
    
}
