/*
  css/hamburger-menu.css
  Hamburger menu: Global section (always present) + contextual section
  (populated per active view — Books Read/To Be Read/My Library only).
*/

.hamburger-container {
    position: relative;
}

/* position: fixed, not absolute — .sidebar has overflow: hidden, which
   clips an absolutely-positioned descendant regardless of which
   direction it grows (confirmed: moving from right:0 to left:0 didn't
   fix the cutoff, just moved it to the other edge). Fixed positioning
   escapes ancestor overflow clipping entirely. top/left are no longer
   set here — sidebar.js's positionHamburgerMenu() computes and sets
   both as inline styles from the button's actual on-screen position
   every time the menu opens, since a static CSS anchor point doesn't
   make sense once the menu is positioned relative to the viewport
   instead of relative to its container. */
.hamburger-menu {
    display: none;
    position: fixed;
    width: 220px;
    background: var(--color-bg-raised);
    border: 1px solid var(--border-color);
    border-radius: var(--border-radius-sm);
    box-shadow: var(--shadow-dropdown, none);
    z-index: 100;
    overflow: hidden;
}

.hamburger-menu.open {
    display: block;
}

.hamburger-menu-section {
    padding: 6px 0;
}

.hamburger-menu-section:not(:last-child) {
    border-bottom: 1px solid var(--border-color);
}

.hamburger-menu-section:empty {
    display: none;
}

.hamburger-menu-item {
    padding: 8px 14px;
    font-size: 0.85em;
    color: var(--text-color);
    cursor: pointer;
}

.hamburger-menu-item:hover {
    background: var(--color-nav-hover-bg);
    color: var(--color-nav-hover-text);
}

.hamburger-menu-item-disabled {
    cursor: default;
    color: var(--color-text-muted);
    font-style: italic;
}

.hamburger-menu-item-disabled:hover {
    background: none;
    color: var(--color-text-muted);
}
