/* ============================================================
   Admin Design — habillage cohérent avec le reste du site
   (cadre HUD glassmorphism, couleurs thématiques par onglet,
   gradients, animations subtiles)
   ============================================================ */

/* ------------------------------------------------------------
   1. Barre d'onglets admin — cadre HUD avec chevrons aux coins
   ------------------------------------------------------------ */
#admin-tabs-bar {
    position: relative;
    margin: 28px auto 0 !important;
    max-width: 1100px !important;
    padding: 22px 26px !important;
    background: linear-gradient(168deg, rgba(22, 18, 38, 0.7) 0%, rgba(14, 13, 26, 0.55) 100%) !important;
    border: 1px solid rgba(187, 134, 252, 0.22) !important;
    border-radius: 18px !important;
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    box-shadow:
        0 8px 32px rgba(0, 0, 0, 0.32),
        inset 0 1px 0 rgba(255, 255, 255, 0.05) !important;
    isolation: isolate;
    animation: adminFadeUp 0.6s cubic-bezier(0.22, 1, 0.36, 1) both;
    animation-delay: 0.05s;
}

#admin-tabs-bar::before {
    content: '';
    position: absolute;
    inset: 8px;
    pointer-events: none;
    z-index: 0;
    background:
        linear-gradient(to right, rgba(187, 134, 252, 0.85) 16px, transparent 16px) top left / 100% 2px no-repeat,
        linear-gradient(to bottom, rgba(187, 134, 252, 0.85) 16px, transparent 16px) top left / 2px 100% no-repeat,
        linear-gradient(to left, rgba(3, 218, 198, 0.85) 16px, transparent 16px) top right / 100% 2px no-repeat,
        linear-gradient(to bottom, rgba(3, 218, 198, 0.85) 16px, transparent 16px) top right / 2px 100% no-repeat,
        linear-gradient(to right, rgba(3, 218, 198, 0.85) 16px, transparent 16px) bottom left / 100% 2px no-repeat,
        linear-gradient(to top, rgba(3, 218, 198, 0.85) 16px, transparent 16px) bottom left / 2px 100% no-repeat,
        linear-gradient(to left, rgba(187, 134, 252, 0.85) 16px, transparent 16px) bottom right / 100% 2px no-repeat,
        linear-gradient(to top, rgba(187, 134, 252, 0.85) 16px, transparent 16px) bottom right / 2px 100% no-repeat;
    filter: drop-shadow(0 0 4px rgba(187, 134, 252, 0.35));
}

