.cg-menu-button {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    min-height: 44px;
    padding: 9px 15px;
    color: var(--green-dark, #075f34);
    background: #fff;
    border: 1px solid rgba(7,139,69,.24);
    border-radius: 14px;
    box-shadow: 0 4px 0 #d9e8de, 0 8px 16px rgba(17,61,42,.08);
    font: inherit;
    font-weight: 850;
    cursor: pointer;
}
.topbar-brand .cg-custom-brand-logo,.site-header .brand .cg-custom-brand-logo{width:42px!important;height:42px!important;max-width:160px!important;object-fit:contain!important;object-position:left center!important;border-radius:0!important;background:transparent!important}
.cg-menu-button span {
    position: absolute;
    left: 15px;
    display: block;
    width: 19px;
    height: 2px;
    background: currentColor;
    border-radius: 999px;
}
.cg-menu-button span:nth-child(1) { transform: translateY(-6px); }
.cg-menu-button span:nth-child(2) { transform: translateY(0); }
.cg-menu-button span:nth-child(3) { transform: translateY(6px); }
.cg-menu-button strong { margin-left: 24px; }
.cg-menu-identity {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    max-width: 210px;
    color: var(--ink, #14332a);
    font-weight: 850;
    text-decoration: none;
}
.cg-menu-avatar {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    overflow: hidden;
    color: #fff;
    background: #ec0078;
    border-radius: 50%;
    box-shadow: 0 0 0 3px #fff, 0 0 0 4px #cae0d1;
}
.cg-menu-avatar img { display:block; width:100%; height:100%; object-fit:cover; }
.cg-menu-identity-name { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.cg-menu-backdrop {
    position: fixed;
    inset: 0;
    z-index: 80;
    background: rgba(13, 43, 31, .48);
    backdrop-filter: blur(2px);
}
.cg-menu-panel {
    position: fixed;
    top: 0;
    right: 0;
    z-index: 90;
    width: min(390px, calc(100vw - 24px));
    height: 100vh;
    padding: 26px;
    overflow-y: auto;
    color: var(--ink, #14332a);
    background: #fff;
    border-left: 1px solid rgba(7,139,69,.16);
    box-shadow: -20px 0 60px rgba(7, 54, 34, .2);
    transform: translateX(105%);
    transition: transform .2s ease;
}
.cg-menu-panel.is-open { transform: translateX(0); }
.cg-menu-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 18px;
    margin-bottom: 24px;
}
.cg-menu-head p {
    margin: 0 0 6px;
    color: var(--pink, #ed0876);
    font-size: .75rem;
    font-weight: 900;
    letter-spacing: .14em;
    text-transform: uppercase;
}
.cg-menu-head h2 { margin: 0; font-size: 1.7rem; }
.cg-menu-close {
    width: 42px;
    height: 42px;
    color: var(--green-dark, #075f34);
    background: #fff;
    border: 1px solid rgba(7,139,69,.22);
    border-radius: 13px;
    box-shadow: 0 4px 0 #d9e8de, 0 8px 16px rgba(17,61,42,.08);
    font: inherit;
    font-size: 1.35rem;
    font-weight: 900;
    cursor: pointer;
}
.cg-menu-workspace {
    margin-bottom: 20px;
    padding: 16px;
    background: #f4faf6;
    border: 1px solid #dbece2;
    border-radius: 16px;
}
.cg-menu-workspace form { display: grid; gap: 12px; }
.cg-menu-links {
    display: grid;
    gap: 10px;
    width: 100%;
}
/* Algunos encabezados del sitio tienen reglas generales para cualquier nav.
   El panel lateral es un nav distinto: siempre debe conservar una sola columna. */
.site-header nav.cg-menu-links,
.topbar nav.cg-menu-links {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    flex-direction: column !important;
    align-items: stretch !important;
    justify-content: stretch !important;
    width: 100% !important;
}
.site-header .cg-menu-group,
.topbar .cg-menu-group { width: 100% !important; min-width: 0 !important; }
.cg-menu-group {
    overflow: hidden;
    background: #fff;
    border: 1px solid #dbece2;
    border-radius: 14px;
    box-shadow: 0 4px 0 #e3eee7, 0 8px 16px rgba(17,61,42,.06);
}
.cg-menu-group summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 14px 16px;
    color: var(--green-dark, #075f34);
    font-weight: 900;
    cursor: pointer;
    list-style: none;
}
.cg-menu-group summary::-webkit-details-marker { display: none; }
.cg-menu-group summary::after {
    width: 9px;
    height: 9px;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    content: '';
    transform: rotate(45deg) translateY(-3px);
    transition: transform .18s ease;
}
.cg-menu-group[open] summary::after { transform: rotate(225deg) translate(-2px,-1px); }
.cg-menu-group-links {
    display: grid;
    gap: 8px;
    padding: 0 10px 10px;
    border-top: 1px solid #e5f0e9;
}
.cg-menu-group:not([open]) .cg-menu-group-links { display: none !important; }
.cg-menu-group[open] .cg-menu-group-links { display: grid; }
.cg-menu-group-links a {
    padding: 12px 14px;
    color: var(--green-dark, #075f34);
    background: #f8fcf9;
    border: 1px solid transparent;
    border-radius: 11px;
    font-weight: 850;
    text-decoration: none;
}
.cg-menu-group-links a.is-active {
    color: #fff;
    background: linear-gradient(135deg, var(--green-dark, #075f34), var(--green, #078b45));
    border-color: transparent;
    box-shadow: 0 4px 0 #075f34, 0 10px 20px rgba(7,139,69,.18);
}
.cg-menu-logout { margin-top: 24px; }
body.cg-menu-open { overflow: hidden; }
.topbar .topbar-actions {
    flex-direction: row;
    align-items: center;
    justify-content: flex-end;
}
@media (max-width: 620px) {
    .cg-menu-identity-name { display:none; }
    .cg-menu-button strong { display: none; }
    .cg-menu-button { width: 48px; padding: 9px; }
    .cg-menu-button strong + span,
    .cg-menu-button strong { margin: 0; }
    .cg-menu-button span { left: 14px; }
    .topbar {
        flex-direction: row;
        align-items: center;
    }
    .topbar .topbar-actions {
        width: auto;
        flex-direction: row;
        align-items: center;
    }
}
