/*
================================================================
HAVANA - LAYOUT.CSS
Rôle : structure globale, fond animé, topbars, navigations fixes.
================================================================
*/

/*
================================================================
3. FOND ANIMÉ (BLOBS & SHIMMER)
================================================================
*/
.animated-bg {
    position: fixed;
    inset: 0;
    overflow: hidden;
    z-index: 0;
    pointer-events: none;
}

.animated-bg::after {
    content: "";
    position: absolute;
    inset: -50%;
    background: linear-gradient(120deg, transparent 0%, rgba(255,255,255,0.012) 45%, rgba(255,255,255,0.028) 50%, rgba(255,255,255,0.012) 55%, transparent 100%);
    animation: ambientShimmer 22s linear infinite;
    opacity: 0.38;
}

.bg-blob {
    position: absolute;
    border-radius: 50%;
    filter: blur(110px);
    opacity: 0.18;
    animation: floatBlob 24s ease-in-out infinite;
}

.blob-1 { width: 340px; height: 340px; background: var(--gold); top: -110px; left: -100px; }
.blob-2 { width: 280px; height: 280px; background: var(--blue); bottom: -120px; right: -90px; animation-delay: 6s; }
.blob-3 { width: 240px; height: 240px; background: var(--green); top: 42%; left: 58%; opacity: 0.10; animation-delay: 10s; }

/*
================================================================
4. STRUCTURE, TOPBAR & TITRES
================================================================
*/
.app-container {
    position: relative;
    z-index: 2;
    max-width: 520px;
    margin: 0 auto;
    padding: 18px;
}

.home-topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 4px;
}

.home-icon-btn {
    width: 46px;
    height: 46px;
    border-radius: 17px;
    background: rgba(255,255,255,0.07);
    border: 1px solid rgba(255,255,255,0.12);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    font-size: 1.45rem;
    flex: 0 0 46px;
}

.havana-title {
    font-weight: 950;
    letter-spacing: -.04em;
    font-size: clamp(2rem, 8vw, 3rem);
    position: relative;
    display: block;
    width: fit-content;
    margin-left: auto;
    margin-right: auto;
    text-shadow: 0 0 8px rgba(255,193,7,.25), 0 0 18px rgba(255,193,7,.15);
}

.havana-title::before, .havana-title::after {
    content: "✦";
    position: absolute;
    color: rgba(255, 255, 255, 0.9);
    font-size: 0.6rem;
    opacity: 0;
}
.havana-title::before { top: 5px; right: -14px; animation: sparkle1 3s infinite; }
.havana-title::after { bottom: 8px; left: -14px; animation: sparkle2 4s infinite; }

.welcome-text h2 { font-size: clamp(1.55rem, 6.4vw, 2.65rem); line-height: 1.08; }
.welcome-text p { font-size: clamp(1rem, 4.2vw, 1.25rem); line-height: 1.35; }
.title-one-line { display: block; max-width: 100%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.text-muted-soft { color: var(--muted); }


/* Bottom nav client */
/*
================================================================
10. NAVIGATION BASSE (BOTTOM NAV)
================================================================
*/
.bottom-nav {
    position: fixed; left: 50%; bottom: 18px; transform: translateX(-50%);
    width: calc(100% - 32px); max-width: 480px; height: 68px; z-index: 999;
    border-radius: 999px; background: rgba(20,20,20,0.82); border: 1px solid rgba(255,255,255,0.14);
    backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px);
    box-shadow: 0 15px 45px rgba(0,0,0,0.45); display: flex; align-items: center; padding: 6px;
}

.bottom-nav a {
    flex: 1; height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center;
    border-radius: 999px; color: rgba(255,255,255,0.65); text-decoration: none; font-size: 0.72rem; font-weight: 700;
    transition: all .12s ease; -webkit-tap-highlight-color: transparent; touch-action: manipulation;
}
.bottom-nav a i { font-size: 1.25rem; margin-bottom: 2px; }
.bottom-nav a.active { color: var(--gold); background: rgba(255,193,7,0.12); }
.bottom-nav a:active { transform: scale(.92); }


/* Admin nav */
/* NAVIGATION ADMIN */

.admin-nav {
    position: fixed;

    bottom: 18px;
    left: 50%;

    transform: translateX(-50%);

    width: calc(100% - 32px);
    max-width: 520px;

    height: 68px;

    border-radius: 999px;

    background: rgba(20,20,20,0.82);

    border: 1px solid rgba(255,255,255,0.12);

    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);

    display: flex;
    align-items: center;

    gap: 4px;
    padding: 6px;

    z-index: 999;

    box-shadow: 0 15px 45px rgba(0,0,0,0.45);
}

.admin-nav a {
    flex: 1;
    height: 100%;

    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;

    border-radius: 999px;

    color: rgba(255,255,255,0.55);
    text-decoration: none;

    font-size: 0.60rem;
    font-weight: 700;

    transition: 0.18s ease;

    -webkit-tap-highlight-color: transparent;
    touch-action: manipulation;
}

.admin-nav a i {
    font-size: 1.1rem;
    line-height: 1;
    margin-bottom: 2px;
}

.admin-nav a:hover {
    color: rgba(255,255,255,0.9);
}

.admin-nav a:active {
    transform: scale(0.96);
    background: rgba(255,255,255,0.08);
}

.admin-nav a.active {
    color: var(--gold);
    background: rgba(255,193,7,0.12);
}

.admin-z2 { z-index: 2; }

/* ================================================================
   Harmonisation des espacements globaux client / serveur / admin
   Référence : largeur et marges de l'accueil serveur.
================================================================ */
:root {
    --havana-page-max-width: 560px;
    --havana-page-side-space: 18px;
}

.app-container {
    width: 100%;
    max-width: var(--havana-page-max-width) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: var(--havana-page-side-space) !important;
    padding-right: var(--havana-page-side-space) !important;
    box-sizing: border-box;
}

@media (max-width: 575.98px) {
    :root {
        --havana-page-side-space: 18px;
    }
}


.reward-subtitle{
    margin-top:6px;
    font-size:14px;
    line-height:1.4;
    color:rgba(255,255,255,0.70);
    font-weight:500;
}
.reward-subtitle.available{
    color:#7DFFA3;
}
.reward-subtitle.pending{
    color:rgba(255,255,255,.70);
}