.admin-tabs-bar-label {
    position: relative;
    z-index: 1;
    font-size: 0.72rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.18em !important;
    text-transform: uppercase;
    background: linear-gradient(135deg, rgba(187, 134, 252, 1) 0%, rgba(3, 218, 198, 1) 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent !important;
    margin-bottom: 14px !important;
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

.admin-tabs-bar-label i {
    -webkit-text-fill-color: rgb(187, 134, 252);
    color: rgb(187, 134, 252);
    filter: drop-shadow(0 0 8px rgba(187, 134, 252, 0.6));
    font-size: 1rem;
}

.admin-tabs {
    position: relative;
    z-index: 1;
    gap: 8px !important;
}

/* ------------------------------------------------------------
   2. Boutons d'onglets — pills colorées par thème
   ------------------------------------------------------------ */
.admin-tabs button {
    --tab-color: 187, 134, 252;
    --tab-color-2: 167, 119, 244;
    position: relative;
    background: rgba(20, 18, 32, 0.65) !important;
    border: 1px solid rgba(var(--tab-color), 0.28) !important;
    color: var(--text-lighter) !important;
    padding: 10px 18px !important;
    font-size: 0.88rem !important;
    font-weight: 600 !important;
    letter-spacing: 0.02em;
    border-radius: 999px !important;
    transition: all 0.25s cubic-bezier(0.22, 1, 0.36, 1) !important;
    isolation: isolate;
}

.admin-tabs button i {
    color: rgb(var(--tab-color));
    filter: drop-shadow(0 0 4px rgba(var(--tab-color), 0.5));
    transition: transform 0.25s ease, filter 0.25s ease;
}

.admin-tabs button:hover {
    color: #fff !important;
    background: rgba(var(--tab-color), 0.16) !important;
    border-color: rgba(var(--tab-color), 0.6) !important;
    transform: translateY(-2px);
    box-shadow: 0 8px 22px rgba(var(--tab-color), 0.28) !important;
}

.admin-tabs button:hover i {
    transform: scale(1.12);
    filter: drop-shadow(0 0 8px rgba(var(--tab-color), 0.85));
}

.admin-tabs button.active {
    color: #0b0b14 !important;
    background: linear-gradient(135deg, rgb(var(--tab-color)) 0%, rgb(var(--tab-color-2)) 100%) !important;
    border-color: rgba(255, 255, 255, 0.32) !important;
    box-shadow:
        0 10px 26px rgba(var(--tab-color), 0.45),
        inset 0 1px 0 rgba(255, 255, 255, 0.3) !important;
    transform: translateY(-1px);
    font-weight: 700 !important;
}

.admin-tabs button.active i {
    color: #0b0b14;
    filter: drop-shadow(0 1px 0 rgba(255, 255, 255, 0.4));
}

/* Palette par onglet (cohérent avec la page Introduction) */
.admin-tabs button[data-tab="parametres"]    { --tab-color: 187, 134, 252; --tab-color-2: 167, 119, 244; } /* violet */
.admin-tabs button[data-tab="introduction"]  { --tab-color: 3, 218, 198;   --tab-color-2: 13, 148, 136; }  /* cyan */
.admin-tabs button[data-tab="sondages"]      { --tab-color: 96, 165, 250;  --tab-color-2: 59, 130, 246; }  /* bleu */
.admin-tabs button[data-tab="galerie"]       { --tab-color: 244, 114, 182; --tab-color-2: 219, 39, 119; }  /* rose */
.admin-tabs button[data-tab="informations"]  { --tab-color: 56, 189, 248;  --tab-color-2: 14, 165, 233; }  /* bleu clair */
.admin-tabs button[data-tab="repas"]         { --tab-color: 74, 222, 128;  --tab-color-2: 22, 163, 74; }   /* vert */
.admin-tabs button[data-tab="localisation"]  { --tab-color: 251, 146, 60;  --tab-color-2: 234, 88, 12; }   /* orange */
.admin-tabs button[data-tab="jeux"]          { --tab-color: 251, 191, 36;  --tab-color-2: 217, 119, 6; }   /* ambre */
.admin-tabs button[data-tab="utilisateurs"]  { --tab-color: 129, 140, 248; --tab-color-2: 99, 102, 241; }  /* indigo */
.admin-tabs button[data-tab="badges"]        { --tab-color: 250, 204, 21;  --tab-color-2: 202, 138, 4; }   /* jaune */
.admin-tabs button[data-tab="checklist"]     { --tab-color: 52, 211, 153;  --tab-color-2: 16, 185, 129; }  /* émeraude */
.admin-tabs button[data-tab="historique"]    { --tab-color: 156, 163, 175; --tab-color-2: 107, 114, 128; } /* gris */
.admin-tabs button[data-tab="bugs"]          { --tab-color: 248, 113, 113; --tab-color-2: 220, 38, 38; }   /* rouge */
.admin-tabs button[data-tab="icones"]        { --tab-color: 103, 232, 249; --tab-color-2: 6, 182, 212; }   /* cyan clair */
.admin-tabs button[data-tab="design-test"]   { --tab-color: 232, 121, 249; --tab-color-2: 192, 38, 211; }  /* fuchsia */
.admin-tabs button[data-tab="reseau"]        { --tab-color: 59, 130, 246;  --tab-color-2: 37, 99, 235; }   /* bleu */
.admin-tabs button[data-tab="monitoring"]    { --tab-color: 16, 185, 129;  --tab-color-2: 5, 150, 105; }   /* vert */
.admin-tabs button[data-tab="version"]       { --tab-color: 167, 139, 250; --tab-color-2: 124, 58, 237; }  /* violet clair */

/* ------------------------------------------------------------
   3. Shell admin (carte qui contient les panneaux)
   ------------------------------------------------------------ */
#admin-content.admin-content-shell {
    position: relative;
    background: linear-gradient(168deg, rgba(22, 18, 38, 0.72) 0%, rgba(14, 13, 26, 0.6) 100%) !important;
    border: 1px solid rgba(187, 134, 252, 0.18) !important;
    border-radius: 20px !important;
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    box-shadow:
        0 12px 40px rgba(0, 0, 0, 0.32),
        inset 0 1px 0 rgba(255, 255, 255, 0.05) !important;
    isolation: isolate;
    animation: adminFadeUp 0.6s cubic-bezier(0.22, 1, 0.36, 1) both;
    animation-delay: 0.18s;
}

/* Liseré dégradé en haut de la carte admin */
#admin-content.admin-content-shell::before {
    content: '';
    position: absolute;
    top: 0;
    left: 18%;
    right: 18%;
    height: 2px;
    background: linear-gradient(90deg, transparent, rgba(187, 134, 252, 0.85), rgba(3, 218, 198, 0.85), rgba(187, 134, 252, 0.85), transparent);
    border-radius: 2px;
    box-shadow: 0 0 10px rgba(187, 134, 252, 0.6);
    pointer-events: none;
    z-index: 1;
}

