/* ── Wrapper fenêtre ─────────────────────────────────────────── */
object > div[data-link="mainMenu"] {
    position: var(--abs);
    left: var(--z);
    bottom: calc(var(--taskbar-height) + calc(var(--head) / 10));
    width: calc(var(--head) * 16.625);
    height: calc(var(--head) * 10.625);
    border-radius: var(--z) calc(var(--head) / 8) var(--z) var(--z);
    background: var(--menu-apps-bg);
    border: 1px solid var(--menu-shell-border);
    overflow: var(--hid);
}

div[data-link="mainMenu"] > #windowHeader {
    display: var(--n);
    height: var(--z);
}

/* ── Section racine ──────────────────────────────────────────── */
.menu-root {
    position: var(--abs);
    top: var(--z);
    right: var(--z);
    bottom: var(--z);
    left: var(--z);
    display: var(--f);
    flex-flow: var(--rnw);
    align-items: var(--fs);
    overflow: var(--hid);
    color: var(--texte);
    font-family: var(--font-ui);
}

/* ── Sidebar ─────────────────────────────────────────────────── */
.menu-sidebar {
    display: var(--f);
    flex-flow: var(--cnw);
    align-items: var(--fs);
    flex-shrink: 0;
    width: calc(var(--head) * 4.5);
    height: var(--full);
    background: var(--menu-sidebar-bg);
    border-right: 1px solid var(--menu-sidebar-separator);
    overflow: var(--hid);
}

/* User block */
.menu-user {
    display: var(--f);
    flex-flow: var(--rnw);
    align-items: var(--c);
    gap: calc(var(--head) / 5);
    width: var(--full);
    padding: calc(var(--head) / 4) calc(var(--head) / 4);
    box-sizing: border-box;
    border-bottom: var(--menu-border-soft-light);
    flex-shrink: 0;
}

.menu-user__avatar {
    width: calc(var(--head) * 0.85);
    height: calc(var(--head) * 0.85);
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
}

