/* =========================================================
   base.css — coquille commune à toutes les pages
   topbar (2 profils × CV/Portfolio), boutons flottants,
   passerelle inter-profils, règles d'impression.
   Les identités propres aux pages restent dans cv/style.css
   et portfolio/style.css.
   ========================================================= */

:root{
    --gm-accent: #8b7cf6;   /* accent du profil IA */
    --gm-font-title: "Montserrat", system-ui, -apple-system, Segoe UI, Arial, sans-serif;
}

/* ---------- Topbar ---------- */
.gm-topbar{
    width:100%;
    max-width:1180px;
    margin:0 auto;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    flex-wrap:wrap;
    box-sizing:border-box;
}
.gm-topbar__brand{
    font-family:var(--gm-font-title);
    font-weight:800;
    letter-spacing:.6px;
    text-transform:uppercase;
    font-size:22px;
    line-height:1.05;
    color:#fff;
    text-decoration:none;
    white-space:nowrap;
}
.gm-topbar__home{
    color:rgba(255,255,255,.78);
    text-decoration:none;
    font-size:13px;
    font-weight:600;
    letter-spacing:.04em;
    white-space:nowrap;
}
.gm-topbar__home:hover{ color:#fff; }

.gm-nav{
    display:flex;
    gap:10px;
    flex-wrap:wrap;
    justify-content:flex-end;
}
.gm-nav__group{
    display:flex;
    align-items:center;
    gap:4px;
    padding:4px 4px 4px 12px;
    border:1px solid rgba(255,255,255,.16);
    border-radius:999px;
    background:rgba(255,255,255,.04);
}
.gm-nav__group.is-current{
    border-color:rgba(255,255,255,.34);
    background:rgba(255,255,255,.07);
}
.gm-nav__label{
    display:flex;
    align-items:center;
    gap:7px;
    margin-right:6px;
    font-family:var(--gm-font-title);
    font-size:11px;
    font-weight:700;
    letter-spacing:.08em;
    text-transform:uppercase;
    color:rgba(255,255,255,.74);
    white-space:nowrap;
}
.gm-nav__label::before{
    content:"";
    width:7px;
    height:7px;
    border-radius:50%;
    background:rgba(255,255,255,.5);
}
.gm-nav__group--ia .gm-nav__label::before{
    background:var(--gm-accent);
    box-shadow:0 0 0 3px rgba(139,124,246,.22);
}
.gm-nav__btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:8px 14px;
    border-radius:999px;
    font-size:13px;
    font-weight:600;
    letter-spacing:.02em;
    color:#fff;
    text-decoration:none;
    border:1px solid transparent;
    transition:background .18s ease, color .18s ease;
}
.gm-nav__btn:hover{ background:rgba(255,255,255,.12); }
.gm-nav__btn.is-active{ background:#fff; color:#111; }
.gm-nav__btn:focus-visible,
.gm-topbar__brand:focus-visible,
.gm-topbar__home:focus-visible{
    outline:2px solid #fff;
    outline-offset:3px;
}

@media screen and (max-width:860px){
    .gm-topbar{ flex-direction:column; align-items:stretch; gap:12px; }
    .gm-topbar__brand{ text-align:center; font-size:20px; }
    .gm-topbar__home{ text-align:center; }
    .gm-nav{ flex-direction:column; gap:8px; }
    .gm-nav__group{ width:100%; border-radius:14px; padding:5px; min-width:0; }
    .gm-nav__label{ flex:1; min-width:0; padding-left:6px; margin-right:4px; font-size:10px; overflow:hidden; text-overflow:ellipsis; }
    .gm-nav__btn{ min-width:0; padding:8px 12px; font-size:12.5px; }
}

/* ---------- Boutons flottants ---------- */
.floating-actions{
    position:fixed;
    bottom:24px;
    right:24px;
    display:flex;
    flex-direction:column;
    gap:12px;
    z-index:999;
}
.fab{
    width:52px;
    height:52px;
    border-radius:50%;
    background:rgba(255,255,255,.92);
    border:1px solid rgba(15,15,15,.15);
    display:flex;
    align-items:center;
    justify-content:center;
    color:#111;
    box-shadow:0 12px 28px rgba(0,0,0,.15);
    transition:all .25s ease;
    backdrop-filter:blur(6px);
}
.fab svg{ width:22px; height:22px; }
.fab:hover{
    transform:translateY(-3px);
    box-shadow:0 18px 35px rgba(0,0,0,.22);
    background:#fff;
}
@media screen and (max-width:600px){
    .floating-actions{ bottom:14px; right:14px; gap:8px; }
    .fab{ width:46px; height:46px; }
}

/* ---------- Passerelle vers l'autre profil ---------- */
.gm-switch{
    max-width:1120px;
    margin:26px auto 10px;
    padding:0 18px;
    text-align:center;
    font-size:14px;
    color:#444;
}
.gm-switch a{ color:#111; font-weight:600; }

/* ---------- Impression ---------- */
@media print{
    @page{ size:A4; margin:0; }
    html,body{
        background:#fff !important;
        -webkit-print-color-adjust:exact;
        print-color-adjust:exact;
    }
    .gm-topbar,
    .floating-actions,
    .gm-switch,
    .no-print{ display:none !important; }
    a{ text-decoration:none; }
}