/* ------------------------------------------------------------
   4. Titre principal (h2#admin-content-title)
   ------------------------------------------------------------ */
#admin-content-title {
    position: relative;
    font-family: var(--font-heading) !important;
    font-size: 1.85rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.04em !important;
    margin: 0 0 28px !important;
    padding: 8px 0 18px !important;
    text-align: center;
    background: linear-gradient(135deg, var(--primary-accent) 0%, var(--secondary-accent) 50%, var(--primary-accent) 100%);
    background-size: 200% auto;
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent !important;
    border-bottom: none !important;
    text-shadow: 0 0 32px rgba(187, 134, 252, 0.18);
}

#admin-content-title i {
    -webkit-text-fill-color: rgb(187, 134, 252);
    color: rgb(187, 134, 252);
    margin-right: 12px;
    filter: drop-shadow(0 0 12px rgba(187, 134, 252, 0.55));
    animation: adminTitleIconFloat 4s ease-in-out infinite;
}

#admin-content-title::after {
    content: '';
    position: absolute;
    left: 50%;
    bottom: 0;
    transform: translateX(-50%);
    width: 100px;
    height: 2px;
    background: linear-gradient(90deg, transparent, rgba(187, 134, 252, 0.7), rgba(3, 218, 198, 0.7), transparent);
    border-radius: 2px;
    box-shadow: 0 0 8px rgba(187, 134, 252, 0.5);
}

@keyframes adminTitleIconFloat {
    0%, 100% { transform: translateY(0); }
    50%      { transform: translateY(-3px); }
}

/* ------------------------------------------------------------
   5. Panneaux (.admin-panel, .admin-settings-panel)
   ------------------------------------------------------------ */
.admin-panel,
.admin-settings-panel {
    position: relative;
    background: linear-gradient(168deg, rgba(28, 24, 44, 0.65) 0%, rgba(18, 16, 30, 0.5) 100%) !important;
    border: 1px solid rgba(187, 134, 252, 0.18) !important;
    border-radius: 16px !important;
    padding: 22px 24px !important;
    margin-bottom: 18px !important;
    box-shadow:
        0 4px 18px rgba(0, 0, 0, 0.22),
        inset 0 1px 0 rgba(255, 255, 255, 0.04) !important;
    transition: border-color 0.25s ease, box-shadow 0.25s ease, transform 0.25s ease;
    overflow: hidden;
}

.admin-panel::before,
.admin-settings-panel::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, var(--primary-accent), var(--secondary-accent));
    box-shadow: 0 0 14px rgba(187, 134, 252, 0.55);
    border-radius: 16px 16px 0 0;
    opacity: 0.85;
    pointer-events: none;
}

.admin-panel:hover,
.admin-settings-panel:hover {
    border-color: rgba(187, 134, 252, 0.32) !important;
    box-shadow:
        0 6px 24px rgba(187, 134, 252, 0.18),
        inset 0 1px 0 rgba(255, 255, 255, 0.06) !important;
}