.menu-user__name {
    font-size: calc(var(--head) / 2.8);
    font-weight: var(--wb);
    color: var(--texte);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Shortcut list */
.menu-shortcuts {
    display: var(--f);
    flex-flow: var(--cnw);
    width: var(--full);
    flex: 1;
    padding: calc(var(--head) / 8) 0;
    overflow-y: auto;
    scrollbar-width: none;
    list-style: none;
    margin: var(--z);
}

.menu-shortcuts > li { width: var(--full); }

.menu-shortcut {
    display: var(--f);
    flex-flow: var(--rnw);
    align-items: var(--c);
    gap: calc(var(--head) / 4);
    width: var(--full);
    padding: calc(var(--head) / 5) calc(var(--head) / 4);
    box-sizing: border-box;
    text-decoration: none;
    color: var(--texte);
    font-size: calc(var(--head) / 3);
    cursor: var(--p);
    transition: background var(--eas2), border-color var(--eas2);
    white-space: nowrap;
    overflow: hidden;
    border-left: 2px solid var(--t);
}

.menu-shortcut:hover { background: var(--menu-shortcut-hover); }

.menu-shortcut:focus-visible {
    border-left-color: var(--menu-accent);
    outline: none;
}

.menu-shortcut.is-unavailable {
    opacity: 0.45;
    cursor: default;
}

.menu-shortcut.is-unavailable:hover {
    background: transparent;
}

.menu-shortcut img {
    width: calc(var(--head) / 2.2);
    height: calc(var(--head) / 2.2);
    flex-shrink: 0;
    object-fit: contain;
}

.menu-shortcut span {
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Action buttons (lock / logout / power) */
.menu-actions {
    display: var(--f);
    flex-flow: var(--rnw);
    align-items: var(--c);
    justify-content: var(--c);
    gap: calc(var(--head) / 4);
    width: var(--full);
    padding: calc(var(--head) / 5) calc(var(--head) / 4);
    box-sizing: border-box;
    border-top: var(--menu-border-soft-light);
    flex-shrink: 0;
}

.menu-action {
    display: var(--f);
    align-items: var(--c);
    justify-content: var(--c);
    width: calc(var(--head) * 1);
    height: calc(var(--head) * 1);
    border: none;
    border-radius: 9999px;
    background: var(--t);
    cursor: var(--p);
    transition: background var(--eas2), border-color var(--eas2);
    border: 1px solid var(--t);
}

.menu-action:hover { background: var(--menu-action-hover); }

.menu-action:focus-visible {
    border-color: var(--menu-accent);
    outline: none;
}

.menu-action img {
    width: calc(var(--head) * 0.6);
    height: calc(var(--head) * 0.6);
    object-fit: contain;
    filter: brightness(1.3);
}

/* ── Catégories ──────────────────────────────────────────────── */
.menu-categories {
    display: var(--f);
    flex-flow: var(--cnw);
    flex-shrink: 0;
    width: calc(var(--head) * 4.5);
    height: var(--full);
    background: var(--menu-cats-bg);
    border-left: var(--menu-border-soft-dark);
    border-right: var(--menu-border-soft-dark);
    overflow: var(--hid);
}

.menu-cats {
    flex: 1;
    overflow-y: auto;
    scrollbar-width: none;
    padding: calc(var(--head) / 8) 0;
    list-style: none;
    margin: var(--z);
}

.menu-cat {
    display: var(--f);
    align-items: var(--c);
    width: var(--full);
    padding: calc(var(--head) / 4) calc(var(--head) / 4);
    box-sizing: border-box;
    font-size: calc(var(--head) / 3);
    color: var(--texte);
    cursor: var(--p);
    border: none;
    border-left: 3px solid var(--t);
    background: var(--t);
    text-align: left;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    font-family: var(--font-ui);
    transition: background var(--eas2), border-color var(--eas2), color var(--eas2);
    user-select: none;
}

.menu-cat:hover { background: var(--menu-shortcut-hover); }

.menu-cat.is-active {
    background: var(--menu-item-active-bg);
    border-left-color: var(--menu-accent);
}

.menu-cat:focus-visible {
    border-left-color: var(--menu-accent);
    outline: none;
}

/* Barre de recherche */
.menu-search-wrap {
    flex-shrink: 0;
    padding: calc(var(--head) / 6) calc(var(--head) / 5);
    box-sizing: border-box;
    border-top: var(--menu-border-soft-dark-subtle);
}

.menu-search {
    width: var(--full);
    height: calc(var(--head) / 1.25);
    padding: 0 calc(var(--head) / 4);
    box-sizing: border-box;
    border: 2px solid var(--menu-search-border);
    border-radius: calc(var(--head) / 10);
    background: var(--menuInput);
    color: var(--texte);
    font-family: var(--font-ui);
    font-size: calc(var(--head) / 3);
    outline: none;
    transition: border-color var(--eas2), background-color var(--eas2);
}

.menu-search:focus {
    border-color: var(--a11y-contrast-border);
    background: var(--a11y-contrast-surface);
    color: var(--a11y-contrast-text);
}

/* ── Liste des applications ──────────────────────────────────── */
.menu-apps {
    display: var(--f);
    flex-flow: var(--cnw);
    flex: 1;
    height: var(--full);
    min-width: 0;
    overflow: var(--hid);
    background: var(--menu-apps-bg);
}

.menu-app-list {
    flex: 1;
    overflow-y: auto;
    padding: calc(var(--head) / 8) 0;
    scrollbar-width: thin;
    scrollbar-color: var(--menu-scrollbar-thumb) var(--t);
    list-style: none;
    margin: var(--z);
}

.menu-app-item {
    display: var(--f);
    flex-flow: var(--rnw);
    align-items: var(--c);
    gap: calc(var(--head) / 3);
    padding: calc(var(--head) / 8) calc(var(--head) / 4);
    box-sizing: border-box;
    cursor: var(--p);
    transition: background var(--eas2), border-color var(--eas2);
    min-height: calc(var(--head) * 1.1);
    border-left: 2px solid var(--t);
}

.menu-app-item:hover:not(.is-unavailable) { background: var(--menuHover); }

.menu-app-item:focus-visible {
    border-left-color: var(--menu-accent);
    outline: none;
}

.menu-app-item.is-unavailable {
    opacity: 0.45;
    cursor: default;
}

.menu-app-item__icon {
    width: calc(var(--head) * 0.75);
    height: calc(var(--head) * 0.75);
    flex-shrink: 0;
    object-fit: contain;
}

.menu-app-item__info {
    display: var(--f);
    flex-flow: var(--cnw);
    overflow: hidden;
    flex: 1;
    min-width: 0;
}

.menu-app-item__name {
    font-size: calc(var(--head) / 3);
    font-weight: var(--wb);
    color: var(--texte);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.menu-app-item__desc {
    font-size: calc(var(--head) / 3.8);
    color: var(--nemo-text-muted);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* État vide */
.menu-app-list.is-empty::after {
    content: 'Aucune application';
    display: block;
    padding: calc(var(--head) / 2) calc(var(--head) / 4);
    font-size: calc(var(--head) / 3);
    color: var(--nemo-text-muted);
    text-align: center;
}