.dot-menu-wrap { position: relative; display: inline-flex; align-items: center; flex: 0 0 auto; } .dot-menu-trigger { width: var(--avatar-size-md); height: var(--avatar-size-md); border-radius: var(--avatar-radius); border: var(--border); background: var(--secondary-color); color: var(--muted-color); display: inline-flex; align-items: center; justify-content: center; font-family: var(--font-family); font-size: 22px; line-height: 1; cursor: pointer; padding: 0; } .dot-menu-trigger:hover { color: var(--accent-color); border-color: var(--accent-color); } .dot-menu-trigger:focus-visible { outline: var(--border-width2) solid var(--accent-color); outline-offset: 1px; } .dot-menu-panel { position: absolute; top: calc(100% + 5px); right: 0; z-index: 200; display: none; flex-direction: column; gap: 2px; min-width: 180px; max-width: min(320px, calc(100vw - 16px)); padding: 5px; border: var(--border); border-radius: var(--border-radius); background: var(--secondary-color); } .dot-menu-panel[data-position='left'] { left: 0; right: auto; } .dot-menu-panel[data-position='right'] { right: 0; left: auto; } .dot-menu-panel.is-open { display: flex; } .dot-menu-item, .dot-menu-submenu-label { width: 100%; display: block; border: none; border-radius: var(--border-radius); background: transparent; color: var(--primary-color); text-align: left; font-family: var(--font-family); font-size: 14px; line-height: 1.3; cursor: pointer; padding: 2px 10px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .dot-menu-item:hover, .dot-menu-submenu-label:hover { background: var(--background-color); color: var(--accent-color); } .dot-menu-submenu { position: relative; margin: 0; padding: 0; } .dot-menu-submenu-label { list-style: none; display: block; } .dot-menu-submenu-label::-webkit-details-marker { display: none; } .dot-menu-submenu-panel { position: fixed; z-index: 260; display: none; flex-direction: column; align-items: stretch; gap: 4px; min-width: 180px; max-width: min(320px, calc(100vw - 16px)); max-height: min(60vh, 420px); overflow-y: auto; padding: 5px; border: var(--border); border-radius: var(--border-radius); background: var(--secondary-color); } .dot-menu-submenu[open] > .dot-menu-submenu-panel { display: flex; } .dot-menu-submenu-panel > .dot-menu-item, .dot-menu-submenu-panel > .dot-menu-submenu { flex: 0 0 auto; } .dot-menu-submenu-panel > .dot-menu-item, .dot-menu-submenu-panel > .dot-menu-submenu > .dot-menu-submenu-label { min-height: 22.17px; box-sizing: border-box; } .dot-menu-divider { height: var(--border-width); margin: 2px 4px; background: var(--muted-color); }