/* Titres des panneaux */
.admin-panel-title,
.admin-settings-panel-title {
    margin: 0 0 18px !important;
    padding-bottom: 12px !important;
    border-bottom: 1px solid rgba(187, 134, 252, 0.18) !important;
    font-family: var(--font-heading) !important;
    font-size: 1.1rem !important;
    font-weight: 600 !important;
    letter-spacing: 0.02em !important;
    color: var(--text-light) !important;
    display: flex;
    align-items: center;
    gap: 10px;
}

.admin-panel-title i,
.admin-settings-panel-title i {
    color: rgb(187, 134, 252);
    font-size: 1.05rem;
    filter: drop-shadow(0 0 8px rgba(187, 134, 252, 0.55));
}

/* ------------------------------------------------------------
   6. Sous-titres des sections (h3, h4 dans admin)
   ------------------------------------------------------------ */
.admin-content h3:not(.admin-panel-title):not(.admin-settings-panel-title),
.admin-tab-panel h3:not(.admin-panel-title):not(.admin-settings-panel-title) {
    font-family: var(--font-heading);
    color: var(--text-light);
    letter-spacing: 0.02em;
    position: relative;
    padding-left: 14px;
}

.admin-content h3:not(.admin-panel-title):not(.admin-settings-panel-title)::before,
.admin-tab-panel h3:not(.admin-panel-title):not(.admin-settings-panel-title)::before {
    content: '';
    position: absolute;
    left: 0;
    top: 6px;
    bottom: 6px;
    width: 3px;
    border-radius: 999px;
    background: linear-gradient(180deg, rgba(187, 134, 252, 0.95), rgba(3, 218, 198, 0.85));
    box-shadow: 0 0 8px rgba(187, 134, 252, 0.45);
}

/* ------------------------------------------------------------
   7. Boutons primaires admin (auth-btn-primary, .btn)
   ------------------------------------------------------------ */
.admin-content .auth-btn-primary,
.admin-tab-panel .auth-btn-primary {
    background: linear-gradient(135deg, var(--primary-accent) 0%, var(--secondary-accent) 100%) !important;
    border: 1px solid transparent !important;
    color: #0b0b14 !important;
    font-weight: 700 !important;
    box-shadow: 0 6px 20px rgba(187, 134, 252, 0.32) !important;
    transition: transform 0.2s ease, box-shadow 0.2s ease, filter 0.2s ease !important;
}

.admin-content .auth-btn-primary:hover,
.admin-tab-panel .auth-btn-primary:hover {
    transform: translateY(-2px);
    filter: brightness(1.08);
    box-shadow: 0 10px 28px rgba(187, 134, 252, 0.45) !important;
}

/* ------------------------------------------------------------
   8. Section intro (encadré sous le titre)
   ------------------------------------------------------------ */
.admin-section-intro {
    position: relative;
    background:
        linear-gradient(135deg, rgba(3, 218, 198, 0.12) 0%, rgba(187, 134, 252, 0.08) 100%) !important;
    border: 1px solid rgba(3, 218, 198, 0.25) !important;
    border-left: 4px solid transparent !important;
    border-image: linear-gradient(180deg, var(--primary-accent), var(--secondary-accent)) 1;
    border-radius: 14px !important;
    padding: 18px 22px !important;
    box-shadow: 0 4px 18px rgba(0, 0, 0, 0.18) !important;
    line-height: 1.65 !important;
    overflow: hidden;
}

.admin-section-intro::before {
    content: '';
    position: absolute;
    top: -30%;
    right: -10%;
    width: 200px;
    height: 200px;
    background: radial-gradient(circle, rgba(3, 218, 198, 0.16) 0%, transparent 60%);
    pointer-events: none;
    z-index: 0;
}

.admin-section-intro > * {
    position: relative;
    z-index: 1;
}

/* ------------------------------------------------------------
   9. Animations d'apparition
   ------------------------------------------------------------ */
@keyframes adminFadeUp {
    from { opacity: 0; transform: translateY(14px); }
    to   { opacity: 1; transform: translateY(0); }
}

.admin-tab-panel.active {
    animation: adminFadeUp 0.45s cubic-bezier(0.22, 1, 0.36, 1) both;
}

@media (prefers-reduced-motion: reduce) {
    #admin-tabs-bar,
    #admin-content.admin-content-shell,
    .admin-tab-panel.active,
    #admin-content-title i {
        animation: none;
    }
}

/* ------------------------------------------------------------
   10. Thème clair
   ------------------------------------------------------------ */
[data-theme="light"] #admin-tabs-bar {
    background: linear-gradient(168deg, rgba(255, 255, 255, 0.85) 0%, rgba(245, 247, 255, 0.72) 100%) !important;
    border-color: rgba(124, 58, 237, 0.22) !important;
    box-shadow:
        0 8px 32px rgba(15, 23, 42, 0.1),
        inset 0 1px 0 rgba(255, 255, 255, 0.6) !important;
}

[data-theme="light"] #admin-tabs-bar::before {
    background:
        linear-gradient(to right, rgba(124, 58, 237, 0.9) 16px, transparent 16px) top left / 100% 2px no-repeat,
        linear-gradient(to bottom, rgba(124, 58, 237, 0.9) 16px, transparent 16px) top left / 2px 100% no-repeat,
        linear-gradient(to left, rgba(8, 145, 178, 0.9) 16px, transparent 16px) top right / 100% 2px no-repeat,
        linear-gradient(to bottom, rgba(8, 145, 178, 0.9) 16px, transparent 16px) top right / 2px 100% no-repeat,
        linear-gradient(to right, rgba(8, 145, 178, 0.9) 16px, transparent 16px) bottom left / 100% 2px no-repeat,
        linear-gradient(to top, rgba(8, 145, 178, 0.9) 16px, transparent 16px) bottom left / 2px 100% no-repeat,
        linear-gradient(to left, rgba(124, 58, 237, 0.9) 16px, transparent 16px) bottom right / 100% 2px no-repeat,
        linear-gradient(to top, rgba(124, 58, 237, 0.9) 16px, transparent 16px) bottom right / 2px 100% no-repeat;
}

[data-theme="light"] .admin-tabs button {
    background: rgba(255, 255, 255, 0.6) !important;
    color: rgba(30, 41, 59, 0.85) !important;
}

[data-theme="light"] .admin-tabs button:hover {
    color: #0f172a !important;
}

[data-theme="light"] #admin-content.admin-content-shell {
    background: linear-gradient(168deg, rgba(255, 255, 255, 0.92) 0%, rgba(245, 247, 255, 0.8) 100%) !important;
    border-color: rgba(124, 58, 237, 0.18) !important;
    box-shadow:
        0 12px 40px rgba(15, 23, 42, 0.08),
        inset 0 1px 0 rgba(255, 255, 255, 0.6) !important;
}

[data-theme="light"] .admin-panel,
[data-theme="light"] .admin-settings-panel {
    background: linear-gradient(168deg, rgba(255, 255, 255, 0.9) 0%, rgba(248, 250, 255, 0.78) 100%) !important;
    border-color: rgba(124, 58, 237, 0.18) !important;
}

[data-theme="light"] .admin-panel-title,
[data-theme="light"] .admin-settings-panel-title {
    border-bottom-color: rgba(124, 58, 237, 0.2) !important;
}

[data-theme="light"] .admin-section-intro {
    background:
        linear-gradient(135deg, rgba(8, 145, 178, 0.12) 0%, rgba(124, 58, 237, 0.08) 100%) !important;
    border-color: rgba(8, 145, 178, 0.25) !important;
}

/* ------------------------------------------------------------
   11. Responsive
   ------------------------------------------------------------ */
@media (max-width: 768px) {
    #admin-tabs-bar {
        padding: 18px 14px !important;
        border-radius: 14px !important;
    }
    #admin-tabs-bar::before {
        inset: 6px;
    }
    #admin-content-title {
        font-size: 1.45rem !important;
    }
    .admin-panel,
    .admin-settings-panel {
        padding: 18px 16px !important;
        border-radius: 14px !important;
    }
}
